gpt4 book ai didi

python - 如何在 turtle graphics 中使用 l 系统制作分形植物?

转载 作者:行者123 更新时间:2023-11-28 21:22:27 24 4
gpt4 key购买 nike

我正在尝试制作 this fractal plant (示例 7)来自维基百科。然而,即使我使用相同的规则,我最终得到的东西看起来更像一棵树。这是代码:

def fraktal_plante(padde, depth):
Xmerke(padde, depth-1) # X

def Xmerke(padde, depth):
if depth > 0:
padde.forward(12)
padde.right(25)
pos1 = padde.position()
head1 = padde.heading()
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos1)
padde.setheading(head1)
padde.down()
padde.left(25)
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos1)
padde.setheading(head1)
padde.down()
padde.left(25)
padde.forward(12)
pos2 = padde.position()
head2 = padde.heading()
padde.left(25)
padde.forward(12)
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos2)
padde.setheading(head2)
padde.down()
padde.right(25)
Xmerke(padde, depth-1)

def Fmerke (padde, depth):
if depth > 0:
padde.forward(12)
padde.forward(12)

你能帮帮我吗?我是 python 的新手,所以请用简单的方式解释一下!

最佳答案

我认为你有树的原因是你的 .forward() 步骤太大了。尝试使用 paddle.forward(1) 而不是 12

关于它的值(value),这是我从维基百科描述中写的:

import turtle
import sys

def generate(n, result='[X]'):
for _ in range(n):
# rule #2
result = result.replace('F', 'FF')
# rule #1
result = result.replace('X', 'F-[[X]+X]+F[+FX]-X')

return result

def draw(cmds, size=2):
stack = []
for cmd in cmds:
if cmd=='F':
turtle.forward(size)
elif cmd=='-':
turtle.left(25)
elif cmd=='+':
turtle.right(25)
elif cmd=='X':
pass
elif cmd=='[':
stack.append((turtle.position(), turtle.heading()))
elif cmd==']':
position, heading = stack.pop()
turtle.penup()
turtle.setposition(position)
turtle.setheading(heading)
turtle.pendown()
else:
raise ValueError('Unknown Cmd: {}'.format(ord(cmd)))
turtle.update()

def setup():
turtle.hideturtle()
turtle.tracer(1e3,0)
turtle.left(90)
turtle.penup()
turtle.goto(0,-turtle.window_height()/2)
turtle.pendown()

setup()
plant = generate(6)
draw(plant, 2)
turtle.exitonclick()

关于python - 如何在 turtle graphics 中使用 l 系统制作分形植物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19159963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com