Получить цвета из двойных значений - PullRequest
1 голос
/ 01 марта 2012

Мне нужно создать карту кучи из матрицы двойных значений (как положительных, так и отрицательных), но как я могу получить цвет из этих значений в диапазоне между зеленым и красным? Спасибо

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

Вы захотите отобразить свой диапазон значений на диапазон оттенков в цветовом пространстве hue-saturation-value / lightness, а затем преобразовать его в RGB.

2 голосов
/ 01 марта 2012

Выберите цвет RGB для «полностью красный» (например, (255,0,0)) и «полностью зеленый» (например, (0,255,0)).Затем выполните интерполяцию между ними, основываясь на соотношении между вашим входным значением и максимально возможным значением.

Самой простой возможной интерполяцией является линейная интерполяция в цветовом пространстве RGB .Однако это может не дать очень удовлетворительного результата (в частности, яркость и насыщенность значений будут различаться).Лучшим подходом может быть преобразование в цветовое пространство HSV и выполнение там интерполяции.

1 голос
/ 01 марта 2012

Предполагая, что зеленый цвет является положительным, а красный - отрицательным, как в большинстве красно-зеленых тепловых карт, найдите самое положительное значение среди положительных значений и разделите их на него, а затем найдите самое отрицательное значение среди отрицательных значений и разделите их на него. Умножьте коэффициенты для положительных значений на 255 для зеленого и оставив красным значение 0, а коэффициенты для отрицательных значений на 255 для красного и сохранив зеленый цвет равным 0. Поэтому, когда значение равно 0, оно должно быть черным; когда значение максимально положительное, оно полностью зеленое; когда значение самое большее отрицательное, оно полностью красное.

...