Uno stelo che cresce verso la luce
Cresce per accrescimento: a ogni fotogramma si aggiunge un punto in cima, mentre i punti già aggiunti restano dove sono. Come una pianta, cresce solo quando c’è luce e piega la punta verso la sorgente, così la forma finale conserva il percorso della luce.
Tenere premuto il mouse sul canvas per accendere la luce.
Algoritmo
a ogni fotogramma: draw()
se la luce è accesa e lo stelo non ha raggiunto la cima: if()
aggiungere un punto, mezzo pixel sopra la punta push()
spostarlo un poco verso la luce lerp()
e un poco a caso, di lato noise()
disegnare la luce
unire i punti, con lo spessore che diminuisce verso la punta for()
Istruzioni
Il punto nuovo ha la x della punta spostata di due millesimi della distanza che la separa dalla luce: la piega è più forte quando la luce è lontana, e la punta le si avvicina senza mai raggiungerla.
noise() restituisce un valore fra 0 e 1 che cambia poco da un punto al successivo: meno 0.5, diventa uno scarto fra -0.5 e 0.5 pixel, che per un tratto piega lo stelo verso un lato e poi verso l’altro, senza scatti.
Lo spessore va da 6 pixel alla base a 1 in cima. Dato che n cresce, ogni tratto diventa più spesso a mano a mano che lo stelo si allunga.
Variazioni
Con
0.01al posto di0.002lo stelo si piega subito verso la luce, quasi in orizzontale.
Con
noise( n * 0.1 )le ondulazioni dello stelo diventano più fitte.