我正在尝试使用 An L-System 或 Lindenmayer 系统绘制巨龙曲线。我没有代码是这样的
龙曲线;初始状态 = 'F',替换规则 - 将 'F' 替换为 'F+F-F',替换次数 = 8,长度 = 5,角度 = 60
但是不知道如何将其放入代码中。
首先在 Google 上搜索“dragons curve python”:
http://www.pynokio.org/dragon.py.htm
您可能可以修改它以使用您选择的绘图程序。我会尝试matplotlib。
使用模块绘制龙曲线turtle
(@John Fouhy建议):
#!/usr/bin/env python
import turtle
from functools import partial
nreplacements = 8
angle = 60
step = 5
# generate command
cmd = 'f'
for _ in range(nreplacements):
cmd = cmd.replace('f', 'f+f-f')
# draw
t = turtle.Turtle()
i2c = {'f': partial(t.forward, step),
'+': partial(t.left, angle),
'-': partial(t.right, angle),
}
for c in cmd: i2c[c]()
好吧,大概,您可以从定义开始:
def replace(s):
return s.replace('F', 'F+F-F')
然后你可以生成你的序列:
code = 'F'
for i in range(8):
code = replace(code)
我不熟悉,turtle
所以我无法帮助你。