Простая функция PHP для преобразования номера в цвет фона HTML HTML?
-
26-09-2019 - |
Вопрос
Мой вопрос связан с Алгоритм для преобразования любого положительного целого числа к значению RGB Но на самом деле это не тот же вопрос - этот парень имеет в основном проблема нормализации данных, у меня на самом деле есть более эстетическая проблема выбора цвета.
У меня есть куча чисел между -1,0 и +1,0. Мне нужно создать тепловую карту, накрывающую текстом.
Что простейшим способом, используя PHP, чтобы преобразовать каждое число в цвет HTML (#RRGGBB) таким образом, что полученный цвет не только интуитивно связан с температурой (т.е. незаметно для самых холодных и красневых для самых горячих, с некоторыми гладкими Переход между ними), но и то, что он подходит как цвет фона для текста черного цвета?
Решение
Я бы реализовал его как простой линейный градиент между красными и синими компонентами, используя sprintf
функция Чтобы кодировать на шестнадцатеричное значение:
function toHeatColor($full) {
$positive = ($full + 1) / 2;
return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}
Вы можете посмотреть, как выглядит ассортимент цветов на http://jsfiddle.net/9qqku/. Отказ Соответствующие значения являются -1, -0,75, 0, 0,75 и 1.