[BASE Cinque - Appunti di Matematica ricreativa]
Un semplice modello matematico in poche righe di codice.
Sintesi. A volte basta fermarsi e osservare: una pigna, una cicoria, un cavolo rosso, una margherita. Tutte mostrano spirali.
In molte specie queste spirali compaiono in coppie di numeri di Fibonacci, come se la pianta seguisse una semplice regola per crescere.
Con la turtle graphics possiamo esplorare quella regola: un angolo costante, un passo regolare in poche righe di codice.
Queste attività di programmazione sono semplici, visive e immediate: funzionano già dalla scuola secondaria di primo grado.
Il precedente articolo, dedicato alle spirali, si concludeva con la spirale archimedea e una strana spirale basata sull'angolo aureo.
Mettendo insieme queste due forme geometriche cercheremo di costruire un modello della fillotassi piana che vediamo nelle asteracee, come le margherite, e in altre piante.
Apriamo LibreLogo e digitiamo il programma seguente (oppure usiamo il copia e incolla).
Otteniamo una spirale archimedea.
Il passo (p) della spirale archimedea è costante. Ciò significa che la distanza tra due spire successive è sempre la stessa.
home clearscreen pensize 1 pencolor “green” lato=0.03 repeat 360 [ forward lato left 3 lato=lato+0.03 ]

Figura. Spirale di Archimede antioraria di passo p (approssimazione poligonale)
Ora vogliamo disporre dei punti sulla spirale tali che abbiano la stessa
divergenza angolare fra loro.
Sfruttiamo proprio la definizione di spirale archimedea in cui la distanza dal centro (misura del raggio vettore) cresce in modo direttamente proporzionale all'angolo totale di rotazione.
In formula:
r(θ) = k · θ
Ecco il programma.
angolo=30 passo=10 n_giri=3 ; Traccia la spirale puntinata pencolor “black” pensize 1 rot1=5 incr_r1=passo*rot1/360 n_punti1=n_giri*360/rot1 r1=0 home repeat n_punti1 [ pu forward r1 pd pensize 1 point pu home left rot1*repcount r1=r1+incr_r1 ] ; Traccia i punti più grandi a distanza angolare di 30° angolo=30 pencolor “green” rot=angolo incr_r=passo*rot/360 n_punti=n_giri*360/rot r=0 home repeat n_punti [ pd forward r pensize 5 point pensize 0 pu home left rot*repcount r=r+incr_r ]
Otteniamo una spirale archimedea sulla quale sono segnati alcuni punti a intervalli angolari regolari. Nel nostro esempio, un punto ogni 30°.

Figura. Spirale di Archimede antioraria con punti a divergenza angolare di 30°
Cosa succede se impostiamo l'angolo di 29°, che non è sottomultiplo di 360?
Osserviamo che i punti riempiono meglio il piano e sembrano formare diverse
spirali sia orarie, sia antiorarie.

Figura. Spirale di Archimede antioraria con 10 avvolgimenti e punti con divergenza angolare di 29°
Immaginate ora una spirale di punti discreti e numerati disposti secondo una divergenza angolare fissa fra loro e tali che la distanza del punto n-esimo dal centro della spirale sia proporzionale alla radice quadrata di n.

Figura. Spirale in cui il raggio vettore è proporzionale alla radice quadrata dell'angolo totale.
Proviamo a scrivere un programma minimalista che disegni i punti di una spirale discreta di questo tipo, dati tre parametri:
La distanza r dell'n-esimo punto dal centro è proporzionale a alla radice quadrata di n secondo k
Nota sulla formula di Vogel.
La formula di Vogel, proposta dal fisico tedesco Helmut Vogel nel 1979, è il modello matematico che descrive la disposizione ottimale dei semi nel capolino del girasole, generando una spirale di punti discreti. Espressa in coordinate polari (rn, θn) per ogni seme n-esimo, la formula è:
θn = n · α
rn = k √n
dove α è l'angolo di divergenza e k è un fattore di scala.
Il modello si basa su due principi fondamentali.
Quando una procedura è interessante, utile e consolidata, conviene darle un nome. In questo modo entra a far parte del linguaggio di programmazione e si può richiamare semplicemente scrivendo il suo nome seguito dai valori dei parametri che deve usare.
Ecco il codice davvero minimalista per tracciare qualunque spirale discreta di Vogel.
to spiravogel :angolo :n_punti :k home ht cs ; Disegna il primo punto di colore rosso pencolor “red” pensize 8 pd point pu ; Disegna i successivi n_punti-1 di colore verde pencolor “green” repeat :n_punti-1 [ n=repcount r=:k*n**0.5 left :angolo*n pu forward r pd pensize 8 point pu home ] end
Richiamiamo la procedura con i tre parametri 55, 100, 10 ed ecco il risultato ottenuto.

Figura. Spirale discreta di Vogel formata da 100 punti con angolo di divergenza di 55° e fattore di ingrandimento 10
Nota sulla sintassi per definire una procedura con parametri e richiamarla.
L’angolo aureo è il minore dei due angoli al centro ottenuti suddividendo la circonferenza (C) secondo la sezione aurea.
Dividiamo cioè la circonferenza in due archi tali che l'arco maggiore sia medio proporzionale tra l'arco minore e l'intera circonferenza.

