使用递归的方法绘制二叉树def draw_smalltreetree_ length tree_angle tree_wide树千初始值为802每次绘制完树枝后画笔右转302绘制下一段树技时长厦减少10。重身-3操作直到终止4 终止条件:树干长度小于5此时为顶端树枝5、达到终止条件后画笔左转60度以当前长度减少10绘制树枝6、石转30度回到原方向退回上一节点直到操作完
整个树形结构
import turtle
def draw_smalltree(tree_length, tree_angle, tree_wide): if tree_length < 5: return
turtle.forward(tree_length) # 绘制树干
turtle.right(tree_angle) # 右转30度
draw_smalltree(tree_length - 10, tree_angle, tree_wide) # 递归绘制下一段树枝
turtle.left(60) # 左转60度
draw_smalltree(tree_length - 10, tree_angle, tree_wide) # 递归绘制下一段树枝
turtle.right(30) # 右转30度
turtle.backward(tree_length) # 回到上一节点
turtle.speed(0) # 设置画笔速度为最快 turtle.left(90) # 左转90度,使得树干朝上 turtle.penup() # 抬起画笔,不绘制直线 turtle.goto(0, -200) # 移动画笔到屏幕中心下方 turtle.pendown() # 落下画笔,开始绘制树形结构
draw_smalltree(80, 30, 10)
turtle.done() # 完成绘制,保持窗口不关
原文地址: https://www.cveoy.top/t/topic/cHEA 著作权归作者所有。请勿转载和采集!