import turtle
t = turtle.Turtle()
t.left(90)
mywin = t.getscreen()
t.speed(0)
def drawtriangle(points,color,t):
t.fillcolor(color)
t.up()
t.goto(points[0])
t.down()
t.begin_fill()
t.goto(points[1])
t.goto(points[2])
t.goto(points[0])
t.end_fill()
def getmid(p1,p2):
return ((p1[0]+p2[0])/2,(p1[1]+p2[1])/2)
def sierpinski(points,degree,t):
colormap = ['blue','red','green','yellow','violet','white','orange']
drawtriangle(points,colormap[degree],t)
if degree>0:
sierpinski([points[0],getmid(points[0],points[1]),getmid(points[0],points[2])],degree-1,t)
sierpinski([points[1],getmid(points[0],points[1]),getmid(points[1],points[2])],degree-1,t)
sierpinski([points[2],getmid(points[2],points[1]),getmid(points[0],points[2])],degree-1,t)
mypoints = [(-400,-200),(0,400),(400,-200)]
sierpinski(mypoints,5,t)
mywin.exitonclick()
重点在把我三次递归思想;