import time
import turtle
#-----------------------------------------------
WIDTH =800 # Dimensione finestra
HEIGHT =800 # ...
LIVELLI=1 # Numero livelli
#-----------------------------------------------
W =0 # Posizione iniziale
H =-HEIGHT*0.45 # ...
DIR =90 # Direzione iniziale
ANGOLO =45 # Angolo a sinistra
#-----------------------------------------------
SIZE = WIDTH*0.58/(2**(LIVELLI-1))
#-----------------------------------------------
R = 'F'
REGOLE = {'F':'F[-F]F[+F]',
'+':'+', '-':'-',
'[':'[', ']':']'
}
#-----------------------------------------------
def trasforma(R):
R2=''
for x in R:
R2 += REGOLE[x]
return R2
#-----------------------------------------------
def prepara():
turtle.setup(width=WIDTH, height=HEIGHT)
turtle.bgcolor('cyan')
turtle.hideturtle()
turtle.pencolor("green")
turtle.pensize(2)
turtle.penup()
turtle.speed(0)
turtle.setposition(W, H)
turtle.setheading(DIR)
turtle.title("L-System: pianta, livello="
+ str(LIVELLI))
turtle.tracer(0)
#-----------------------------------------------
def disegna(R):
STACK=[]
for x in R:
if(x == '+'):
turtle.left(45)
elif(x == '-'):
turtle.right(45)
elif(x == 'F'):
turtle.pendown()
turtle.forward(SIZE)
elif(x == '['):
p=turtle.position()
h=turtle.heading()
STACK.append(p)
STACK.append(h)
elif(x == ']'):
h=STACK.pop()
p=STACK.pop()
turtle.penup()
turtle.setposition(p)
turtle.setheading(h)
#-----------------------------------------------
for j in range(LIVELLI-1):
R=trasforma(R)
print(len(R))
print(R)
prepara()
disegna(R)
turtle.update()