Розгортання твердого тіла без розрізання його
Мережа поліедра — це плоска розмітка його граней, з’єднана по краях, яка складається у тверде тіло без пропусків і перекриттів — точно такий вигляд, як можна вирізати з картону для створення паперової моделі. Кожне опукле поліедрове тіло має принаймні одну мережу (це територія теореми Александрова про унікальність: існування є елементарним): розгорніть поверхню твердого тіла вздовж множини ребер, щоб залишити ребра з’єднаними без будь-якого петлі, і поверхня буде плоска. Куб має 11 різних мереж, якщо враховувати обертання та віддзеркалення — досить велика кількість для такої простої форми, що є першим ознакою комбінаційної складності розгортання для менш симетричних твердих тіл.
Розріз повинен бути розгалуженим деревом
Будь-який набір розрізаних ребер не працює. Представте країни поліедра як граф — вершини графу — це країни поліедра, а ребра графу — це країна поліедра — і дійсний розріз відповідає точно розгалуженому дереву цього графа, де кожна грань є вузлом, а дві грані з’єднані, якщо вони мають спільний край. Розгалужене дерево торкається кожного вузла грані в точності один раз без циклів, що перекладається на те, що потрібно вирізати достатньо ребер, щоб вся поверхня лежала рівно (жодного циклу нерозрізаних ребер не може ув’язнити область і запобігти її розгортанню), але не більше необхідного (вирізання вже-розгалуженого дерева з’єднаного краю призведе до відознення мережі на окремі плаваючі частини). Двоїстий граф куба має 6 вузлів граней; його розгалужені дерева — це саме те, що генерує ці одинадцять різних сіток.
dual graph of the polyhedron: one node per face, edge between two nodes if the faces are adjacent on the solid valid unfolding cut <=> spanning tree of the dual graph - touches every face once (net includes every face, connected) - contains no cycle (no closed loop of un-cut faces to trap flatness) - exactly (F - 1) edges cut for F faces
Складка як обертання навколо певної точки
Анімацію складання потрібно реалізувати, вибираючи для кожного зрізаного краю правильний поворот: від плоского стану (0°) до повністю складеного, кожне обличчя повертається навколо спільного шарнирного краю зі своїм батьківським обличчям у розгалуженому дереві, на кут, який збільшується з 0° до дійсної діагональної кута твердого тіла — справжнього кута між двома сусідніми гранями в готовому 3D-твердому тілі (для куба точно 90°; для ікосаедра приблизно 138,19°). Оскільки обличчя може бути підвідомче більше ніж одному сусіду транзитивно через дерево, його остання орієнтація в 3D є композицією кожного предкового повороту шарніра до кореневого обличчя, що природним чином виражено та інтерпольовано за допомогою кватерніонів замість прямих матриць обертання — slerp (сферична лінійна інтерполяція кватерніонів) униклює артефактів джиль-блоку, які вносять звичайне інтерполювання кутів Ейлера, коли кілька поворотів шарнірів складаються.
Не кожна розгортка залишається без пробілів
Для опуклих багатогранників це питання, яке довго не піддавася спору – твердження Шепарда, поставлене в 1975 році – запитує, чи має кожен опуклий багатогранник розгортку з перемиканням, яка не перекриває себе, коли її викладено рівно, і без пробілів. Усі відомі опуклі тверді тіла мають принаймні одну неперерідну сітку (і це було обчислено для дуже великих класів з них), але жодного загального доказу немає для кожного опуклого багатогранника, і пов’язане питання пошуку розгортки за допомогою відрізів, які не обмежуються існуючими ребрами, є активною областю досліджень у комп’ютерної геометрії. Неопуклі тверді тіла значно гірші: деякі з них зараз відомі тим, що у них немає розгортки за допомогою ребер, яка не перекривається, незалежно від того, який перемикач ви вибрали – справжня неможливість, а не просто невирішена задача пошуку.
Чому це має значення не лише для рукоділля
Розгортання поліедричного сітки - це не просто вправа з геометрії класу: виготовлення ливарних деталей з листового металу, дизайн картонного пакування та структури, що розгортаються на основі оригамі (сонячні панелі, які складаються для запуску і розгортаються на орбіті), всі залежать від пошуку виробничої, непересічної сітки для заданої 3D форми, ідеально – такої, що також мінімізує кількість окремих частин або загальну довжину різання. Одна й та ж логіка розгалуження графа, яка використовується для сітки платонізованої твердині, безпосередньо узагальнюється на ці нерегулярні, реальні сітки, і саме тому програмне забезпечення для 3D-моделювання включає автоматичні інструменти «розгортання у плоску форму», засновані на цьому графічному фундаменті.
Frequently asked questions
Чому куб має одинадцять різних сіток?
Це тому, що дійсний сітка відповідає деревцю розгалуження подвійного графа куба (одна вершина на грань, ребра між сусідніми гранями), і цей граф має рівно одинадцять відмінних дерев розгалуження до врахування обертань та відображень. Кожне дерево розгалуження зрізаних ребер утворює різну, але однаково валідну плоску укладку шести квадратних граней.
Чи має кожна випукла поліедра сітка, яка не перекривається?
Це припускається (кон’єкція Шепарда, 1975), але ще не доведено для будь-якого випуклого поліедра в цілому, хоча кожен відомий випуклий твердий тіло має принаймні одну таку сітку. Деякі незв'язні поліедри, навпаки, доведено, що не мають перекриттів ребер при розгортанні, незалежно від того, яке дерево розгалуження зрізів ви оберете.
Чому використовувати кватерніони замість простих кутів для анімації складання?
Це тому, що складання дерева розгалуження складає кілька обертань петель утворюючих один для кожного рівня дерева, яке грань опускається від кореня, і просте інтерполювання Ейлера страждає від заклинювання гумових опор та невідповідних осей при накладанні обертань. Кватерніонне сферальне інтерполювання згладжує та змішує 3D обертання без цих артефактів.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Polyhedron Nets (Unfolding 3D Solids) і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Polyhedron Nets (Unfolding 3D Solids)