LINUX.ORG.RU

цвета в заданной палитре по хешу

 ,


0

1

Пишу автораскраску разделов трекера ЛОРа, накопипастил следующий код:

function hashCode(str) {
    var hash = 0;
    for (var i = 0; i < str.length; i++) {
       hash = str.charCodeAt(i) + ((hash << 5) - hash);
    }
    return hash;
} 

function intToRGB(i){
     var b1 = ((i>>24)&0xFF).toString(16);
     var b2 = ((i>>16)&0xFF).toString(16);
     var b3 = ((i>>8)&0xFF).toString(16);
     return b1+b2+b3; 
}

Цвет получается из хеша URL раздела. Результат на 3+, хочется задать палитру, чтобы на выходе получались похожие по тону/контрастности с фоном цвета. Посоветуйте (тупому) 1С-нику алгоритмов цветогенерации, а ещё лучше реализаций на JS.

Как вариант вижу приведение полученного цвета к ближайшему в заранее сгенерированной палитре, как здесь. Но встаёт вопрос определения ближайшего.

★★★

Т.е. надо просто в HSV-компонентах подобрать цвет с одним и тем же H, но разными S и V?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

О, похоже на верное направление, только, если я правильно понимаю, меняться должна H при одинаковых S и V. Палитру пастельных цветов хочется. Спасибо, буду ковырять в эту сторону.

ollowtf ★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Ок, буду стараться. Всё получилось, остаток от деления хеша на 360 подставляю в функцию преобразования HSV в RGB, палитра получилась, мистическим образом раздел про Red Hat красный :) Спасибо за направление.

ollowtf ★★★
() автор топика
Ответ на: комментарий от ollowtf

Да я сам как-то сидел, на досуге капчеразгадывалку придумывал. Думал-думал, и тут решил попробовать YUV и HSV. Первый как-то не очень вышел, зато второй - прекрасно. Да и вообще, HSV очень близок к человеческому цветовосприятию (несмотря на то, что получаемый глазом цветоразностный сигнал - почти что RGB): мозг преобразует сигнал в нечто вроде HSV.

Вообще, кстати, школьные знания по физиологии зачастую очень сильно помогают в создании элементарных алгоритмов распознавания. Если бы еще и физиология мозга была изучена основательно…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

И палитры удобно делать :)

Если бы еще и физиология мозга была изучена основательно…

Хм, надо перед биореактором отправлять на эксперименты :D

ollowtf ★★★
() автор топика
Ответ на: комментарий от ollowtf

И палитры удобно делать :)

Без поллитры — не палитра, а с поллитрой — всем по литру!

Хм, надо перед биореактором отправлять на эксперименты :D

В том-то и проблема. Гитлеровские ученые, конечно, кое-какие открытия в этой области сделали, но маловато. Надо зеков-смертников не умерщвлять сразу, а отправлять на опыты. Все науке польза будет. А то сколько можно-то делать опыты подпольно? Ведь от них толку — только для заказавшей эти опыты медкомпании. А научные статьи не напишешь, коллег об открытии не известишь…

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

А то сколько можно-то делать опыты подпольно?

С текущими позициями гуманистов-моралистов ещё долго. Ладно, не будем оффтопить, потрут за нацпол и разжигание и не будет полезного топика ;)

ollowtf ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.