ГоловнаСтаттіГенеративне мистецтво

Суперформула 3D: Одна Рівняння, Нескінченна Кількість Форм

Як восьмипараметричне полюсова рівняння Йогана Гіліса узагальнює кола, зірки та квіти, і як дві з них множаться на живу 3D суперарму.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Одна формула, ціла таксономія форм

У 2003 році бельгійський ботанік та інженер Йоган Гіліс опублікував узагальнення супереліпса — це, в свою чергу, узагальнення еліпса, яку запропонував Габріель Ламе в 1818 році. Суперформула Гіліса додає один новий параметр, m, який визначає кількість лобів, що з'являються навколо кривої, і результатом є одна полярна рівняння, яке може малювати кола, квадрати, зірки, шестерні, морські зірки та пелюстки квітів, залежно лише від його восьми чисел:

r(φ) = ( |cos(mφ/4)/a|^n2 + |sin(mφ/4)/b|^n3 )^(-1/n1) m → обертальна симетрія: кількість лобів/пелюсток навколо кривої a,b → масштаб радіусів вздовж двох осей n1 → загальна округлість проти стиснення всієї кривої n2,n3 → різкість кожного окремого лоба Встановіть m = 0 і n1 = n2 = n3 = 2, і формула згортається в ідеальне коло. Встановіть m = 4 із відповідними n2, n3 і отримаєте супереліпс Ламе — плавне інтерполяцію між діамоном, еліпсом та заокругленим квадратом. Підніміть m до 5, 6 або 12 і загостріть n2/n3, і крива зростатиме пелюстки, зубчики шестерні чи гілки морської зірки, усі з одних шести символів.

r(φ) = ( |cos(mφ/4)/a|^n2 + |sin(mφ/4)/b|^n3 )^(-1/n1)

m   → rotational symmetry: number of lobes/petals around the curve
a,b → radius scale along the two axes
n1  → overall roundness vs. pinch of the whole curve
n2,n3 → sharpness of each individual lobe
жива демонстрація · пов'язана симуляція● LIVE

Від 2D кривої до 3D форми

Сфера у сферичних координатах потребує двох незалежних кутів — полярного кута θ, виміряного від полюсу, та орієнтуючого кута φ, оберненого навколо екватора. Хитромудрість Гіеліса для переходу в 3D полягає у виконанні двох окремих суперформул, одну як функцію θ та іншу як функцію φ, кожна з яких має свої вісім параметрів, і множенні їх радіусів між собою на єдисну сферичну поверхню:

r1 = superformula(θ) // широтна профіль, θ ∈ [-π/2, π/2] r2 = superformula(φ) // довгота профіль, φ ∈ [-π, π] x = r1·cos(θ) · r2·cos(φ) y = r1·cos(θ) · r2·sin(φ) z = r1·sin(θ) Оскільки обидва профілі незалежні, північно-південну форму та східно-західну форму можна налаштувати окремо: зірка-морська з затиснутими полюсами, спіральний тор, кристалічна структура з гранями або грудова форма з ребристім утворенням. Це точно «суперформа» родина, яку демонструє цей розділ сторінки — шістнадцять чисел, але лише вісім слайдерів, оскільки обидва профілі використовують однакові за замовчуванням параметри m, a та b до їх роз'єднання.

r1 = superformula(θ)   // latitude profile,  θ ∈ [-π/2, π/2]
r2 = superformula(φ)   // longitude profile, φ ∈ [-π, π]

x = r1·cos(θ) · r2·cos(φ)
y = r1·cos(θ) · r2·sin(φ)
z = r1·sin(θ)

Створення сітки

Симуляція тесулює поверхню як сітку широтно-довготи, оцінює два радіуси на кожній точці зразка (θ, φ), перетворює їх на декартові координати та записує результати безпосередньо в Three.js BufferGeometry атрибут позиції. Оскільки вся поверхня є чистими функціями своїх параметрів, зміна слайдера означає переоцінку кожного вершини та завантаження буфера — немає інкрементного оновлення, немає стану симуляції для підтримки узгодженості, що пояснює можливість реакції демо на перетягування слайдера з частотою 60 кадрів в секунду навіть на ноутбуку з помірною GPU. Нормилі векторів вершин перераховуються з сусідніх трикутників кожного кадру, щоб освітлення реагувало правильно, навіть коли сітка гнутиметься у гострі кути.

Чому ботаніку потрібно було це

Gielis не намагався захопити абстрактний образ – він намагався описати поперечні розрізи бамбукових пагонів, які не є круглими чи еліптичними, а скоріше лежними, з заокругленими кутами, форма, якої до суперформули не існувало як компактного математичного опису. Одна й та сама формула виявилася точною для опису діатомових клітин, морських зірок, трионих, сніжинок, павутиння та радіальної симетрії квітів, використовуючи набагато менше параметрів, ніж потребував би звичайний Фур’є-підхід. Ця ефективність також робить її гарним процедурним артефактом: вісім чисел, одна формула і весь простір зіркаподібних твердих тіл досяжний за допомогою переміщення повзунків.

Frequently asked questions

Хто винайшов суперформулу і чому?

Бельгійський ботанік та інженер Йоган Гіліс опублікував її у 2003 році, шукаючи одну формулу для опису поперечних зрізів рослин – бамбукових стебків, діатомових водоростей, морських зірок, квітів – які класичні форми, такі як кола та супереліпси, не могли охопити в одній формулі.

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

Супереліпса є спеціальним випадком m = 4, n2 = n3. Суперформула додає параметр симетрії m, який визначає кількість лобів або пелюсток навколо кривої, тому вона охоплює зірки, шестерні та квіти, а також еліпси та прямокутники.

Чому 3D версії потрібні дві окремі формули?

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

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Superformula 3D і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Superformula 3D

Що ви знайшли?

Додати кроки відтворення (опційно)