fibcurve.py

Created by jeclarim

Created on April 21, 2018

714 Bytes

fractal Fibonacci curve


from kandinsky import *

def fibword(n):
  if n == 0:
    return "0"
  elif n == 1:
    return "1"
  else:
    return fibword(n-1)+fibword(n-2)

def fibcurve(n=9, dx=5, dy=0, x=100, y=100, c=color(255, 0, 0)):
  word = fibword(n)
  for k in range(len(word)):
    if word[k] == "1":
      if k % 2:
        dx, dy = -dy, dx
      else:
        dx, dy = dy, -dx
    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)
      y += dy
    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)
      x += dx