Меню

Главная
Случайная статья
Настройки
Кривая дракона
Материал из https://ru.wikipedia.org

Кривая дракона — общее название для некоторых фрактальных кривых, которые могут быть аппроксимированы рекурсивными методами, такими как L-системы.

Дракон Хартера — Хейтуэя

Дракон Хартера, также известный как дракон Хартера — Хейтуэя.

Он был описан в 1967 году Мартином Гарднером в колонке «Математические игры» журнала «Scientific American». Многие из свойств фрактала были описаны Чендлером Дэвисом (Chandler Davis) и Дональдом Кнутом.

Фрактал может быть записан как L-система с параметрами:
  • угол равен 90° или pi/2
  • начальная строка — FX
  • правила преобразования строк:
    • X X+YF+
    • Y -FX-Y


Кроме того, фрактал может быть описан системой итерируемых функций на комплексной плоскости:
.


Берём отрезок, сгибаем его пополам, растягиваем сложенное до исходной длины. Затем многократно повторяем итерацию. Если после этого снова разогнуть получившуюся (сложенную) линию так, чтобы все углы были равны 90°, мы получим драконову ломаную.

Примеры
 
import turtle

turtle.hideturtle()
turtle.tracer(0)
turtle.penup()
turtle.setpos(-100, -150)
turtle.pendown()

axiom, tempAx, logic, count = 'FX', '', {'X': 'X+YF+', 'Y': 'FXY'}, 15

for i in range(count):
    for j in axiom:
        tempAx += logic[j] if j in logic else j
    axiom, tempAx = tempAx, ''

for k in axiom:
    if k == 'F':
        turtle.forward(2.5)
    elif k == '+':
        turtle.right(90)
    elif k == '':
        turtle.left(90)

turtle.update()
turtle.mainloop()


Ссылки
Downgrade Counter