Найти процентное значение цвета между двумя известными цветами


Как лучше всего определить процентное значение цвета между двумя заданными значениями. Другими словами, как лучше всего вычислить положение % цвета C?

Цвет A-0x0000FF Цвет B-0x00CCFF Цвет C-0x00FFFF

Спасибо!

1 6

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 равны нулю, и вы не можете разделить на ноль), в этот момент вам также нужно решить, как обрабатывать эту разницу.