2014-04-03 3 views
0

Я хотел бы плавно менять цвет фона с течением времени.Как я могу перебирать цвета?

Выбрав 2 цвета c1 и c2, в пространстве rgb легко сделать цветную функцию времени c (t) = t.c1 + (1-t) .c2, которая будет градиентом между two

Однако пространство rgb - это 3D, и я ищу способ перечислить все цвета плавно. Я знаю, что возможны миллиарды цветов, но кодирование RGB на битах 4x4x4 будет хорошо для моего проекта.

Мой вопрос не зависит от выбора языка программирования

Я пытался что-то вроде (псевдо-код/​​Python)

for red in xrange(16): 
    for green in xrange(16): 
    for blue in xrange(16): 
     color = rgb(red, green, blue) 

однако это не является гладким вообще, это как " ступенчатая функция ", если вы понимаете, что я имею в виду (цвет будет идти от зеленого до зеленого и вообще не красного цвета)

Любая идея, как это сделать?

ответ

1

В этом случае я думаю, что вы лучше с значениями HSV для цвета. Вы можете использовать одну и ту же тактику и изменять только одно из этих значений HSV за раз, чтобы сделать перемещение цвета более плавным.

Check this out (HSV)

EDIT:

Посмотрев немного дальше, я нашел этот аргумент, почему не использовать HSV. Это может быть хорошим решением вашей проблемы:

Solution

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