-1

我正在尝试使用 An L-System 或 Lindenmayer 系统绘制巨龙曲线。我没有代码是这样的

龙曲线;初始状态 = 'F',替换规则 - 将 'F' 替换为 'F+F-F',替换次数 = 8,长度 = 5,角度 = 60

但是不知道如何将其放入代码中。

4

3 回答 3

3

首先在 Google 上搜索“dragons curve python”:

http://www.pynokio.org/dragon.py.htm

您可能可以修改它以使用您选择的绘图程序。我会尝试matplotlib。

于 2009-04-19T08:30:21.450 回答
3

使用模块绘制龙曲线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]()
于 2009-06-29T15:46:15.033 回答
0

好吧,大概,您可以从定义开始:

def replace(s):
    return s.replace('F', 'F+F-F')

然后你可以生成你的序列:

code = 'F'
for i in range(8):
    code = replace(code)

我不熟悉,turtle所以我无法帮助你。

于 2009-04-19T22:56:20.853 回答