Bonjour,
Ma question est toute bête : comment pourrais-je associer une couleur RGB à une température ?
Je dispose d'un champ de température T_k, pour k variant de 1 à L. Je connais aussi Tmax et Tmin, les températures respectivement max et min rencontrées. A partir de là, j'aimerais pouvoir associer à T_k une couleur selon son intensité relative : plus T_k est proche de Tmax, plus la couleur tend vers le violet, et plus elle est proche de Tmin, plus elle temps vers le rouge (cf spectre EM des couleurs).
Pour cela, je me suis fait une échelle hexadécimale : à T_k j'associe l'entier (T_k-Tmin)/(Tmax-Tmin) * 256^3 - 1, que je convertie en hexadécimal. A priori, a Tmin j'ai du noir (froid, sans rayonnement), et à Tmax du blanc. Ensuite, je récupère les composantes rgb avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 void Convert(const char* input, int* r, int*g, int*b) { int num = strtol(input + 1, NULL, 16); (*r) = (num & 0xFF0000) >> 16; (*g) = (num & 0xFF00) >> 8; (*b) = num & 0xFF; }
Et là le résultat est assez surprenant... ca me donne de jolies ensembles de couleurs, mais rien de très cohérent...
Une petite idée ?
Merci
Cordialement
Partager