Мне нужна функция для сопоставления диапазона с 3 сегментами одинакового размера с диапазоном с сегментами неравного размера. Как показано в таблице ниже:
(Red is all one range)
/--------------------------------\
| Color | Hue Range | YIQ Range |
|=======|===========|============|
| Red | 0 - 59 | 0 - 149 |
| Red | 300 - 359 | 851 - 1000 |
| Green | 60 - 179 | 150 - 736 |
| Blue | 180 - 299 | 737 - 850 |
\--------------------------------/
Общая цель — преобразовать оттенок в диапазон YIQ.
Если отображение линейный, тогда формула для каждого диапазона довольно проста
Determine what range given value H belongs to
Get HueMIn, HueMax, YMin, YMax for this range
Y = YMin + (H - HueMin) * (YMax - Ymin) / (HueMax - HueMin)
например, значение H = 100 находится в третьем диапазоне,
Y = 150 + (100 - 60) * (736 - 150) / (179 - 60) = 347
Других решений пока нет …