Super formuła
Superformuła jest uogólnieniem superelipsy i została zaproponowana przez Johana Gielisa około 2000 roku. Gielis zasugerował, że formuła może być używana do opisu wielu złożonych kształtów i krzywych występujących w przyrodzie. Gielis złożył wniosek patentowy dotyczący syntezy wzorców generowanych przez superformułę, który wygasł z dniem 10.05.2020.
We współrzędnych biegunowych , z promieniem i , superformuła to:
Wybierając różne wartości parametrów za n można wygenerować różne kształty.
Formuła została uzyskana przez uogólnienie superelipsy, nazwanej i spopularyzowanej przez duńskiego matematyka Pieta Heina .
Działki 2D
W poniższych przykładach wartości pokazane nad każdą cyfrą powinny wynosić m , n 1 , n 2 i n 3 .
Program GNU Octave do generowania tych liczb
0
funkcja sf2d ( n, a ) u = [ : 0,001 : 2 * pi ]; raux = abs ( 1 / za ( 1 ) .* abs ( cos ( n ( 1 ) * u / 4 ))) .^ n ( 3 ) + abs ( 1 / za (
2 ) .* abs ( sin ( n ( 1 ) * u / 4 ))) .^ n ( 4 ); r = abs ( raux ) .^ ( - 1 / n ( 2 )); x = r .* cos ( u ); y = r .* grzech ( u
); działka ( x , y ); koniec
Rozszerzenie do wyższych wymiarów
Możliwe jest rozszerzenie formuły do 3, 4 lub n wymiarów za pomocą iloczynu sferycznego nadformuł. Na przykład powierzchnię parametryczną 3D uzyskuje się przez pomnożenie dwóch nadformuł r 1 i r 2 . Współrzędne są określone przez zależności:
gdzie ( szerokość geograficzna ) waha się między - π / 2 a π / 2 i θ ( długość geograficzna ) między - π a π .
Działki 3D
Nadformuła 3D: a = b = 1; m , n 1 , n 2 i n 3 są pokazane na rysunkach.
Program GNU Octave do generowania tych liczb:
funkcja sf3d ( n, a ) u = [ - pi : 0,05 : pi ]; v = [ - pi / 2 : 0,05 : pi / 2 ]; nu = długość ( u ); nv = długość ( v ); dla i = 1 : nu dla j =
1 : nv raux1 = abs ( 1 / za ( 1 ) * abs ( cos ( n ( 1 ) .* u ( ja ) / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) * abs ( grzech ( n ( 1
) * u ( ja ) / 4 ))) .^ n ( 4 ); r1 = abs ( raux1 ) .^ ( - 1 / n ( 2 )); raux2 = abs ( 1 / a ( 1 ) * abs ( cos ( n ( 1 ) * v ( j
) / 4 ))) .^ n ( 3 ) + abs ( 1 / za ( 2 ) * abs ( sin ( n ( 1 ) * v ( j ) / 4 ))) .^ n ( 4 ); r2 = abs ( raux2 ) .^ ( - 1 / rz
( 2 )); x ( ja , jot ) = r1 * sałata ( u ( ja )) * r2 * sałata ( v ( jo )); y ( ja , jot ) = r1 * grzech ( u ( ja )) * r2 * sałata ( v ( jot )); z
( ja , jot ) = r2 * grzech ( v ( jot )); koniec dla ; koniec dla ; siatka ( x , y , z ); funkcja końcowa ;
Uogólnienie
Superformułę można uogólnić, dopuszczając różne m parametrów w dwóch wyrazach superformuły. Zastępując pierwszy parametr przez i drugi parametr przez z : }
Pozwala to na tworzenie struktur rotacyjnie asymetrycznych i zagnieżdżonych. W poniższych przykładach a, b, i wynoszą 1:
Linki zewnętrzne
- Niektóre eksperymenty dotyczące dopasowania krzywych Gielisa za pomocą metod symulowanego wyżarzania i roju cząstek globalnej optymalizacji
- Dopasowanie metodą najmniejszych kwadratów krzywych Chacóna-Gielisa metodą optymalizacji roju cząstek
- Ploter 2D Superformula i generator SVG
- Interaktywny przykład z użyciem JSXGraph
- SuperShaper: OpenSource, akcelerowany OpenCL, interaktywny generator 3D SuperShape z wizualizacją opartą na shaderach (OpenGL3)
- Simpel, implementacja SuperShape oparta na WebGL