knot.py 778 B

1234567891011121314151617181920212223242526272829303132333435
  1. class K(object):
  2. def __init__(self, s="FLFRFLFRFLFRFLFRFLFRFLF", i=1):
  3. self.kf = s
  4. self.i = i
  5. def __xor__(self, o):
  6. return K(self.kf.replace("F", "FLFRFLF"), self.i+1)
  7. def __nonzero__(self):
  8. import turtle
  9. k_ = turtle.Turtle()
  10. turtle.resetscreen()
  11. turtle.title("Iteration: %d" % self.i)
  12. k_.ht()
  13. turtle.setup(400, 400)
  14. k_.down()
  15. k_.speed('fastest')
  16. k_.penup()
  17. k_.goto(-150, 100)
  18. k_.pendown()
  19. for move in self.kf:
  20. if move == "F":
  21. k_.forward(100.0 / (3 ** (self.i - 1)))
  22. elif move == "L":
  23. k_.left(60)
  24. elif move == "R":
  25. k_.right(120)
  26. return 0
  27. k = K()