Strona głównaArtykułyGeneratywna sztuka

Superformula 3D: Jedna równanie, nieskończone kształty

Jak superformula Johanego Gielisa z ośmioma parametrami generalizuje okręgi, gwiazdy i kwiaty, a także jak dwa z nich tworzą trójwymiarowy supersztych żywy.

mysimulator teamZaktualizowano — czerwiec 2026≈ 8 min czytania▶ Otwórz symulację

Jedna forma, cała taxonomia kształtów

W 2003 roku belgijski botanik i inżynier Johan Gielis opublikował uogólnienie superelipsy — samej się uogólnienia elipsy wprowadzonej przez Gabriel Lamé w 1818 roku. Formuła super Gielisa dodaje pojedynczy nowy parametr, m, który określa liczbę łopatek na okręgu, a wynik to jedna równanie polarne, które może rysować koła, kwadraty, gwiazdy, zęby wodza, gwiazdofity i liście kwiatów, zależnie tylko od ośmiu liczb:

r(φ) = ( |cos(mφ/4)/a|^n2 + |sin(mφ/4)/b|^n3 )^(-1/n1) m → symetria rotacyjna: liczba łopatek/płatków na okręgu a,b → skala promienia wzdłuż dwóch osi n1 → ogólne zęby vs. pincja całościowego okręgu n2,n3 → ostrość każdego pojedynczego łopatka Ustaw m = 0 i n1 = n2 = n3 = 2, a forma sprowadza się do idealnego koła. Ustaw m = 4 z odpowiednio ustawionymi n2 i n3, a otrzymujesz superelipsę Lamé — lisciejską interpolację między diamantem, elipsą a zaokrąglonym kwadratem. Podnieś m do 5, 6 lub 12 i ostrość n2/n3, a okrąg rosnie łopatkami, zęby wodza lub ramion gwiazdofity, wszystko z tych samych sześciu symboli.

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
demo na żywo · powiązana symulacja● LIVE

Z 2D krzywej do 3D superszaru

Sfera w współrzędnych sferycznych wymaga dwóch niezależnych kątów — kąta polarnego θ, pomiarowanego od podstawy, oraz kąta azymutalnego φ, przeskanowanego po równiku. Wzorzec Gielisa do przekształcenia 2D w 3D polega na ocenie dwóch osobnych superformuł — jednej jako funkcji θ i drugiej jako funkcji φ, każda z własnymi osiem parametrami — i mnożeniu ich promieni dołączając do pojedynczej powierzchni sferycznej:

r1 = superformula(θ) // profil północ-sudano, θ ∈ [-π/2, π/2] r2 = superformula(φ) // profil wschód-zachód, φ ∈ [-π, π] x = r1·cos(θ) · r2·cos(φ) y = r1·cos(θ) · r2·sin(φ) z = r1·sin(θ) Ponieważ dwie profile są niezależne, kształt północ-sudano i kształt wschód-zachód można dostosować oddzielnie: sylwetka gwiazdki z pincem na polach, obrotowy torus, kryształ z wierzchołkami lub flutowany, gwoździkowaty objętość. To dokładnie rodzina "superszaru", o której demonstracja na tej stronie przeprowadza tour — całkowicie sześćnaście liczb, ale tylko osiem pasków, ponieważ oba profile dzielą się domyślnymi wartościami m, a i b, zanim je odłączysz.

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

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

Tworzenie siatki

Symulacja tesselluje powierzchnię jako siatkę szerokości i długości geograficznej, ocenia oba promienie dla każdego próbek (θ, φ), konwertuje je na współrzędne kartezjańskie i zapisuje wyniki bezpośrednio w atrybutie położenia geometryi BufferGeometry z użyciem Three.js. Ponieważ cała powierzchnia jest czystą funkcją swoich parametrów, zmiana przycisku oznacza ponowne ocenienie każdego wierzchołka i ponowne wysyłanie bufora — bez kroplistego naprawiania, ani konieczności utrzymania stanu symulacji zgodnego, co pozwala na reakcję demonstracji na przeciąganie przycisku nawet przy 60 fps na małym GPU komputera. Normalne wierzchołkowe są ponownie obliczane z sąsiednich trójkątów na każdym klatce, aby oświetlenie reagowało poprawnie nawet gdy siatka ugięta jest w ostre skrzyżowania.

Dlaczego botanik potrzebował tego

Gielis nie szukał abstrakcyjnej sztuki — próbował opisać przekroje trąci bambusowych, które nie są ani okrągłymi, ani eliptycznymi, ale niewiele ząbka wielokątnych z zakrzywionymi krawędziami, kształtu, który do momentu superformuły nie posiadał skompaktowej opisowej równości. Tę sama równość okazała się pasować do skorup diatomów, gwiazdnic, korzeniowców, śnieżek, sieci weszów i symetrii radialnej kwiatów z szokującą dokładnością, używając znacznie mniej parametrów niż ogólny dopasowanie Fouriera. Ta efektywność jest również powodem, dla którego jest dobrym podstawowym elementem sztucznej: osiem liczb, jedna równość, a cała przestrzeń sól gwiazdowych symetrycznych jest dostępna poprzez przeciążanie slajderów.

Często zadawane pytania

Kto zaproponował superformułę i dlaczego?

Belgijski botanik i inżynier Johan Gielis opublikował ją w 2003 roku, szukając jednego równania, które mogłoby opisać przekroje roślin — takich jak pęczki bambu, diatomee, skrzydlatki, kwiaty — których tradycyjne kształty, takie jak koła i superelipsy, nie mogłyby opisać w jednym równaniu.

Jak się różni superformuła od superelipsy?

Superelipsa to szczególny przypadek m = 4, n2 = n3. Superformuła dodaje parametr symetrii m, który ustawia liczbę łopatek lub kwiatków po kolei wokół krzywej, dlatego pokrywa ona nie tylko gwiazdy i ząbki, ale także elipsy i prostokąty.

Dlaczego 3D wersja wymaga dwóch oddzielnych równań?

Sfera potrzebuje dwóch niezależnych kątów: szerokości geograficznej i długości geograficznej. Ocena jednego superformuły na każdy kąt i mnożenie dwóch promieni daje powierzchnię produktową sfericzną — supershape — więc profily polarne i azymutalne mogą być kształtowane całkowicie niezależnie.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Tessellated Sphere Patterns – Superformula i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację Tessellated Sphere Patterns – Superformula

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)