Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #hilbert attempt one chokes on 3+order
- import turtle
- myTurtle = turtle.Turtle()
- myTurtle.speed(3)
- def hilbert(myTurtle,order, counter = 0, instruction = "None"):
- linelen = 400
- shortlen = linelen / (2 ** (order+1))
- if counter == 0:
- myTurtle.penup()
- myTurtle.left(180)
- myTurtle.forward(linelen/2)
- myTurtle.left(90)
- myTurtle.forward(linelen/2)
- myTurtle.left(90)
- myTurtle.forward(shortlen)
- myTurtle.left(90)
- myTurtle.forward(shortlen)
- myTurtle.right(90)
- myTurtle.pendown()
- if counter == 4**(order-1):
- return
- for i in range (1,2^(order-2)):
- if i > 1:
- myTurtle.forward(shortlen*2)
- if instruction == "None":
- myTurtle.forward(shortlen*2)
- myTurtle.left(90)
- myTurtle.forward(shortlen*2)
- myTurtle.left(90)
- myTurtle.forward(shortlen*2)
- myTurtle.right(90)
- hilbert(myTurtle,order,counter+1, "one")
- elif instruction == "one":
- myTurtle.forward(shortlen * 2)
- myTurtle.forward(shortlen * 2)
- myTurtle.right(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.right(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.left(90)
- myTurtle.forward(shortlen*2)
- hilbert(myTurtle, order, counter + 1, "two")
- elif instruction == "two":
- myTurtle.left(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.right(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.right(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.forward(shortlen * 2)
- hilbert(myTurtle, order, counter + 1, "three")
- elif instruction == "three":
- myTurtle.right(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.left(90)
- myTurtle.forward(shortlen * 2)
- myTurtle.left(90)
- myTurtle.forward(shortlen * 2)
- hilbert(myTurtle, order, counter + 1, "None")
- def hgrid(order):
- linelen = 400
- myTurtle = turtle.Turtle()
- myTurtle.hideturtle()
- myTurtle.speed(0)
- shortD = linelen/(2**order)
- myTurtle.left(90)
- myTurtle.forward(linelen/2)
- myTurtle.left(90)
- myTurtle.forward(linelen/2)
- myTurtle.right(180)
- for i in range(2**(order-1)):
- myTurtle.forward(linelen)
- myTurtle.right(90)
- myTurtle.forward(shortD)
- myTurtle.right(90)
- myTurtle.forward(linelen)
- myTurtle.left(90)
- myTurtle.forward(shortD)
- myTurtle.left(90)
- for i in range(2**(order-1)):
- myTurtle.forward(shortD)
- myTurtle.left(90)
- myTurtle.forward(linelen)
- myTurtle.right(90)
- myTurtle.forward(shortD)
- myTurtle.right(90)
- myTurtle.forward(linelen)
- myTurtle.left(90)
- myTurtle.right(180)
- myTurtle.forward(linelen)
- myTurtle.right(90)
- myTurtle.forward(linelen)
- myTurtle.right(90)
- myTurtle.forward(linelen)
- myTurtle.right(90)
- myTurtle.forward(linelen)
- hgrid(2)
- hilbert(myTurtle,2)
Advertisement
Add Comment
Please, Sign In to add comment