Figura. Angolo aureo
a : b = b : C
ovvero:
a : b = b : (a+b)
Per calcolare l'ampiezza dell'angolo aureo basta dividere l'angolo giro per ϕ2, dove ϕ è il numero aureo, cioè (1+√5)/2.
In gradi sessadecimali:
Angolo aureo = 360° : ϕ2= 360° : ((3+√5)/2) = 137.507764...° (è un numero irrazionale).

Finalmente siamo arrivati alla creazione del nostro modello matematico!
Una spirale discreta di Vogel caratterizzata da un angolo aureo di divergenza fra i suoi punti e da un numero adeguato di punti è un buon modello dell'infiorescenza di molte asteracee, come la margherita, il girasole e alcuni cardi.
E può simulare molti altri casi di fillotassi.
Vediamo per esempio la distribuzione di 300 fiori con angolo di divergenza 137.51.

Figura. Simulazione di fillotassi piana con angolo di 137.51°
L'angolo aureo è determinante per ottenere questa struttura.
Basta infatti modificarlo di pochissimo perché quel pattern si perda completamente.
Per esempio, con LEFT 137.20

Figura. Simulazione di fillotassi piana con angolo di 137.20°
Oppure con LEFT 139.90

Figura. Simulazione di fillotassi piana con angolo di 139.90°
Per simulare la crescita degli elementi man mano che ci si allontana dal centro, possiamo rendere variabile la dimensione della penna che traccia i punti. Facciamo qualche prova per tentativi.

Figura. Simulazione di fillotassi piana con crescita degli elementi verso l'esterno
Proviamo a disegnare cerchi con diametro crescente e cambiamo il colore di riempimento.
hideturtle pensize 1 fillcolor "orange" filtransparency 10 repeat 100 [ pendown circle 8 + repcount penup forward 12 + (repcount*2) right 137.51 ]

Figura. Simulazione di fillotassi piana con angolo di 137.51° e cerchi di diametro crescente
Ricordiamo la sequenza di Fibonacci:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Osserviamo il modello della margherita.
Con un po' di pazienza, possiamo contare 21 spirali antiorarie e 34 spirali orarie. Sono due numeri di Fibonacci consecutivi!

Figura. Spirali emergenti in numero di Fibonacci
Nel modello della pigna, invece, possiamo contare 13 spirali antiorarie e 8 spirali orarie. Ancora una volta due numeri di Fibonacci consecutivi.

Figura. Spirali emergenti in numero di Fibonacci
C'è una corrispondenza fra questi modelli matematici e le strutture naturali?
Assolutamente sì. Però la natura non sceglie l’angolo aureo: esso emerge da
semplici regole locali di crescita.
A seconda della specie, si vedono spirali
diverse.
Per dare l'idea, riporto alcuni esempi fotografici.
Nel cavolo rosso si vedono 3 spirali orarie.

Figura. Spirali nella fillotassi del cavolo rosso
La cicoria presenta 5 spirali antiorarie.

Figura. Spirali nella fillotassi della cicoria
Nella pigna di pino si possono contare 8 spirali orarie e 13 spirali antiorarie.

Figura. Spirali nella fillotassi della pigna
Nella margherita comune si possono contare 34 spirali orarie e 21 spirali antiorarie, esattamente come nel modello matematico.

Figura. Spirali nell'infiorescenza della margherita comune
Guardando una margherita più da vicino, si vede che i fiori del capolino hanno una struttura pentagonale ma si impacchettano in un reticolo quasi esagonale.
Il nostro modello semplificato cattura la geometria di fondo ma non riesce a cogliere le forme e le deformazioni dei singoli elementi. Un buon punto di partenza per futuri approfondimenti.

Figura. Dettaglio sull'infiorescenza della margherita comune
Questo articolo e i relativi modelli geometrici si ispirano al testo
fondamentale di Przemyslaw Prusinkiewicz e Aristid
Lindenmayer, The Algorithmic Beauty of Plants, Springer, 2004.
Le pagine 99–109, in particolare, introducono la fillotassi
piana e mostrano come modellarla attraverso gli L‑System.
Per la realizzazione di questa guida, il modello geometrico proposto dagli
autori è stato tradotto nel linguaggio della turtle graphics, mantenendo la
stessa idea di fondo: un angolo costante e una distanza dal centro che cresce
con la radice quadrata dell’indice.
La formula utilizzata per disporre i
punti è la celebre equazione introdotta da Helmut Vogel nel 1979 per descrivere
la distribuzione ottimale dei fiori nel capolino del girasole.
Il modello assegna al seme di indice n una distanza dal centro
proporzionale a √n e applica una rotazione costante pari all’angolo aureo, circa
137.508°..
Crediti.
Contenuti originali di Gianfranco Bo, rilasciati nel pubblico dominio (CC0).
LibreOffice è un marchio registrato di The Document Foundation. Gli screenshot
dell’interfaccia provengono dal software LibreOffice (v.26.2).
Pace e bene a tutti.
GfBo
Data creazione: maggio 2026
Ultimo aggiornamento: giugno 2026
Sito Web realizzato da Gianfranco Bo