document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. from Tkinter import *
  2. from functools import partial
  3.  
  4. def onCanvasClick(event,canvas,i):
  5.     if i>4:
  6.         canvas.create_rectangle(0,0,729,729, outline=\'black\', fill=\'black\')
  7.         canvas.bind(\'<ButtonPress>\', partial(onCanvasClick,canvas=canvas,i=0))
  8.     else:
  9.         vicsek(0,0,729,729,canvas,i+1)
  10.         canvas.bind(\'<ButtonPress>\', partial(onCanvasClick,canvas=canvas,i=i+1))
  11. def vicsek(x1,y1,x2,y2,canvas,i):
  12.     if i>0 :
  13.         lx1=x1 + (x2-x1)/3
  14.         lx2=x1 + 2*(x2-x1)/3
  15.         ly1=y1 + (y2-y1)/3
  16.         ly2=y1 + 2*(y2-y1)/3
  17.         canvas.create_rectangle(x1,y1,lx1,ly1, outline=\'white\', fill=\'white\')
  18.         canvas.create_rectangle(lx2,y1,x2,ly1, outline=\'white\', fill=\'white\')
  19.         canvas.create_rectangle(x1,ly2,lx1,y2, outline=\'white\', fill=\'white\')
  20.         canvas.create_rectangle(lx2,ly2,x2,y2, outline=\'white\', fill=\'white\')
  21.         vicsek(lx1,y1,lx2,ly1,canvas,i-1)
  22.         vicsek(x1,ly1,lx1,ly2,canvas,i-1)
  23.         vicsek(lx1,ly1,lx2,ly2,canvas,i-1)
  24.         vicsek(lx2,ly1,x2,ly2,canvas,i-1)
  25.         vicsek(lx1,ly2,lx2,y2,canvas,i-1)
  26.  
  27. window = Tk()
  28. window.title(\'Vicsek Fractal\')
  29. canvas = Canvas(window, width=729, height=729,bg=\'black\')
  30. canvas.pack()
  31. i=0
  32. vicsek(0,0,729,729,canvas,0)
  33. canvas.bind("<ButtonPress>", partial(onCanvasClick,canvas=canvas,i=i))
  34. window.mainloop()
');