分形树问题

  1 import turtle
  2 
  3 def draw_branch(branch_length):
  4     if branch_length>5:
  5         turtle.forward(branch_length)
  6         turtle.right(20)
  7         draw_branch(branch_length-15)
  8
  9         turtle.left(40)
 10         draw_branch(branch_length-15)
 11 
 12         turtle.right(20)
 13         turtle.backward(branch_length)
 14 
 15 def main():
 16     turtle.left(90)
 17     draw_branch(30)
 18     turtle.exitonclick()
 19 
 20 
 21 if __name__=='__main__':
 22     main()
第7行,画完最右侧树枝末端之后,画笔处于最末端,并没有回退到上一节点,那么当他执行第8行左转40度的时候,为什么可以直接从上一节点往左画?不是很理解

Robin_TY - PhD@CSU,研究方向:计算机视觉,模式识别

赞同来自: 小安也叫老蔫

注意当程序运行到第7行时,会使用新的参数值branch_length-15继续调用draw_branch()函数,然后一层层深入调用。直到branch_length<=5时,退出函数,也是依次退出的。   所以这里不是只调用一次draw_branch()函数,而是层层调用。   可以将初始的branch_length设置的小些,比如45,然后通过debug模式一步步运行程序,观察函数的调用过程。

小象老师

赞同来自:

请问是那个课的问题?

蹿房越脊

赞同来自:

同问!同问!

要回复问题请先登录注册