Con una rotazione di 90° si ottiene un’antenna

import time # sleep()
import turtle
def set_all():
global POSIZIONE, DISTANZA, DISTANZE, RIC_MAX, FATTORE
WIDTH = 800 # larghezza finestra
HEIGHT = 800 # altezza finestra
RIC_MAX = 12 # massima ricorsione
POSIZIONE = HEIGHT*0.4 # posizione iniziale
DISTANZA = HEIGHT*0.33 # dimensione iniziale della curva
DISTANZE = [0]*(RIC_MAX+1) # dimensioni successive
FATTORE = 0.7 # Fattore moltiplicativo
turtle.setup(width=WIDTH, height=HEIGHT)
turtle.hideturtle()
turtle.pencolor("red")
turtle.bgcolor("pink")
turtle.pensize(1)
turtle.tracer(0)
def start_draw(r):
DISTANZE[r] = DISTANZA
for i in range(r-1,0,-1):
DISTANZE[i]=DISTANZE[i+1]*FATTORE
turtle.penup()
turtle.setposition(0,-DISTANZA)
turtle.setheading(90)
turtle.pendown()
def end_draw(r):
turtle.update()
turtle.title("Ricorsione = " + str(r))
time.sleep(1)
def albero(n):
if(n > 0):
d=DISTANZE[n]
turtle.pensize(n)
turtle.forward(d)
turtle.left(90)
albero(n-1)
turtle.right(180)
albero(n-1)
turtle.left(90)
turtle.backward(d)
set_all()
for r in range(1,RIC_MAX+1):
start_draw(r)
albero(r)
end_draw(r)
turtle.done()
Osserva
- Il codice genera gli alberi uno dopo l’altro, con ricorsione da 1 a 12
- Per aumentare la velocità, i rami di un albero appaiono tutti contemporaneamente
- Il nuovo albero ricopre il vecchio, con spessore crescente.