Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from Tkinter import *
- from functools import partial
- def onCanvasClick(event,canvas,i):
- if i>4:
- canvas.create_rectangle(0,0,729,729, outline='black', fill='black')
- canvas.bind('<ButtonPress>', partial(onCanvasClick,canvas=canvas,i=0))
- else:
- vicsek(0,0,729,729,canvas,i+1)
- canvas.bind('<ButtonPress>', partial(onCanvasClick,canvas=canvas,i=i+1))
- def vicsek(x1,y1,x2,y2,canvas,i):
- if i>0 :
- lx1=x1 + (x2-x1)/3
- lx2=x1 + 2*(x2-x1)/3
- ly1=y1 + (y2-y1)/3
- ly2=y1 + 2*(y2-y1)/3
- canvas.create_rectangle(x1,y1,lx1,ly1, outline='white', fill='white')
- canvas.create_rectangle(lx2,y1,x2,ly1, outline='white', fill='white')
- canvas.create_rectangle(x1,ly2,lx1,y2, outline='white', fill='white')
- canvas.create_rectangle(lx2,ly2,x2,y2, outline='white', fill='white')
- vicsek(lx1,y1,lx2,ly1,canvas,i-1)
- vicsek(x1,ly1,lx1,ly2,canvas,i-1)
- vicsek(lx1,ly1,lx2,ly2,canvas,i-1)
- vicsek(lx2,ly1,x2,ly2,canvas,i-1)
- vicsek(lx1,ly2,lx2,y2,canvas,i-1)
- window = Tk()
- window.title('Vicsek Fractal')
- canvas = Canvas(window, width=729, height=729,bg='black')
- canvas.pack()
- i=0
- vicsek(0,0,729,729,canvas,0)
- canvas.bind("<ButtonPress>", partial(onCanvasClick,canvas=canvas,i=i))
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement