Треугольник Серпиньского


from Tkinter import *
from math import *
 
SIZE_X=600
SIZE_Y=500

def triangle(c, x1,y1, x2,y2, x3,y3, level):
    if level>0:
        c.create_line(x1,y1,x2,y2,fill="green")
        c.create_line(x2,y2,x3,y3,fill="green")
        c.create_line(x3,y3,x1,y1,fill="green")
        nx1 = x1+(x2-x1)/2
        ny1 = y1+(y2-y1)/2
        nx2 = x2+(x3-x2)/2
        ny2 = y2+(y3-y2)/2
        nx3 = x3+(x1-x3)/2
        ny3 = y3+(y1-y3)/2
        triangle(c,x1,y1,nx1,ny1,nx3,ny3,level-1)
        triangle(c,x2,y2,nx2,ny2,nx1,ny1,level-1)
        triangle(c,x3,y3,nx3,ny3,nx2,ny2,level-1)
        
root = Tk()
root.title("Triangle")
c = Canvas(root,width=SIZE_X,height=SIZE_Y,bg="black")
c.pack()
c.create_rectangle(1,1,SIZE_X,SIZE_Y,outline="blue")
triangle(c, SIZE_X/2, 10, 10, SIZE_Y-10, SIZE_X-10, SIZE_Y-10, 7)
root.mainloop()