L-System: riscrittura e tartaruga
La regola di riscrittura: replaceAll(), un metodo delle stringhe di JavaScript, sostituisce ogni “F” della frase con la sequenza fra virgolette. Partendo da “F”, dopo quattro riscritture la frase ha 1561 caratteri, di cui 625 “F”.
La frase viene letta un simbolo alla volta, come una serie di comandi per una “tartaruga” che disegna: “F” traccia un segmento verso l’alto e sposta l’origine alla sua fine, “+” e “-” ruotano gli assi di 25,7 gradi, convertiti in radianti con radians(), in un senso o nell’altro.
Le parentesi quadre aprono e chiudono un ramo: push() salva la posizione e la direzione della tartaruga, pop() la riporta dove il ramo era cominciato.
Con la regola “F[+F]F[-F][F]”, un angolo di 20 gradi e un passo di 9 nasce un’altra pianta.
Con la regola “FF-[-F+F+F]+[+F-F-F]”, un angolo di 22.5 gradi e un passo di 5 si ottiene una terza pianta, più folta.
Le tre regole vengono dalla figura 1.24 di “The Algorithmic Beauty of Plants” di Przemysław Prusinkiewicz e Aristid Lindenmayer (1990), dove le piante sono speculari a queste: nel libro “+” ruota in senso antiorario, mentre in p5.js le rotazioni positive vanno in senso orario. Nel libro le prime due piante hanno cinque riscritture, che qui richiederebbero una tela più alta.