🐉 Крива дракона — фрактал з послідовності поворотів Гейгевея

Побудуйте криву дракона Гейгевея з рекурсивної послідовності поворотів L/R і подивіться, як вона розгортається за допомогою черепашачої графіки. Змінюйте глибину ітерацій, анімуйте швидкість малювання та розфарбовуйте криву за глибиною.

Про цю симуляцію

Автор: Команда MySimulator · Редакційна перевірка: Редакція MySimulator

Оновлено: 11 липня 2026 р.

Цей інструмент будує криву дракона Гейгевея — самоподібний фрактал, утворений рекурсивно подвоєною послідовністю лівих і правих поворотів. Починаючи з порожньої послідовності поворотів, кожна ітерація подвоює її, додаючи R та обернену, з поміняними літерами копію попередньої послідовності. Потім черепашка проходить послідовність, повертаючи на кожному символі, і креслить складену форму дракона по одному прямому сегменту за раз.

🔬 Що це показує

Послідовність поворотів будується за рекурентним співвідношенням seq(n) = seq(n−1) + R + reverse(complement(seq(n−1))), починаючи з порожнього рядка. Проходження сегмента сталої довжини з поворотом ліворуч чи праворуч відповідно до кожного символу креслить 2n прямих сегментів, з'єднаних у 2n−1 поворотах, утворюючи складену форму дракона.

🎮 Як користуватися

Перетягуйте повзунок ітерації, щоб наростити криву від одного сегмента до 217 сегментів, і використовуйте повзунок швидкості малювання, щоб сповільнити або пришвидшити появу нових сегментів. Увімкніть Розфарбування за глибиною, щоб забарвити кожен сегмент відповідно до його позиції на шляху, і натисніть Скинути / Відцентрувати, щоб підігнати криву під canvas.

💡 Чи знали ви?

Крива дракона отримала свою назву тому, що за помірних ітерацій вона нагадує згорнутого дракона, і це саме та форма, яку отримують, згинаючи смужку паперу навпіл однаково щоразу, а потім розгортаючи кожен згин під прямим кутом.

Поширені запитання

Що таке крива дракона?

Крива дракона (або дракон Гейгевея) — це самоподібний фрактал, який утворюється багаторазовим згинанням смужки паперу навпіл і розгортанням кожного згину під прямим кутом. Її також можна побудувати виключно з послідовності лівих і правих поворотів без жодного паперу, і вона належить до тієї самої родини кривих, що й крива Леві C та інші фрактали складання паперу.

Як генерується послідовність поворотів?

Вона будується подвоєнням: починаючи з порожньої послідовності, кожна нова ітерація формується взяттям попередньої послідовності, доданням R, а потім доданням оберненої попередньої послідовності з поміняними місцями L та R. Це рекурентне співвідношення, seq(n) = seq(n-1) + R + reverse(complement(seq(n-1))), утворює рядок довжиною 2^n - 1, що описує кожен поворот уздовж шляху.

Чому крива дракона не перетинає сама себе?

Хоча крива багато разів згинається сама на себе, можна довести, що дракон Гейгевея ніколи не має самоперетинів. Сусідні сегменти завжди зустрічаються лише у спільній кінцевій точці, тому межа виглядає зазубреною й такою, що заповнює простір, але сам шлях залишається простою кривою без перетинів.

Яка фрактальна розмірність кривої дракона?

Крива дракона має фрактальну (гаусдорфову) розмірність рівно 2, хоча є одновимірною кривою, вкладеною в площину. Це відображає те, наскільки щільно шлях згинається сам на себе: за високих ітерацій він майже покриває всю площину, тому копії кривої дракона можуть точно замостити площину.

Чому вища ітерація малюється довше?

Кожна додаткова ітерація подвоює кількість сегментів, тож кількість прямолінійних відрізків для малювання зростає як 2^n. За n = 17 це 131 072 сегменти, тож анімації природно потрібно більше кадрів для намалювання за високих значень ітерації, хоча кожен окремий сегмент обчислюється миттєво.