View Full Version : [JAVA] Generazione di un range di colori RGB
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.
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! :)
Però chi mi garantisce che sommando e sottraendo mi prende solo gradazioni di verde? (forse ho capito male io eh)
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.