【发布时间】:2020-05-09 01:21:36
【问题描述】:
我正在尝试使用 L 系统生成一棵简单的树。但是,当我运行我拥有的代码时:
import turtle
def generate(length):
sentence = "F"
for j in range(1, length):
for i in sentence:
if i == "F":
sentence += "FF+[+F-F-F]-[-F+F+F]"
print(sentence)
gen = turtle.Turtle()
window = turtle.Screen()
gen.left(90)
for k in sentence:
if k == "F":
gen.forward(10)
elif k == "+":
gen.right(10)
elif k == "-":
gen.left(10)
elif k == "[":
location = gen.position()
elif k == "]":
gen.setposition(location)
我在海龟窗口中得到一个奇怪的纹理图案:
我怎样才能产生想要的结果?
【问题讨论】:
-
>>> generate(3), 3 是字符串的长度,也就是树的复杂度
-
好的,当我运行时,我看不到你的视觉效果。我在控制台上收到“F”垃圾邮件,然后窗口立即关闭。你能发布你用来生成你发布的图像的确切代码吗?我可以肯定地说,
sentence.replace没有做你认为它做的事情——它用第二个参数替换了 每一次出现 的第一个参数并且它没有做到这一点。除此之外,我不确定您要实现什么目标。 -
我在if i == "F"语句中犯了一个小错误,把sentence.replace(i, "FF+[+FFF]-[-F+F+F]")换成句子+= "FF+[+FFF]-[-F+F+F]"
-
我认为这也不是你想要的。请编辑您的帖子以提供这些更新。
-
好的,我编辑了它,我将如何改进我的代码以获得预期的结果?
标签: python turtle-graphics l-systems