Domanda

Ho un elenco di valori numerici. Posso normalizzare i valori se necessario.

Devo trasformare questo elenco in un elenco di colori (in HSL, RGB o in qualsiasi altro modello di colore & # 8212; posso sempre fare la conversione in seguito).

Per ogni dato valore il colore deve essere lo stesso ogni volta.

Più diversi sono i due valori numerici dati, maggiore è il contrasto dei valori corrispondenti.

Tutti i colori usati devono essere il più possibile in contrasto tra loro (questa è una limitazione morbida, una soluzione approssimativa farebbe).

Nota che l'elenco è piuttosto grande (migliaia di numeri), quindi semplicemente stringere tutti i numeri in un singolo canale di colore produrrebbe risultati troppo densi.

È stato utile?

Soluzione

Potresti prendere in considerazione l'uso di una curva di riempimento dello spazio in 3D attraverso lo spazio colore scelto . Secondo il CIELAB di Mark, vorrei che avessi saputo di quell'ultima volta che dovevo risolvere un problema simile.

Altri suggerimenti

Qualunque algoritmo su cui ti decidi finalmente, potresti provare lo spazio colore CIELAB . Normalizza le differenze nella percezione del colore umano, in modo che la stessa spaziatura numerica dia uguali differenze percettive.

Vedi: Come generare automaticamente N " distinto quot; i colori?

Sarebbe meglio normalizzare i tuoi valori ed eseguirli attraverso il codice che ho suggerito (dove hue == il tuo valore), costruendo una mappa / hash. (Puoi invece utilizzare una funzione in stile hash, che probabilmente è più efficiente.)

Puoi " randomizzare " leggerezza (o luminosità, a seconda del modello) e saturazione, ad esempio con alcuni bit predefiniti del numero.

Perché non usare le sfumature di grigio? Basta calcolare i valori min / max e usarlo per tradurre ogni numero in una tonalità diversa dal bianco al nero.

So che non sono i colori, ma secondo me sarà più facile interpretare i risultati. Posso dire cosa significa quando qualcosa è più scuro rispetto a più chiaro, ma chi può dire che, ad esempio, il verde ha un valore più elevato rispetto all'arancione?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top