Riscrittura (L-system)
Il testo viene riscritto più volte, poi ogni lettera diventa un tratto o una svolta.
La regola
Un sistema L parte da una stringa di lettere, l'assioma, e da una regola che dice con che cosa sostituire ogni lettera. La regola si applica a tutte le lettere insieme, poi di nuovo sul risultato. Ogni giro è una generazione.
F → F-F++F-F
Poi una tartaruga legge la stringa. F vuol dire: avanza tracciando un segno. + gira a sinistra di un angolo fisso, - gira a destra dello stesso angolo. Le parentesi quadre [ e ] mettono da parte la posizione e poi la ritrovano: è così che nascono i rami. Le altre lettere, come X, non disegnano nulla, servono solo alla riscrittura.
Qui l'assioma è F++F++F, un triangolo, e l'angolo è di 60°. A ogni generazione, ogni segno è sostituito da quattro segni più piccoli. Il testo cresce molto in fretta, ma il disegno conserva lo stesso aspetto.
Tocca a voi
Scegliete una regola, poi alzate le generazioni una alla volta. La stringa compare accanto al disegno: quando diventa troppo lunga, ne viene mostrato solo l'inizio, con la lunghezza reale subito sotto. La tartaruga la percorre, e il disegno viene reinquadrato a ogni generazione per stare nel riquadro.
Il drago e la pianta hanno un proprio limite di generazioni, perché la pagina resti fluida.
Stringa riscritta
F++F++F
7 caratteri
F → F-F++F-F
Il disegno qui sopra è uno schema didattico, non l'opera: mostra la regola, ma non riproduce i colori, la dimensione dei punti né la grana della stampa.
Che cosa cambia da un algoritmo all'altro
Quasi tutto sta nei dati: l'assioma, la regola e l'angolo. Il motore che legge la stringa è lo stesso per quasi tutti.
- Curva del drago
- Il drago di Heighway: una striscia di carta piegata a metà ancora e ancora, poi aperta ad angoli retti. L'opera non scrive una regola di riscrittura: costruisce direttamente la successione delle svolte, a sinistra o a destra, piegando la carta. Lo schema qui sopra passa da una regola, più semplice da mostrare.
- Terdrago
- Il drago ternario, tracciato con un solo tratto. La regola è F → F+F-F, con svolte di 120°.
- Curva C di Lévy
- La curva a C di Lévy. Ogni segno è sostituito da due segni ad angolo retto: F → +F--F+, con svolte di 45°.
- Fiocco di neve di Koch
- Il fiocco di Koch: un triangolo (F++F++F) i cui lati si increspano secondo F → F-F++F-F, con svolte di 60°. La curva è chiusa.
- Curva di Koch quadratica
- La variante ad angolo retto: F → F+F-F-F+F, con svolte di 90°. Ogni segno diventa un merlo. A differenza del fiocco, la curva è aperta.
- Punta di freccia di Sierpiński
- La punta di freccia di Sierpiński: un solo tratto che finisce per disegnare il triangolo di Sierpiński. Due lettere, F e G, disegnano entrambe: F → G-F-G e G → F+G+F, con svolte di 60°.
- Sierpiński (sistema L)
- Il triangolo di Sierpiński, ottenuto in un altro modo: l'assioma è F-G-G, le regole sono F → F-G+F+G-F e G → GG, con svolte di 120°.
- Fiocco di neve di Gosper
- Il fiocco di Gosper, o flowsnake: una curva esagonale che riempie lo spazio. Due lettere disegnano, F → F-G--G+F++FF+G- e G → +F-GG--G-F++F+G, con svolte di 60°.
- Curva di Hilbert
- La curva di Hilbert, che riempie il quadrato. Le lettere X e Y non disegnano, servono solo alla riscrittura: X → +YF-XFX-FY+ e Y → -XF+YFY+FX-, con svolte di 90°.
- Curva di Peano
- La curva di Peano, un'altra curva che riempie il quadrato. La stringa è moltiplicata per nove a ogni generazione, contro quattro per Hilbert: non si può quindi salire altrettanto. Svolte di 90°, regole scritte con X e Y.
- Curva di Moore
- La curva di Moore, la versione chiusa di Hilbert: l'assioma LFL+F+LFL unisce quattro pezzi di Hilbert in un anello. Le lettere L e R non disegnano, svolte di 90°.
- Pianta frattale
- La pianta di Lindenmayer, l'unica della famiglia ad avere dei rami: le parentesi quadre [ e ] mettono da parte la posizione. X → F+[[X]-X]-F[-FX]+X e F → FF, con svolte di 25°. È anche l'unica il cui angolo può essere estratto a caso, di poco, a ogni svolta.
Ciò che decide il caso
Per ogni opera, il programma sorteggia queste impostazioni, entro limiti fissati in anticipo.
- Numero di riscritture Curva del drago da 11 a 16
- Angolo di svolta (°) Curva del drago da 88 a 92
- Angolo (°) Fiocco di neve di Koch da 58 a 62
Gli algoritmi di questa famiglia
- Curva del drago
- Terdrago
- Curva C di Lévy
- Fiocco di neve di Koch
- Curva di Koch quadratica
- Punta di freccia di Sierpiński
- Sierpiński (sistema L)
- Fiocco di neve di Gosper
- Curva di Hilbert
- Curva di Peano
- Curva di Moore
- Pianta frattale