Фрактал Дракон Хартера-Хейтуэя (Кривая Дракона)

Кривая была придумана физиком Джон Хейтуэй, а теорию разработали Вильям Хартер, Хейтуэй и Брюс Бенкс.
Фрактал может быть записан как 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°, мы получим драконову ломаную.

    Разработка алгоритма ручного построения кривых дракона на клетчатом листе бумаги

    Пусть буквой Н – обозначили вогнутый сгиб, а буквой В – выпуклый сгиб.
    Покажем на примере алгоритм построения дракона по коду
    Н Н В Н Н В В Н Н Н В В Н В В:

  1. необходимо на листе клетчатой бумаги провести вертикальную черточку (первая) по стороне одной клетки,
  2. поставить точку слева от черточки, обозначив тем самым внутреннюю сторону линии,
  3. от верхнего конца черточки налево провести вторую черточку налево (также по стороне клетки), образуя вогнутый изгиб линии по отношению к внутренней стороне линии: первая буква Н в предложенном коде,
  4. от конца второй черточки провести вниз третью черточку (по стороне клетки), образуя вогнутый изгиб линии по отношению к внутренней стороне линии: вторая буква Н в предложенном коде,
  5. от конца третьей черточки налево провести четвертую черточку (далее везде черточки чертим по стороне клеток), образуя выпуклый изгиб линии по отношению к внутренней стороне линии (далее везде образуем изгибы по отношению к внутренней стороне линии): третья буква В в предложенном выше коде,
  6. от конца четвертой черточки провести вниз пятую черточку, образуя вогнутый изгиб: четвертая буква Н в коде,
  7. от конца пятой черточки провести направо шестую черточку, образуя вогнутый изгиб: пятая буква Н в коде,
  8. от конца шестой черточки провести вниз седьмую черточку (далее не будем считать номера черточек, подразумевая следующие номера), образуя выпуклый изгиб: шестая буква В в коде,
  9. от конца предыдущей черточки рисуем черточку налево (выпуклый изгиб – седьмая буква В), затем черточку вниз (вогнутый изгиб – восьмая буква Н), затем черточку направо (вогнутый изгиб – девятая буква Н), далее черточка вверх (вогнутый изгиб – десятая буква Н), затем черточку направо (выпуклый изгиб – В), черточка вниз (выпуклый изгиб – В), черточка направо (вогнутый изгиб – Н), черточку вниз (выпуклый изгиб – В), черточка налево (выпуклый изгиб – В)


Направление: