2014-09-07 8 views
3

Я недавно работал над приложением для выбора цвета, которое позволяет пользователю выбирать оттенок, насыщенность и легкость цвета. После того, как пользователь определился с цветом, я даю пользователю разные цветовые схемы, которые идут с выбранным цветом. Некоторые из предложенных цветовых схем являются бесплатными, сплит-бесплатно, триада, аналогичные и так далее.
Например: если пользователь выбрал красный цвет, hsl (0, 100%, 50%), чтобы определить дополнительный цвет, то 180 градусов добавляются к оттенку в результате (180, 100%, 50%), который был бы голубой. Для аналогичной схемы я добавляю 30 и вычитаю 30 и т. Д. Все отлично работает, пока я не понял, что это цвета в Интернете!
Я сохраню эту функциональность, но теперь хочу создать цветовые схемы, напоминающие пигментацию. Например, в реальной жизни дополнительный цвет красного цвета будет зеленый, а не голубой, как в цветах света. Может ли кто-нибудь указать мне на ресурсы о том, как конвертировать hsl в пигментацию? Как настроить оттенки так, чтобы зеленый был противоположным красному.Цвета HSL к пигментации

+0

Вычисление цветов с RYB не так просто. Проверьте этот вопрос: http://stackoverflow.com/questions/4945457/conversion-between-rgb-and-ryb-color-spaces –

ответ

1

Я нашел скрипт в Интернете, который способен конвертировать RYB в/из RGB. Вот сценарий link.

При том, что это очень легко вычислить комплемент цвет путем вычитания компонентов из 255:

var color = [255, 0, 0],  //red in RYB 
    complement = color.map(function(n){ return 255 - n; }); //green in RYB 

ryb2rgb(complement);   //[0, 169, 51], which is green in RGB 

Демо: http://jsfiddle.net/DerekL/3m53wbsc/

С Рыбами, можно легко увидеть, что коричневый единственным цвет с не цвет дополнения. Чтобы преобразовать HSL в RGB, см. Этот ответ: https://stackoverflow.com/a/9493060/283863

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

  • Нет связанных вопросов^_^