dragon.py

Created by jeclarim

Created on April 19, 2018

669 Bytes

fractal dragon curve


from kandinsky import *

def dragon(n=8, dx=5, dy=0, x=160, y=120, a=90, c=color(0, 0, 255)):
  if n == 0:
    if dx == 0:
      if dy > 0:
        y1, y2 = y, y+dy+1
      else:
        y1, y2 = y+dy, y+1
      for y0 in range(y1, y2):
        set_pixel(x, y0, c)
    else:
      if dx > 0:
        x1, x2 = x, x+dx+1
      else:
        x1, x2 = x+dx, x+1
      for x0 in range(x1, x2):
        set_pixel(x0, y, c)
    return x+dx, y+dy, dx, dy
  else:
    x, y, dx, dy = dragon(n-1, dx, dy, x, y, 90, c)
    if a == 90:
      dx, dy = -dy, dx
    else:
      dx, dy = dy, -dx
    x, y, dx, dy = dragon(n-1, dx, dy, x, y, -90, c)
    return x, y, dx, dy