Найти процентное значение цвета между двумя известными цветами
Как лучше всего определить процентное значение цвета между двумя заданными значениями. Другими словами, как лучше всего вычислить положение % цвета C?
Цвет A-0x0000FF Цвет B-0x00CCFF Цвет C-0x00FFFF
Спасибо!
1 ответ:
Ну, это не так прямолинейно, потому что это зависит от того, как вы решите квантовать цвет.
Вы можете сделать это через HSB, что, на мой взгляд, более правильно (хотя и не обязательно факт), или просто использовать шестнадцатеричное значение.
Быстрее всего, вероятно, сделать это, используя значения hax
var colour:uint = 0x9900CC; var r:uint = colour >> 16; var g:uint = colour >> 8 & 0xFF; var b:uint = colour & 0xFF;
.это даст вам значение каждого канала (c) (ABC - цвета)
Затем выполните математические вычисления для каждого канала (c)
(cB - cA)/(cC - cA)
Затем, как только вы получите каждый из эти Шанели, вы можете сложить их вместе и разделить на 3.
Однако есть одна проблема: если цвета A и C всегда одинаковы для любого канала, вам нужно добавить исключение (потому что cC и CA равны нулю, и вы не можете разделить на ноль), в этот момент вам также нужно решить, как обрабатывать эту разницу.