An L-SystemまたはLindenmayerシステムを使用してpythons turtleを使用して、ドラゴンの曲線を描く方法を考え出そうとしています。コードは次のようなものです
ドラゴン曲線; 初期状態 = 'F'、置換規則 – 'F' を 'F+F-F' に置換、置換数 = 8、長さ = 5、角度 = 60
しかし、それをコードに入れる方法がわかりません。
「dragons curve python」の Google での最初のヒット:
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
ないので、あなたを助けることができません。