【发布时间】:2017-06-14 00:39:53
【问题描述】:
我的目标是用 python 乌龟画一棵二叉树,每条线分成 2 条,每条分支分成另外两条,依此类推,从左到右,看起来像 , 除了从左到右水平。这是我到目前为止所拥有的,它可以工作,但是如果你运行它,你很快就会意识到它在很多方面都搞砸了。
def tree(d,x1,y1):
#d is the depth
if d==0: #base case
return 0
a = t.Turtle()
b = t.Turtle()
t.penup()
a.goto(x1,y1)
b.goto(x1,y1) # move to the correct position
t.pendown()
a.left(30)
b.right(30)
a.forward(50)
b.forward(50)
ax,ay = a.pos() #get position of new turtles
bx,by = b.pos()
input() # Debug ( PRESS ENTER FOR EACH LOOP)
tree(d-1,ax,ay) #recurse top branch
tree(d-1,bx,by) #recurse bottom branch
tree(3,0,0)
谁能告诉我出了什么问题以及如何解决?我知道角度需要改变,但我不知道该怎么做。
【问题讨论】:
-
“从左到右水平”是什么意思?您的意思是要生成图形但向左旋转 90 度?如果是这样,您为什么不使用图形编辑器向我们展示旋转图,以便我们看到您想要的?如果您没有这样的编辑器,您希望我们为您做吗?
-
这里!我尽了最大的努力用油漆,它看起来很糟糕,但我认为你应该明白这个想法!here
标签: python recursion binary-tree turtle-graphics