LINUX.ORG.RU

алгоритм выбора контрастного цвета


0

1

решил написать свою кастомную круговую диаграмму (я знаю, что есть чужие решения, но своё иногда лучше ибо более гибкое, к тому же грамотно спроектировано с соблюдением всех принципов ООП). заполнение секторов цветом - моя нерешённая проблема. в чём суть, есть массив web-цветов, заполняется по такому алгоритму, сам алгоритм был передран из чьих-то исходников на яваскрипте

http://img217.imageshack.us/img217/2465/colorsv.jpg

проблема в том, что если заполнять сектора прямо из полученного массива, тогда стоящие рядом сектора сливаются, ибо цвета не контрастны. тогда я рандомно перемешиваю массив, но всё равно иногда бывает что сектора сливаются. итак, если имеем заполненный цветом сектор, то как выбрать из массива цвет, максимально контрастный по отношению к нему ? теоретически можно вручную составить заранее массив из 50-100 цветов, но это ведь не ТруЪ. ещё можно попытаться с самого начала заполнять массив так, чтоб любые два соседних цвета были контрастны, но я испытываю затруднения с реализацией.



Последнее исправление: Voviandr (всего исправлений: 2)

Такое проще делать не в RGB.

x3al ★★★★★
()

можно наверное выбирать случайные цвета, но проверять расстояние до предыдущего цвета (ΔR²+ΔG²+ΔB²) и если оно меньше константы, то попробовать еще раз

sergej ★★★★★
()

>к тому же грамотно спроектировано с соблюдением всех принципов ООП

вот он тонкий вброс, я тебя раскусил

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

>проверять расстояние до предыдущего цвета (ΔR²+ΔG²+ΔB²)
Оно не даст гарантии контраста. Алсо есть куча готовых алгоритмов.

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

хз, наверное смотря как выбрать константу. По крайней мере сливаться не будут, я думаю...

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