bwukki

#hilbert attempt one chokes on 3+order

Oct 21st, 2018
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.19 KB | None | 0 0
  1. #hilbert attempt one chokes on 3+order
  2.  
  3. import turtle
  4.  
  5. myTurtle = turtle.Turtle()
  6. myTurtle.speed(3)
  7. def hilbert(myTurtle,order, counter = 0, instruction = "None"):
  8.     linelen = 400
  9.     shortlen = linelen / (2 ** (order+1))
  10.     if counter == 0:
  11.         myTurtle.penup()
  12.         myTurtle.left(180)
  13.         myTurtle.forward(linelen/2)
  14.         myTurtle.left(90)
  15.         myTurtle.forward(linelen/2)
  16.         myTurtle.left(90)
  17.         myTurtle.forward(shortlen)
  18.         myTurtle.left(90)
  19.         myTurtle.forward(shortlen)
  20.         myTurtle.right(90)
  21.         myTurtle.pendown()
  22.     if counter == 4**(order-1):
  23.         return
  24.     for i in range (1,2^(order-2)):
  25.         if i > 1:
  26.             myTurtle.forward(shortlen*2)
  27.         if instruction == "None":
  28.             myTurtle.forward(shortlen*2)
  29.             myTurtle.left(90)
  30.             myTurtle.forward(shortlen*2)
  31.             myTurtle.left(90)
  32.             myTurtle.forward(shortlen*2)
  33.             myTurtle.right(90)
  34.             hilbert(myTurtle,order,counter+1, "one")
  35.         elif instruction == "one":
  36.             myTurtle.forward(shortlen * 2)
  37.             myTurtle.forward(shortlen * 2)
  38.             myTurtle.right(90)
  39.             myTurtle.forward(shortlen * 2)
  40.             myTurtle.right(90)
  41.             myTurtle.forward(shortlen * 2)
  42.             myTurtle.left(90)
  43.             myTurtle.forward(shortlen*2)
  44.             hilbert(myTurtle, order, counter + 1, "two")
  45.         elif instruction == "two":
  46.             myTurtle.left(90)
  47.             myTurtle.forward(shortlen * 2)
  48.             myTurtle.right(90)
  49.             myTurtle.forward(shortlen * 2)
  50.             myTurtle.right(90)
  51.             myTurtle.forward(shortlen * 2)
  52.             myTurtle.forward(shortlen * 2)
  53.             hilbert(myTurtle, order, counter + 1, "three")
  54.         elif instruction == "three":
  55.             myTurtle.right(90)
  56.             myTurtle.forward(shortlen * 2)
  57.             myTurtle.left(90)
  58.             myTurtle.forward(shortlen * 2)
  59.             myTurtle.left(90)
  60.             myTurtle.forward(shortlen * 2)
  61.             hilbert(myTurtle, order, counter + 1, "None")
  62.  
  63.  
  64.  
  65.  
  66. def hgrid(order):
  67.     linelen = 400
  68.     myTurtle = turtle.Turtle()
  69.     myTurtle.hideturtle()
  70.     myTurtle.speed(0)
  71.     shortD = linelen/(2**order)
  72.     myTurtle.left(90)
  73.     myTurtle.forward(linelen/2)
  74.     myTurtle.left(90)
  75.     myTurtle.forward(linelen/2)
  76.     myTurtle.right(180)
  77.     for i in range(2**(order-1)):
  78.         myTurtle.forward(linelen)
  79.         myTurtle.right(90)
  80.         myTurtle.forward(shortD)
  81.         myTurtle.right(90)
  82.         myTurtle.forward(linelen)
  83.         myTurtle.left(90)
  84.         myTurtle.forward(shortD)
  85.         myTurtle.left(90)
  86.     for i in range(2**(order-1)):
  87.         myTurtle.forward(shortD)
  88.         myTurtle.left(90)
  89.         myTurtle.forward(linelen)
  90.         myTurtle.right(90)
  91.         myTurtle.forward(shortD)
  92.         myTurtle.right(90)
  93.         myTurtle.forward(linelen)
  94.         myTurtle.left(90)
  95.     myTurtle.right(180)
  96.     myTurtle.forward(linelen)
  97.     myTurtle.right(90)
  98.     myTurtle.forward(linelen)
  99.     myTurtle.right(90)
  100.     myTurtle.forward(linelen)
  101.     myTurtle.right(90)
  102.     myTurtle.forward(linelen)
  103.  
  104.  
  105.  
  106. hgrid(2)
  107. hilbert(myTurtle,2)
Advertisement
Add Comment
Please, Sign In to add comment