💥 Руйнування Твердого Тіла — Удар Вороного

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

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

Клацніть будь-де по тілу, щоб вдарити по ньому ударником. Об'єкт розколюється вздовж меж клітинок Вороного — природного способу поділу простору на області найближчого зерна — і кожен уламок відлітає, несучи імпульс від точки удару. Ця техніка (попереднє руйнування за допомогою Вороного + динаміка твердого тіла) є галузевим стандартом для руйнування в реальному часі у відеоіграх і візуальних ефектах.

🇬🇧 English

Параметри

Форма та матеріал

Управління

Клікніть по тілу для удару

Стан

СтанЦіле
Осколків
КЕ всього
Час
Руйнування Вороного:
1. Згенерувати N зерен
2. Призначити кожен піксель найближчому зерну
3. Виділити полігони клітинок
4. При ударі: застосувати спрямований назовні імпульс ∝ 1/r²
5. Крок динаміки твердого тіла уламків

Фізика крихкого руйнування

Крихке руйнування відбувається, коли локальний коефіцієнт інтенсивності напружень K перевищує тріщиностійкість матеріалу KIc. Тріщини поширюються шляхами максимального розтягувального напруження, вивільняючи накопичену пружну енергію деформації. Критерій Гріффітса стверджує, що тріщина довжиною 2a росте, коли σ ≥ √(2Eγ / πa), де γ — поверхнева енергія. Попереднє руйнування за Вороного дає статистично ізотропні патерни тріщин, що імітують випадкові межі зерен мікроструктури в полікристалічних матеріалах.

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

Цей симулятор руйнує віртуальне тверде тіло за допомогою растрової теселяції Вороного: N точок-зерен розкидаються всередині обраної форми (прямокутник, коло чи шестикутник), після чого кожен піксель дрібної сітки призначається найближчому зерну, вирізаючи тіло на опуклі клітинні області. Граничні пікселі кожної клітинки перетворюються на полігональний уламок за допомогою алгоритму опуклої оболонки методом монотонного ланцюга. Клацання по цілому тілу спричиняє одиничний удар: кожен уламок отримує спрямований назовні імпульс imp = force / (0,002·d² + 1), де d — його відстань від точки удару, а також невелике випадкове обертання й легкий висхідний поштовх. Звільнені уламки потім падають під дією регульованої гравітації, доки не опустяться достатньо далеко нижче полотна, щоб бути видаленими.

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

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

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

Клацніть по цілому тілу, щоб зруйнувати його, або клацніть ще раз після руйнування, щоб скинути. Використовуйте повзунки Осколків N, Гравітація, Відновлення та Сила удару, щоб налаштувати параметри, а випадні списки Форма та Матеріал — щоб змінити контур і стиль тріщин, перш ніж натиснути «Нова геометрія», щоб перегенерувати зерна Вороного.

💡 Чи знали ви?

Математичну основу крихкого руйнування, використану в рівнянні бічної панелі — критерій Гріффітса, σ ≥ √(2Eγ/πa) — опублікував А. А. Гріффітс у 1921 році після випробувань скляних волокон, коли виявив, що тонші волокна непропорційно міцніші, оскільки містять менше мікроскопічних дефектів, з яких починаються тріщини.

Часті запитання

Як генерується патерн руйнування Вороного без бібліотеки мешів?

Симулятор розкидає N випадкових точок-зерен всередині обраного контуру, потім растеризує дрібну сітку (до 160×140 клітинок) і призначає кожну клітинку сітки найближчому зерну, використовуючи прості порівняння квадратів відстані. Клітинки сітки на межі між областями двох різних зерен збираються як граничні точки для цього зерна, а алгоритм опуклої оболонки методом монотонного ланцюга перетворює ці граничні точки на полігон, який використовується для малювання й переміщення кожного уламка. Такий растровий підхід дозволяє уникнути реалізації повноцінного геометричного алгоритму Вороного на кшталт методу заметальної лінії Фортьюна, при цьому все ще даючи переконливі форми клітинок.

Чому скло, камінь і метал розлітаються на різну кількість уламків?

Повзунок «Осколків N» задає базову кількість зерен, але кожен матеріал масштабує її перед побудовою теселяції: скло зберігає повну кількість N зерен (багато дрібних осколків), камінь використовує приблизно N/3 (менше, але більші шматки), а метал використовує приблизно N/4 (найменше, найбільші пластинчасті уламки). Це відображає те, як крихкі матеріали з різною мікроструктурою мають тенденцію розколюватися на характерно різні за розміром уламки.

Яка формула визначає, як далеко відлітає кожен уламок після удару?

При ударі кожен уламок обчислює квадрат своєї відстані d² від точки кліку й отримує спрямований назовні імпульс imp = force / (0,002·d² + 1), масштабований випадковим множником від 0,7 до 1,3, щоб уламки не рухалися абсолютно синхронно. Цей імпульс розкладається на компоненти vx і vy вздовж лінії від точки удару до центру уламка, а від vy додатково віднімається фіксований висхідний поштовх (−0,2×force), щоб уламки летіли не лише вбік, а й угору.

Чи стикаються уламки один з одним або із землею після того, як звільняються?

Вони відскакують від землі, але не один від одного. Кожен уламок є незалежним твердим тілом: гравітація прискорює його вниз, він обертається зі швидкістю, заданою в момент удару, і коли його найнижча повернута вершина досягає лінії підлоги, контакт застосовує закон відновлення Ньютона — нормальна швидкість змінює знак і множиться на коефіцієнт відновлення e, тож кожен відскок зберігає частку e² своєї вертикальної кінетичної енергії (e = 1 — абсолютно пружний, e = 0 — абсолютно пластичний удар), плюс тангенціальні втрати, що сповільнюють ковзання та обертання. Виявлення зіткнень між уламками все ще не моделюється, тож частини, що лежать на підлозі, можуть перекривати одна одну.

Як це пов'язано з критерієм Гріффітса для крихкого руйнування?

Рівняння в бічній панелі σ ≥ √(2Eγ/πa) — це критерій Гріффітса: тріщина довжиною a (половина довжини) у матеріалі з модулем Юнга E і поверхневою енергією γ почне рости, щойно прикладене напруження σ досягне цього порогу, оскільки поширення тріщини вивільняє більше накопиченої пружної енергії, ніж коштує створення нової поверхні тріщини. Симулятор не розв'язує це рівняння напряму — натомість його заздалегідь обчислені межі клітинок Вороного заміняють статистично випадкову мережу мікротріщин, якою реальний крихкий матеріал слідував би після перевищення порогу Гріффітса в точці удару.