🐉 Крива дракона
Про цю симуляцію
Крива дракона Гейгевея — один з найвідоміших фракталів складання паперу: якщо багаторазово згинати смужку паперу навпіл, завжди в одному напрямку, а потім розгорнути кожен згин під прямим кутом, контур утворить саме цю криву. Її досліджували фізики NASA у 1960-х роках, а пізніше популяризував Мартін Гарднер; вона належить до ширшої родини самоподібних фракталів на основі послідовностей поворотів, які використовують для вивчення кривих, що заповнюють простір, та мозаїчних покриттів.
Як це працює
- Послідовність поворотів з L та R генерується рекурентним подвоєнням, починаючи з порожньої послідовності.
- Черепашка робить крок фіксованої довжини вперед, потім повертає ліворуч (−90°) або праворуч (+90°) відповідно до наступного символу в послідовності, а потім знову йде вперед.
- Повторення цього для всіх 2n сегментів утворює складену форму дракона.
- Оскільки рекурентне співвідношення подвоює послідовність на кожній ітерації, крива стає експоненційно детальнішою з кожним кроком n.
Ключові рівняння
seq(0) = "" (порожня)
seq(n) = seq(n-1) + R + reverse(complement(seq(n-1))) — complement (доповнення) змінює кожен L на R і кожен R на L; reverse (обернення) змінює порядок символів на зворотний. Отримана послідовність має довжину 2n−1 і описує поворот перед кожним із 2n одиничних сегментів.
Керування
- Ітерація n — задає, скільки разів подвоюється послідовність поворотів: від одного сегмента (n=0) до 217 сегментів (n=17).
- Швидкість малювання — визначає, скільки сегментів проявляється за кадр анімації під час поступового малювання.
- Розфарбування за глибиною — забарвлює кожен сегмент відтінком, що поступово змінюється вздовж шляху, замість суцільного кольору.
- Скинути / Відцентрувати — перераховує криву та підганяє її під canvas, центруючи й масштабуючи так, щоб заповнити доступний простір.
Чи знали ви?
Оскільки рекурентне співвідношення послідовності поворотів лише додає символи й ніколи їх не видаляє, послідовність для ітерації n завжди починається з послідовності для ітерації n−1 — це і є математична ознака послідовності складання паперу.