Рисование кривой Драконов в Python - PullRequest
0 голосов
/ 19 апреля 2009

Я пытаюсь понять, как нарисовать кривую драконов, используя питоновую черепаху, используя систему L-System или систему Lindenmayer. Я не код, это что-то вроде

Кривая Дракона; начальное состояние = «F», правило замены - замените «F» на «F + F-F», количество замен = 8, длина = 5, угол = 60

Но понятия не имею, как поместить это в код.

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Нарисуйте кривую дракона, используя модуль 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]()
3 голосов
/ 19 апреля 2009

Первое попадание в Google для "Python кривой дракона":

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

Вероятно, вы можете изменить это для работы с выбранной программой печати. Я бы попробовал matplotlib.

0 голосов
/ 20 апреля 2009

Ну, предположительно, вы могли бы начать с определения:

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

Затем вы можете сгенерировать вашу последовательность как:

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

Я не знаком с turtle, поэтому не могу вам помочь.

...