PDA

View Full Version : [JAVA] Generazione di un range di colori RGB


dierre
25-03-2012, 09:29
Ciao a tutti! Se avessi bisogno di generare X colori che si trovano tra due colori RGB definiti in input, come posso fare?
Per esempio metto inizio Bianco #FFFFF e finale verde scuro #006400 e voglio 14 colori che mi facciano arrivare dal bianco al verde scuro attraverso l'aumento della gradazione del verde.

Efem
25-03-2012, 10:07
Un primo procedimento (stupido) che mi viene in mente è questo:
Sottrai o sommi, a seconda se il primo valore è più piccolo del secondo o viceversa, tutti i valori (in esadecimale) che inetrcorrono tra il primo e il secondo, e li metti in un array temporaneo tenendo un contatore di quanti "passi" hai fatto (spreco di memoria ram).
Dividi i passi che hai fatto per il numero di colori che vuoi meno due (il primo e il l'ultimo che sono compresi).
Ipoteticamente, se il tuo array fosse di 100 elementi avresti 100%12 = 8
Partendo dal primo elemento salti di 8 passi alla volta, per 12 volte.
Elimini l'array, al massimo ti conservi i colori in un array più piccolo se dovessero servirti ancora dopo.

Gli indici che andresti a prendere in questo caso sono

0 - 8 - 16 - 24 - 32 - ... - 96 - 100 che sono appunto 12 colori intermedi tra il bianco e il verde. In questo caso avresti dovuto sottrarre quindi o imponi un paletto (stupido) che il primo colore debba essere necessariamente il più piccolo, e ogni grafico cercherebbe un mitra, oppure devi calcolarti quale dei due è il più piccolo.

Sicuramente c'è di meglio, ma spero di essere stato utile ugualmente, ciao! :)

dierre
25-03-2012, 12:57
Però chi mi garantisce che sommando e sottraendo mi prende solo gradazioni di verde? (forse ho capito male io eh)

Efem
25-03-2012, 15:16
No, forse sono io che ho capito bene... se imposti il colore di inizio bianco e il colore finale verde scuro, attraverserai tutte le gradazioni fino al verde scuro.