在Python中绘制一条龙曲线

时间:2009-04-19 08:06:50

标签: python fractals

我正在尝试使用An L-System或Lindenmayer系统研究如何使用蟒蛇龟绘制龙的曲线。我没有代码就像

龙曲线;初始状态='F',替换规则 - 用'F + F-F'替换'F',替换次数= 8,长度= 5,角度= 6​​0

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

3 个答案:

答案 0 :(得分:3)

首次在谷歌上搜索“龙曲线蟒蛇”:

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

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

答案 1 :(得分: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]()

答案 2 :(得分:0)

嗯,大概,你可以从定义开始:

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

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

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

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