Valori casuali memorizzati
Conservati in un array, possono cambiare di poco a ogni fotogramma ripartendo ognuno dal valore precedente, quindi senza i salti di un random() ricalcolato da capo in draw(). Il procedimento vale per qualsiasi proprietà geometrica o cromatica.
Algoritmo
una volta sola, all'avvio: setup()
per ogni lettera, estrarre a caso un angolo random()
memorizzarlo in un array, con lo stesso indice della lettera
a ogni fotogramma: draw()
per ogni lettera: for()
cambiare di poco il suo angolo, a caso random()
tenerlo fra l'angolo minimo e il massimo constrain()
ruotare la lettera intorno al suo centro e disegnarla rotate()
Istruzioni
L’angolo memorizzato cresce o diminuisce al massimo di 0.03 radianti, poco meno di due gradi, e il risultato prende il suo posto nell’array: il fotogramma successivo riparte da lì.
constrain() restituisce il valore ricevuto se è compreso fra il minimo e il massimo, altrimenti il limite più vicino: gli angoli restano fra -1.6 e 1.6 radianti, poco più di 90 gradi da una parte e dall’altra. All’avvio sono compresi fra -0.4 e 0.4, circa 23 gradi, e poi si allargano col tempo.
L’origine si sposta nel centro della lettera, che rotate() fa ruotare intorno a quel punto e text() disegna in 0, 0. Le lettere sono distanziate di 17 pixel, a partire da 46 pixel dal bordo sinistro della tela.
Variazioni
In
rotate(), conrandom( -0.4, 0.4 )al posto diangoli[i]le lettere cambiano inclinazione a ogni fotogramma, con salti improvvisi.
Con
random( -0.1, 0.1 )le variazioni diventano più rapide e nervose, e in una decina di secondi molte lettere arrivano all’inclinazione massima.
Gli stessi valori possono controllare anche una proprietà cromatica. Con questa riga prima di
text()le lettere inclinate in senso orario diventano più chiare: