L-System > Fibonacci Word

Vedi la discussione


Ecco gli sviluppi al variare del livello di produzione da 1 a 13 (il passo si riduce per rimanere nei margini…)

Al livello 19 la stringa è lunga 6765 caratteri e l’immagine corrispondente è

import turtle
#-----------------------------------------------
WIDTH  =600           # Dimensione finestra
HEIGHT =800           # ...
LIVELLI=19            # Numero livelli
#-----------------------------------------------
W      = -WIDTH*0.45  # Posizione iniziale
H      = -HEIGHT*0.45 # ...
DIR    = 90           # Direzione iniziale
ANGOLO = 90           # Angolo a sinistra
#---------------------  Passo della tartaruga
SIZE   = 3
#-----------------------------------------------
R     =['0']
REGOLE={'0':'01','1':'0'}
#-----------------------------------------------
def trasforma(R):
    R2=''
    for x in R:
        R2 += REGOLE[x]
    return R2
#-----------------------------------------------
def prepara():
    turtle.setup(width=WIDTH, height=HEIGHT)
    turtle.title("Livello="+str(LIVELLI)+" PASSO="+str(SIZE))
    turtle.bgcolor('pink')
    turtle.pencolor("red")
    turtle.pensize(2)
    turtle.penup()
    turtle.shape('turtle')
    turtle.speed(0)
    turtle.setposition(W,H)
    turtle.setheading(DIR)
    turtle.pendown()
    turtle.hideturtle()
    #turtle.tracer(0)     # Per non aspettare...
#-----------------------------------------------
def disegna(R):
    EVEN=False
    for x in R:
        turtle.forward(SIZE)        
        if(x == '0'):
            if(EVEN):
                turtle.left(ANGOLO)
            else:
                turtle.right(ANGOLO)
        EVEN = ~EVEN
#-----------------------------------------------
for j in range(LIVELLI-1):
    R=trasforma(R)

print(len(R), '\t', str().join(R), '\n')
prepara()
disegna(R)
# turtle.update()

Lascia un commento