La curva a C con angoli di 60° e due punte.
Ricorsione da 1 a 6

Ricorsione=7

Codice
import time # sleep() import turtle #------------------------------------------------ def set_all(): global POSIZIONE, DISTANZA, DISTANZE, \ RIC_MAX, POS_X, POS_Y WIDTH = 800 # larghezza finestra HEIGHT = 400 # altezza finestra RIC_MAX = 7 # massima ricorsione POS_X = -WIDTH*0.3 # posizione iniziale POS_Y = -HEIGHT*0.3 # posizione iniziale DISTANZA = WIDTH*0.6 # dimensione iniziale della curva DISTANZE = [0]*(RIC_MAX+1) # dimensioni successive turtle.setup(width=WIDTH, height=HEIGHT) turtle.hideturtle() turtle.pensize(2) turtle.pencolor("red")
turtle.pensize(2) turtle.bgcolor("pink") turtle.tracer(0) #------------------------------------------------ def start_draw(r): DISTANZE[r] = DISTANZA for i in range(r-1,0,-1): DISTANZE[i]=DISTANZE[i+1]/2 turtle.penup() turtle.setposition(POS_X, POS_Y) turtle.setheading(0) turtle.pendown() turtle.clear() turtle.title("Livello="+str(r)) def end_draw(): turtle.update() time.sleep(2) #------------------------------------------------ def c(n): if(n == 1): turtle.forward(DISTANZE[n]) else: turtle.left(60) ; c(n-1); turtle.right(120); c(n-1); turtle.left(120) ; c(n-1); turtle.right(120); c(n-1); turtle.left(60) ; #------------------------------------------------ MAIN set_all() for r in range(1,RIC_MAX+1): start_draw(r) c(r) end_draw() turtle.done()
Osserva
- il risultato si infittisce più velocemente della curva di Lévy perché ci sono 2 punte invece di una…
- disegna le figure successive con pause di 2 secondi
- le distanze da percorrere sono calcolate in anticipo