我写了一个程序,用L系统来画分形。它似乎适用于Sierpinski三角形,但不适用于龙曲线。你知道吗
我知道网站上有一些关于使用海龟图形来创建龙曲线的问题,但是没有一个问题特别适用,所以我打开了我自己的问题。我的代码生成的字符串,如turtle指令所示,似乎是正确的。我相信问题在于海龟是如何解释这根弦的。为什么它应该适用于Sierpinski三角形,而不是龙曲线是令人费解的,并导致我认为我输入的规则是错误的,但我检查了多个来源,他们似乎是正确的。你知道吗
from tkinter import *
import turtle
Width=500
Height=500
def process_string(string):
return string.translate(str.maketrans({'X':'X+YF+','Y':'−FX−Y'}))
def createSystem(seed,depth):
string=seed
for i in range(depth):
string=process_string(string)
print(string)
return(string)
def draw(string):
t = turtle.RawTurtle(canvas)
t.penup()
t.goto(-0.25*Width,0.25*Height)
t.pendown()
t.shape("circle")
t.speed("fastest")
for char in string:
if char=="F":
t.forward(5)
elif char=="+":
t.right(90)
elif char=="-":
t.left(90)
root=Tk()
canvas=Canvas(width=Width, height=Height)
canvas.pack()
draw(createSystem("FX",10))
print("COMPLETE")
root.mainloop()
我希望看到dragon curve,但是程序只是产生一条由线和框组成的曲线。你知道吗
在此行中:
左转时使用的是Unicode字符“—”。但在这一行:
左转时使用的是基本的ASCII连字符/减号。得到这些同意的连字符/减号,你应该释放你的龙!你知道吗
尽管您的嵌入式海龟周围有一个tkinter包装器,但也可以使用独立海龟:
我假设您将使用tkinter向程序中添加一些控件。你知道吗
相关问题 更多 >
编程相关推荐