1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 谢尔宾斯基三角形:Python+turtle

谢尔宾斯基三角形:Python+turtle

时间:2022-04-04 17:45:05

相关推荐

谢尔宾斯基三角形:Python+turtle

本来觉得谢尔宾斯基三角形挺难的。分析以后,其实还是挺简单的。

挺好理解,供大家一起学习

"""功能:绘制谢尔宾斯基三角形环境:python3.7日期:/1/14 21:49作者:指尖魔法师版本:1.0"""import turtle as tdef sanjiaoxing(san):"""传入三个点坐标,绘制三角形"""t.penup()t.goto(san[0])t.pendown()t.goto(san[1])t.goto(san[2])t.goto(san[0])def get_mid(a, b):"""计算返回2个点的中间点坐标"""x = (a[0] + b[0]) / 2y = (a[1] + b[1]) / 2return [x, y]def draw_san(size, i):"""绘制谢尔宾斯基三角形函数:param size: 三个点坐标列表:param i: 递归次数"""# 绘制三角形sanjiaoxing(size)if i > 0:# 绘制左边小三角形size2 = [size[0], get_mid(size[0], size[1]), get_mid(size[0], size[2])]draw_san(size2, i - 1)# 绘制上边的小三角形size3 = [get_mid(size[0], size[2]), get_mid(size[1], size[2]), size[2]]draw_san(size3, i - 1)# 绘制右边的小三角形size4 = [get_mid(size[0], size[1]), size[1], get_mid(size[1], size[2])]draw_san(size4, i - 1)def main():"""主函数"""# 打印图形标题t.penup()t.left(90)t.forward(350)t.pendown()t.write("谢尔宾斯基三角形", False, align="center", font=("宋体", 20, "normal"))t.speed(5)# 初始三角形坐标points = [[-200, 0], [200, 0], [0, 300]]# 递归5次count = 5# 调用绘制谢尔宾斯基三角形函数draw_san(points, count)t.exitonclick()if __name__ == '__main__':main()

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。