我正在尝试使用 python 海龟图形和递归来实现 L-System 生成的希尔伯特曲线。我的代码似乎适用于递归 n=1 和 n=2 的前两个级别,但除此之外,图形只是纠缠在一起(尽管我能够观察其中的更多模块),我似乎无法掌握这里可能有什么问题,我是否需要一些中间步骤来重新生成希尔伯特模块以进行更深层次的递归?请看我下面的代码,它比较简单:
import turtle
def Hilbert_curve(A,rule,t,n):
if n>=1:
if rule:
t.left(90)
Hilbert_curve(A,not rule,t, n-1)
t.forward(A)
t.right(90)
Hilbert_curve(A, rule,t, n-1)
t.forward(A)
Hilbert_curve(A,rule,t, n-1)
t.right(90)
t.forward(A)
Hilbert_curve(A,not rule,t, n-1)
t.left(90)
else:
t.right(90)
Hilbert_curve(A,rule,t, n-1)
t.forward(A)
t.left(90)
Hilbert_curve(A,not rule,t, n-1)
t.forward(A)
Hilbert_curve(A,not rule,t, n-1)
t.left(90)
t.forward(A)
Hilbert_curve(A, rule,t, n-1)
t.right(90)
def main():
A=10
t=turtle.Turtle()
my_win=turtle.Screen()
n=2
rule=True
Hilbert_curve(A,rule,t,n)
my_win.exitonclick()
main()