Studio di poligonali logaritmiche (o geometriche) aventi lati in progressione  geometrica  e delle relative curve interpolanti eseguito con l' aiuto della fida tartaruga e della sua geometria.
(di Giorgio Pietrocola )
Ho chiamato  poligonale logaritmica (o geometrica) la linea continua  ottenuta ruotando di uno stesso angolo  una serie infinita di segmenti in progressione geometrica. (vedi figure)
La nostra poligonale logaritmica sarà caratterizzata, in pratica, da un segmento iniziale, dall'angolo di rotazione della tartaruga e dal fattore di riduzione dei successivi segmenti.
to poligonale :angolo :a :rap :iter
if :iter = 0 [stop]
forward :a right :angolo
poligonale  :angolo :a*:rap :rap :iter-1
end
Questa procedura ricorsiva scritta in Logo, comandandando alla tartaruga di avanzare e di girare a destra, genera le poligonali mostrate sotto.
forward :a fa avanzare la tartaruga secondo il parametro a. (oppure fd :a)
right :angolo
fa girare la tartaruga secondo il parametro angolo (oppure rt :angolo)
Da notare che angolo non è l'angolo tra i segmenti ma il suo complemento a 180.

rap, minore di uno per evidenti motivi grafici, è il rapporto costante ossia la ragione della progressione geometrica
iter controlla il numero di iterazioni.
La figura a lato si ottiene, memorizzata la procedura,  con il comando
poligonale 108 140 0.62 12
essendo, nel caso specifico, angolo=108, a=140, rap=0.62 (quasi aureo)  iter=12
poligonale 90 140 0.8 15 poligonale 60 130 .8 20 poligonale 90 140 0.8 12
Come dimostrerò tra breve tutte le poligonali regolari di cui tratto convergono in un punto che, nel caso in cui il rapporto tra segmenti sia aureo (62% circa), è detta occhio di dio.
Teorema: Una poligonale logaritmica, con primo segmento  a, angolo di rotazione della tartaruga  a, e fattore di riduzione  r, converge nel vertice opposto al primo segmento (a) su cui è costruito un triangolo in modo che l'angolo opposto a tale segmento sia a e che risulti  c/b=r  
Nella figura accanto la gentile tartaruga non solo  ha tracciato, dal basso verso l'alto, il primo segmento della poligonale ma ha anche costruito il triangolo che evidenzia il punto di convergenza nel vertice del triangolo il cui angolo corrispondente ha ampiezza
a. . L'altra particolarità del triangolo è di avere il rapporto tra gli altri due lati uguale al fattore di riduzione, cioè c/b=r.
La dimostrazione segue dal fatto che il secondo triangolo simile al primo ottenuto da questo riducendo i lati  del fattore r ha il lato maggiore uguale al lato minore del primo ed è quindi possibile costruirlo a partire da c facendo in modo che gli angoli alfa siano adiacenti. E' facile constatare che l'angolo tra i due segmenti risulta b+c=180-a e quindi lo spostamento a destra della tartaruga è proprio alfa. Dunque questa costruzione ha per perimetro esterno proprio la nostra poligonale.  Dato che i lati della poligonale si riducono continuamente la poligonale si avvicina indefinitamente al vertice comune dei triangoli.
to tri :alfa :a :r
make "b sqrt :a*:a/(:rap*:rap+1-2*:rap*cos :alfa)
make "c :b*:rap
make "h 2*(triarea :a :b :c)/:a
make "gamma arcsin :h/:b
if and (:alfa<90) (:c>:b/cos :alfa) [make "gamma 180-:gamma ]
make "beta 180 - :alfa - :gamma
fd :a rt 180-:beta
fd :c rt 180-:alfa
fd :b rt 180-:gamma
end
to triarea :a :b :c
make "p (:a+:b+:c)/2
output sqrt :p*(:p-:a)*(:p-:b)*(:p-:c)
end

 

La procedura tri costruisce in logo il triangolo partendo da un segmento di lunghezza a, un anglo alfa ed un fattore di riduzione r.
La funzione triarea calcola l'area del triangolo dati tre lati.
b è calcolato mediante il teorema del coseno di Carnot.
L'if serve a tener conto di quando, uscendo  la priezione del vertice dal segmento, l'angolo gamma diventa esterno.
Una volta determinati tutti gli elementi del triangolo la tartaruga esegue la figura avanzando (fd=forward) dei rispettivi lati e ruotando a destra (rt=right) degli angoli esterni.
La figura a destra è stata ottenuta con questa funzione scegliendo alfa=60 a=140 e,successivamente, r=.62 r=.8 r=.9 r=1
Da notare che con r=1 non vi è nessuna riduzione e si ottiene un triangolo equilatero
Da notare che questa procedura è trasparente cioè lascia la tartaruga esattamente dove la trova.

 

to superpoligonale :angolo :a :rap :iter
if :iter = 0 [stop]
tri :angolo :a :rap
forward :a rt :angolo
superpoligonale  :angolo :a*:rap :rap :iter-1
end
Questa procedura è stata ottenuta da poligonale cambiando nome in superpoligonale ed aggiungendo la terza riga che richiama tri
ecco a destra cosa si ottiene con
superpoligonale 80 200 .62 8
nota 0.62 è un'approssimazione del rapporto aureo (-1+rad 5)/2 =1/phi
dove phi=(1+rad 5)/2
Ecco quindi le due poligonali auree!

Quella del quadrato  90 gradi di rotazione della tartaruga e quella del triangolo aureo che corrisponde ad una rotazione della tartaruga di 108 gradi
Le due figure si ottengono rispettivamente con
superpoligonale 90 200 .62 8
superpoligonale 108 200 .62 8
 
Ecco cosa succede con un fattore di riduzione non aureo per esempio 0.8 (ed aumentando le iterazioni)
superpoligonale 90 200 .8 20
superpoligonale 108 200 .8 20

Da notare le diagonali evidenziate da Dino Liberatore. (vedi qui) Non dipendono dal rapporto aureo ma solo dal gioco dei novanta gradi (quarto di giro)

Corollario: ogni serie archi interpolante i segmenti della spezzata converge nel vertice/vortice comune ai triangoli.
E' inoltre evidente che ad ogni poligonale logaritmica rimane associata una spirale logaritmica interpolata.
Ma ripartiamo ora dal nostro triangolo per costruire un arco logaritmico.
Puntando uno "pseudo-compasso" sul vertice corrispondente ad alfa dovremo tracciare una curva che partendo dal raggio b arrivi al raggio ridotto c e questo gradatamente secondo una progressione geometrica e quindi  una funzione esponenziale.
Da notare che nel caso particolare r=1 la curva coincide con un arco di cerchio
to triarc :alfa :a :rap
make "b sqrt :a*:a/(:rap*:rap+1-2*:rap*cos :alfa)
make "c :b*:rap
make "h 2*(triarea :a :b :c)/:a
make "gamma arcsin :h/:b
make "beta arcsin :h/:c
make "beta 180 - :alfa - :gamma

fd :a rt 180-:beta
fd :c rt 180-:alfa

make "divang int (:a*2)
make "fat power :rap 1/:divang
make "lungo :b
make "angolino :alfa/:divang
repeat :divang [fdp :lungo rt :angolino make "lungo :lungo*:fat]
lt :alfa
fd :b rt 180-:gamma
end

to fdp :x
pu fd :x pd
fd 1 pu bk 1 pd
pu bk :x pd
end

Le linee marcate in blu ripetono il contenuto della procedura tri ma oltre a disegnare il solito triangolo sul segmento a viene disegnato un arco di curva logaritmica.
La variabile divang indica il numero di parti in cui viene diviso l'angolo alfa per tracciare i punti dell'arco. Il fattore 2 riflette la scelta di fare il doppio dei punti  rispetto a quelli del segmento sotteso. fat è il fattore di "capitalizzazione frazionata" per cui si deve moltiplicare ogni volta il raggio che deve progressivamente passare, nelle volte indicate da divang, dalla misura di b a quella di c.
Infine la procedura fdp :x funge da punta per il nostro pseudo-compasso facendo tracciare alla tartaruga  un punto dopo aver percorso la distanza x a penna alzata e, quindi, senza lasciar traccia.
Nella figura sopra l'angolo alfa che insiste sul segmento è sempre di 60 gradi mentre il fattore di riduzione varia da .6 fino ad 1 caso limite in cui  il triangolo diventa equilatero e la curva logaritmica diventa una circonferenza. Come si vede la differenza tra gli archi  è molto piccola. 
Questioni emerse.
In queste  riflessioni, favorite dalla tartaruga, ho notato che, lasciando fisso il valore di a e di r e facendo variare l'angolo alfa di rotazione, il centro di convergenza si muove su una circonferenza. Nel caso del rapporto aureo r=1/
f  questo cerchio, ha raggio uguale ad a.
In coordinate cartesiane ,il centro si trova in [0,
f
a] e il cerchio quindi ha la seguente equazione:

 

x2+(y-fa)2=a2

Dove naturalmente la casa di partenza del segmento a e della tartaruga è (0;0)

Altre immagini della spirale logaritmica
(realizzate con MSWLogo)
Le dimensioni sono ridotte. per vedere nelle dimensioni naturali si clicchi sull'immagine

Questo risultato, trovato empiricamente prima di capire dove avvenisse la convergenza, si dimostra agevolmente  considerando il luogo dei punti P tali che
PB/PC = r
(dove C e B sono gli estremi del primo segmento della poligonale aventi coordinate rispettivamente [0;0] e [0;a]).
Imponendo questa condizione si ottiene x2+(y-a)2=r2(x2+y2) da cui facilmente
C=[0;a/(1-r2)]   e Raggio=(ra)/(1-r2) che quando r=1/
f si riduce a quanto osservato precedentemente.
     
Ringrazio Ivana che mi ha spronato in questo studio,  la sua rete di collaboratori che conosco solo indirettamente:  Dino, Elena, Gianfranco, il laborioso  Claudio che gentilmente ci ospita e, infine, naturalmente, la fida tartaruga compagna inseparabile di continue avventure geometriche.
Per osservazioni, commenti, approfondimenti, segnalazione di lavori collegati ai temi trattati o altro potete scrivermi a questo indirizzo:
giorgio.pietrocola@gmail.com
g.p.
28 Luglio 2004