递归应用之谢尔宾斯基三角形颜色增强
在上一篇文章中介绍了谢尔宾斯基三角形的解法,但是仅仅是黑白色的,不太容易观察,所以可以填充点颜色。比如在绘制三角形的时候填充。
def drawTriangle(points):
t.fillcolor('yellow')
t.penup()
t.goto(points['top'])
t.pendown()
t.begin_fill()
t.goto(points['left'])
t.goto(points['right'])
t.goto(points['top'])
t.end_fill()
当然,这种方式填充的颜色是一样的,无法区分每一阶。那么一种简单的方法就是在绘制这一阶时,先填充整个大三角形,这样就可以根据中间挖掉的三角形来判断是哪一阶了。也就是每次递归时先绘制大三角形(轮廓三角形)。这样,其实就不用else语句中绘制三角形了。全部代码如下:
def drawTriangle(points, color):
t.fillcolor(color)
t.penup()
t.goto(points['top'])
t.pendown()
t.begin_fill()
t.goto(points['left'])
t.goto(points['right'])
t.goto(points['top'])
t.end_fill()
def getMid(p1, p2):
return ((p1[0] + p2[0]) / 2, (p1[1] + p2[1]) / 2)
def bigTriangles(degre