Кривая драконаКривая дракона — общее название для некоторых фрактальных кривых, которые могут быть аппроксимированы рекурсивными методами, такими как L-системы. Дракон Хартера — ХейтуэяДракон Хартера, также известный как дракон Хартера — Хейтуэя. Он был описан в 1967 году Мартином Гарднером в колонке «Математические игры» журнала «Scientific American». Многие из свойств фрактала были описаны Чендлером Дэвисом (Chandler Davis) и Дональдом Кнутом. Фрактал может быть записан как L-система с параметрами:
Кроме того, фрактал может быть описан системой итерируемых функций на комплексной плоскости:
Берём отрезок, сгибаем его пополам. Затем многократно повторяем итерацию. Если после этого снова разогнуть получившуюся (сложенную) линию так, чтобы все углы были равны 90°, мы получим драконову ломаную. ПримерыПример алгоритма на Python с помощью системы Линденмайера
import turtle
turtle.hideturtle()
turtle.tracer(0)
turtle.penup()
turtle.setpos(-100, -150)
turtle.pendown()
axiom, tempAx, logic, count = 'FX', '', {'X': 'X+YF+', 'Y': '−FX−Y'}, 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()
Ссылки
|