Question

J'ai une liste de valeurs numériques. Je peux normaliser les valeurs si nécessaire.

Je dois transformer cette liste en une liste de couleurs (en HSL, RGB ou en tout autre modèle de couleur & # 8212; je pourrai toujours effectuer la conversion ultérieurement).

Pour toute valeur donnée, la couleur doit être la même à chaque fois.

Plus deux valeurs numériques données sont différentes, plus les valeurs correspondantes de contraste doivent être.

Toutes les couleurs utilisées doivent être aussi contrastées que possible (il s'agit d'une limitation douce, une solution brute conviendrait).

Notez que la liste est plutôt longue (des milliers de nombres). Il vous suffit donc de compresser tous les nombres dans un seul canal de couleur pour obtenir des résultats trop denses.

Était-ce utile?

La solution

Vous pouvez envisager d'utiliser une courbe de remplissage d'espace en 3D dans l'espace chromatique choisi. . J'appuierai la suggestion CIELAB de Mark. J'aurais aimé connaître cette information la dernière fois. résoudre un problème similaire.

Autres conseils

Quel que soit l'algorithme sur lequel vous avez finalement opté, vous pouvez utiliser l'espace colorimétrique CIELAB . Il normalise les différences de perception des couleurs chez l'homme, de sorte qu'un espacement numérique égal donne des différences de perception égales.

Voir: Comment générer automatiquement N " distinct quot; couleurs?

Il serait préférable de normaliser vos valeurs et de les exécuter à travers le code que j'ai suggéré (où teinte == votre valeur), en construisant une carte / hachage. (Vous pouvez utiliser une fonction de style hash à la place, ce qui est probablement plus efficace.)

Vous pouvez & "randomiser &"; la luminosité (ou la luminosité, selon votre modèle) et la saturation en utilisant des bits prédéterminés de votre nombre, par exemple.

Pourquoi ne pas utiliser des nuances de gris? Il suffit de calculer les valeurs min / max et de l’utiliser pour traduire chaque nombre en une nuance différente du blanc au noir.

Je sais que ce ne sont pas des couleurs, mais à mon avis, il sera plus facile d’interpréter les résultats. Je peux dire ce que cela signifie quand quelque chose est plus sombre ou plus clair, mais qui peut dire que, par exemple, le vert a une valeur supérieure à celle de l’orange?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top