Простая функция PHP для преобразования номера в цвет фона HTML HTML?

StackOverflow https://stackoverflow.com/questions/4235744

Вопрос

Мой вопрос связан с Алгоритм для преобразования любого положительного целого числа к значению 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top