我有一个问题,我必须用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)有人能帮帮忙吗?
发布于 2021-03-30 05:16:19
这个解决方案看起来只是你已经拥有的东西的一个细微的变化。不是只做左边然后做右边,而是做左边,中间和右边。然后调整你的角度,长度和递归级别,直到你得到一个满意的结果:
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.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()

https://stackoverflow.com/questions/66829782
复制相似问题