Codice:
import turtle
bob=turtle.Turtle()
def koch(t, n):
"""disegna una curva di Koch di lunghezza n."""
if n < 10:
t.fd(n)
return
m = n/3
koch(t, m)
t.lt(60)
koch(t, m)
t.rt(120)
koch(t, m)
t.lt(60)
koch(t, m)
koch(bob,200)
Salve a tutti, faccio questa domanda per chiedere chiarimenti riguardo un esercizio e penso una spiegazione più approfondita del comando 'return' in questo contesto.
La funzione scritta sopra disegna una curva di Koch, una figura frattale che viene costruita con il seguente schema:
- Partendo da un segmento di determinata lunghezza
- dividere il segmento in tre segmenti uguali;
- cancellare il segmento centrale, sostituendolo con due segmenti identici che costituiscono i due lati di un triangolo equilatero;
- tornare al punto 1 per ognuno degli attuali segmenti.
Nonostante la funzione svolga il suo lavoro, non capisco come l'interprete la esegua; cercherò di spiegare quello che penso di aver capito:
partendo dal 200 (valore casuale dato da me) la funzione la divide per 3, si richiama da sola, divide ancora per 3 e così via finchè non raggiunge un valore inferiore di 10 (nel mio caso circa 7), lo disegna come linea retta, gira a sinistra di 60°, ridisegna un piccolo segmento, gira di 120°, altro segmento, gira di 60°, facendo un altro segmento, non capisco però come faccia ad andare avanti, ovvero girando ulteriormente di 60° per poi rifare ulteriori ''set'' di altri 4 piccoli segmenti e così via fino formare la curva di Koch vera e propria.
in allegato vi lascio anche un sito che prova il codice: https://trinket.io/turtle/f54fe04ddd .
Spero abbiate capito la mia difficoltà e grazie in anticipo per le risposte.