Фрактал Дракон Хартера-Хейтуэя (Кривая Дракона)
Кривая была придумана физиком Джон Хейтуэй, а теорию разработали Вильям Хартер, Хейтуэй и Брюс Бенкс.
Фрактал может быть записан как L-система с параметрами:
- угол равен 90°
- начальная строка — FX
- правила преобразования строк:
- $X \to X+YF+$
- $Y \to -FX-Y$
- Фрактал можно описывать по разному, например:
-
- системой итерируемых функций (на комплексной плоскости):
- $f_{1}(z)=\frac{(1+i)z}{2}$
- $f_{2}(z)=1-\frac{(1-i)z}{2}$
- Если говорить проще:
- возьмем отрезок и согнем его пополам. Затем многократно повторим это действие. Если после этого снова разогнуть получившуюся (сложенную) линию так, чтобы все углы были равны 90°, мы получим драконову ломаную.
Разработка алгоритма ручного построения кривых дракона на клетчатом листе бумаги
Пусть буквой Н – обозначили вогнутый сгиб, а буквой В – выпуклый сгиб.
Покажем на примере алгоритм построения дракона по коду
Н Н В Н Н В В Н Н Н В В Н В В:
- необходимо на листе клетчатой бумаги провести вертикальную черточку (первая) по стороне одной клетки,
- поставить точку слева от черточки, обозначив тем самым внутреннюю сторону линии,
- от верхнего конца черточки налево провести вторую черточку налево (также по стороне клетки), образуя вогнутый изгиб линии по отношению к внутренней стороне линии: первая буква Н в предложенном коде,
- от конца второй черточки провести вниз третью черточку (по стороне клетки), образуя вогнутый изгиб линии по отношению к внутренней стороне линии: вторая буква Н в предложенном коде,
- от конца третьей черточки налево провести четвертую черточку (далее везде черточки чертим по стороне клеток), образуя выпуклый изгиб линии по отношению к внутренней стороне линии (далее везде образуем изгибы по отношению к внутренней стороне линии): третья буква В в предложенном выше коде,
- от конца четвертой черточки провести вниз пятую черточку, образуя вогнутый изгиб: четвертая буква Н в коде,
- от конца пятой черточки провести направо шестую черточку, образуя вогнутый изгиб: пятая буква Н в коде,
- от конца шестой черточки провести вниз седьмую черточку (далее не будем считать номера черточек, подразумевая следующие номера), образуя выпуклый изгиб: шестая буква В в коде,
- от конца предыдущей черточки рисуем черточку налево (выпуклый изгиб – седьмая буква В), затем черточку вниз (вогнутый изгиб – восьмая буква Н), затем черточку направо (вогнутый изгиб – девятая буква Н), далее черточка вверх (вогнутый изгиб – десятая буква Н), затем черточку направо (выпуклый изгиб – В), черточка вниз (выпуклый изгиб – В), черточка направо (вогнутый изгиб – Н), черточку вниз (выпуклый изгиб – В), черточка налево (выпуклый изгиб – В)
Направление: