Pergunta

Minha pergunta está relacionada a Algoritmo para converter qualquer número inteiro positivo em um valor RGB Mas, na verdade, não é a mesma pergunta - esse cara tem principalmente um problema de normalização de dados, eu realmente tenho mais um problema estético de seleção de cores.

Eu tenho vários números entre -1,0 e +1,0. Preciso criar um mapa de calor sobreponte ao texto.

Qual é a maneira mais simples, usando o PHP, para converter cada número em uma cor html (#rrggbb), de tal maneira que a cor resultante não apenas está intuitivamente relacionada à temperatura (por exemplo transição no meio), mas também que é adequado como uma cor de fundo para o texto de cor preta?

Foi útil?

Solução

Eu o implementaria como um gradiente linear simples entre os componentes vermelhos e azuis, usando o sprintf função Para codificar a um valor hexadecimal:

function toHeatColor($full) {
    $positive = ($full + 1) / 2;
    return sprintf("#%02xcc%02x", $positive * 51 + 204, (1 - $positive) * 51 + 204);
}

Você pode ver como a variedade de cores olha para http://jsfiddle.net/9qqku/. Os valores correspondentes são -1, -0,75, 0, 0,75 e 1.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top