import turtle
def draw_branch(branch_length):
if branch_length > 5: #限定绘制的树枝(包括树干、树枝和树叶)长度至少大于5
if(branch_length<=20): #如果长度小于20,即可判定是树叶,绘制成绿色
turtle.color('green')
else:
turtle.color('brown')
turtle.forward(branch_length) #绘制树干
turtle.right(20)
draw_branch(branch_length-15) #绘制每个节点分叉右侧的树枝
turtle.left(40)
draw_branch(branch_length - 15) #绘制每个节点分叉左侧的树枝
if (branch_length > 20): #如果长度大于20,即可判定是树干或者树枝,绘制成棕色
turtle.color('brown')
turtle.right(20)
turtle.backward(branch_length) #左右侧树枝绘制好,返回节点处
def main():
turtle.left(90)
turtle.penup()
turtle.backward(150)
turtle.pendown()
turtle.color('brown')
draw_branch(80) #树枝(其实是树干)初始长度为80
#设定后面的树枝随着树的增长长度依次减15
turtle.exitonclick()
if __name__=='__main__':
main()
最后的效果图如下:
注:如果代码中的递归部分理解起来有点困难,最好是运行一下,根据绘图的过程理解会比较容易。