Alberi binari

Un albero binario frattale.
Lo spessore del tratto è fisso: turtle.pensize(3)

import turtle
#----------------------------------------- IMPOSTAZIONI
WIDTH      = 800
HEIGHT     = 800
DISTANZA   = 0.38*HEIGHT
RATIO      = 1.67
RICORSIONE = 9

turtle.setup(width  = WIDTH,
             height = HEIGHT)

turtle.bgcolor("lime")
turtle.color("green")
turtle.pensize(3)
turtle.shape('turtle')
turtle.speed(0)
turtle.title("Albero binario, r = "
             + str(RICORSIONE))
#----------------------------------------- Posizione iniziale
turtle.penup()
turtle.setposition(0, -DISTANZA)
turtle.pendown()
turtle.left(90)
#----------------------------------------- Algoritmo
def albero(n, d):
    turtle.forward(d)
    if(n > 1):
        d2=d/RATIO
        turtle.left(45) ; albero(n-1, d2)
        turtle.right(90); albero(n-1, d2)
        turtle.left(45)
    turtle.backward(d)
#----------------------------------------- MAIN
albero(RICORSIONE, DISTANZA)

Lo spessore del tratto dipende dal livello di ricorsione: turtle.pensize(3*n)

def albero(n, d):
    turtle.pensize(3*n)
    turtle.forward(d)
    ...
    ... 

Lascia un commento