Я создаю цветовой класс и собираюсь добавлять операции больше (цвет, процент) и меньше (цвет, процент). Это требует умения добавлять и вычитать цвета, и мне сложно с арифметикой. Как использовать RGB или HSB (HSV) или HEX для выполнения таких операций, как:
Операция - echo color('blue')->more('yellow', 100%);
или
Операция - echo color('blue')->more('yellow', 50%);
- синий + .5 * желтый = темно-зеленый
Для вычитания у меня есть очень смутное представление об этом:
Операция - echo color('orange-yellow')->less('red', 50%);
- оранжево-желтый - .5 * красный = желтый
EDIT:
Хорошо, спасибо за ваш вклад. Я попытался добавить CYM друг к другу, к сожалению, красный (255, 0, 0) ~ = (0, 1, 1) в CYM, а затем, если вы добавите это на синий (0, 0, 255) ~ = (1, 1 , 0) он будет равен (1, 2, 1) или (1, 1, 1), который является черным в CYM.
Я получил самое близкое использование насыщенности оттенка
Яркость (HSB). На самом деле это работает
с каждой цветовой комбинацией, кроме
красный портит. Я считаю это
потому что красный в начале и
конец оттенка (для оттенка используются градусы [0,
360]).
Буду признателен за любые ваши мысли!
РЕДАКТИРОВАТЬ 2:
Ладно, после вечера, проведенного без суеты, это "более" метод, которым я действительно доволен.
Используется цветовая модель HSB (Hue-Saturation-Brightness). Теперь не спрашивайте меня, почему я не работал CYM. Я цветной новичок. Похоже, что это будет работать, видя, как принтеры смешивают цвета. Мне очень нравится модель HSB, плюс то, что показывает фотошоп, когда вы используете палитру цветов.
Я добавил это как ответ, поэтому дайте мне знать, что вы, ребята, думаете! Еще раз спасибо!
Любая помощь будет отличной!
Спасибо,
Matt