如何解决Python-Turtle 绘制具有 3 个树干的递归树
我有一个问题,我必须用 3 个树干制作一棵树,但我制作的唯一一棵树只有 2 个树干。示例如下:
import turtle
import math
t = turtle.Turtle()
t.shape("turtle")
t.lt(90)
lv = 11
l = 100
s = 17
t.penup()
t.bk(l)
t.pendown()
t.fd(l)
def draw_tree(l,level):
l = 3.0/4.0*l
t.lt(s)
t.fd(l)
level +=1
if level<lv:
draw_tree(l,level)
t.bk(l)
t.rt(2*s)
t.fd(l)
if level<=lv:
draw_tree(l,level)
t.bk(l)
t.lt(s)
level -=1
t.speed(10)
draw_tree(l,2)
有人可以帮忙吗?
解决方法
该解决方案似乎与您已有的解决方案略有不同。与其只做左侧然后右侧,不如做左、中、右。然后调整您的角度、长度和递归级别,直到获得令人满意的结果:
from turtle import Screen,Turtle
LEVELS = 8 # recursion depth limit
MAX_LIMB_LENGTH = 120 # pixels
LIMB_ANGLE = 34 # degrees
def draw_tree(length,level):
if level > LEVELS:
return
turtle.left(LIMB_ANGLE)
turtle.forward(length)
draw_tree(3/4 * length,level + 1)
turtle.backward(length)
turtle.right(LIMB_ANGLE)
turtle.forward(length)
draw_tree(3/4 * length,level + 1)
turtle.backward(length)
turtle.left(LIMB_ANGLE)
screen = Screen()
screen.tracer(False)
turtle = Turtle()
turtle.setheading(90)
turtle.penup()
turtle.backward(2 * MAX_LIMB_LENGTH)
turtle.pendown()
turtle.forward(MAX_LIMB_LENGTH)
draw_tree(MAX_LIMB_LENGTH,1)
turtle.hideturtle()
screen.tracer(True)
screen.exitonclick()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。