2013-12-05 1 views
1

Я хочу постепенно поворачивать вокруг колеса цвета, прыгая на противоположную сторону на каждом повороте. У меня есть неопределенное количество клиентов для представления на диаграмме кендо, и я хочу убедиться, что они все идентифицируются в отношении их ближайших соседей. Может ли кто-нибудь связать математическую связь между цветами на противоположных сторонах цветового круга? Я, конечно, работаю над этим сам, но я подумал, что это интересная небольшая проблема, с которой вы, ребята, можете наслаждаться со мной.Какова математическая зависимость между шестнадцатеричными значениями цвета на противоположных сторонах цветового круга?

ответ

2

Было бы проще сделать этот тип преобразования в цветовом пространстве HSL или HSV, а не в RGB (иначе как шестнадцатеричные значения). Затем, чтобы получить противоположную точку на колесе просто следовать по формуле:

hue = (hue + 180) % 360 

Так, начиная с HSL (0, 80%, 20%) даст HSL (180, 80%, 20% и т.д.) Самый простой способ конвертировать заданное значение RGB в значение RGB в противоположную точку будет состоять в том, чтобы преобразовать RGB в HSL или HSV, выполнить сдвиг и преобразовать это обратно в RGB. Формулы, которые можно найти здесь: http://en.wikipedia.org/wiki/HSL_and_HSV

Современные браузеры поддерживают HSL изначально, так что, возможно, некоторые из этих сложностей можно избежать, и вы никогда не должны были бы сбросить со значениями RGB в первую очередь. http://caniuse.com/css3-colors

1

Цветовое колесо основано на HSV color space, где координата оттенка представляет ваш угол на цветовом круге. Вам нужно преобразовать цвета RGB в HSV, выполнить поворот на координате оттенка, а затем преобразовать обратно в RGB.

Смежные вопросы