Python使用递归绘制谢尔宾斯基三角形
谢尔宾斯基三角形使用了三路递归算法,从一个大三角形开始,通过连接每一个边的中点,将大三角型分为四个三角形,然后忽略中间的三角形,依次对其余三个三角形执行上述操作。 运行效果: 源代码: 1 import turtle 2 3 4 def draw_triangle(points, color, my_angle): 5 my_angle.fillcolor(color) 6 my_angle.up() 7 my_angle.goto(points[0][0], points[0][1]) 8 my_angle.down() 9 my_angle.begin_fill() 10 my_angle.goto(points[1][0], points[1][1]) 11 my_angle.goto(points[2][0], points[2][1]) 12 my_angle.goto(points[0][0], points[0][1]) 13 my_angle.end_fill() 14 15 16 def get_mid(p1, p2): 17 return ((p1[0]+p2[0])/2, (p1[1]+p2[1])/2) 18 19 20 def sierpinski(points, degree, my_angle): 21 colormap = ['blue', 'red