Superformel
Superformeln är en generalisering av superellipsen och föreslogs av Johan Gielis omkring 2000. Gielis föreslog att formeln kan användas för att beskriva många komplexa former och kurvor som finns i naturen . Gielis har lämnat in en patentansökan relaterad till syntesen av mönster som genereras av superformeln, som löpte ut från och med 2020-05-10.
I polära koordinater , med radien och vinkeln, är superformeln:
Genom att välja olika värden för parametrarna och olika former kan genereras.
Formeln erhölls genom att generalisera superellipsen, namngiven och populariserad av Piet Hein , en dansk matematiker .
2D plots
I följande exempel ska värdena som visas ovanför varje figur vara m , n 1 , n 2 och n 3 .
Ett GNU Octave- program för att generera dessa figurer
0
funktion sf2d ( n, a ) u = [ : .001 : 2 * pi ]; raux = abs ( 1 / a ( 1 ) .* abs ( cos ( n ( 1 ) * u / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) .* abs ( sin ( n ( ) 1 ) * u / 4 ))) .^ n ( 4 ); r = abs ( raux ) . ^ ( -1 / n ( 2 )); x = r .* cos ( u ); y = r .* sin ( u ); plot ( x , y ); slutet
Förlängning till högre dimensioner
Det är möjligt att utöka formeln till 3, 4 eller n dimensioner med hjälp av den sfäriska produkten av superformler. Till exempel erhålls den 3D- parametriska ytan genom att multiplicera två superformler r 1 och r 2 . Koordinaterna definieras av relationerna:
där ( latitud ) varierar mellan − π /2 och π /2 och θ ( longitud ) mellan − π och π .
3D-plots
3D-superformel: a = b = 1; m , n 1 , n 2 och n 3 visas på bilderna.
Ett GNU Octave -program för att generera dessa figurer:
funktion sf3d ( n, a ) u = [ -pi : .05 : pi ] ; v = [ -pi / 2 : .05 : pi / 2 ] ; nu = längd ( u ); nv = längd ( v ); för i = 1 : nu för j = 1 : nv raux1 = abs ( 1 / a ( 1 ) * abs ( cos ( n ( 1 ) .* u ( i ) / 4 ))) .^ n ( 3 ) + abs ( 1 / a ( 2 ) * abs ( sin ( n ( 1 ) * u ( i ) / 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 / a ( 2 ) * abs ( sin ( n ) ( 1 ) * v ( j ) / 4 ))) .^ n ( 4 ); r2 = abs ( raux2 ) .^ ( -1 / n ( 2 )) ; x ( i , j ) = rl * cos ( u ( i )) * r2 * cos ( v ( j )); y ( i , j ) = r1 * sin ( u ( i )) * r2 * cos ( v ( j )); z ( i , j ) = r2 * sin ( v ( j )); endfor ; endfor ; mesh ( x , y , z ); slutfunktion ;
Generalisering
Superformeln kan generaliseras genom att tillåta distinkta m parametrar i superformelns två termer. Genom att ersätta den första parametern med y och den andra parametern med z :
Detta möjliggör skapandet av rotationsasymmetriska och kapslade strukturer. I följande exempel är a, b, och 1:
externa länkar
- Några experiment med passning av Gielis-kurvor genom simulerade glödgnings- och partikelsvärmmetoder för global optimering
- Minsta kvadrater Anpassning av Chacón-Gielis-kurvor med partikelsvärmsmetoden för optimering
- Superformula 2D-plotter och SVG-generator
- Interaktivt exempel med JSXGraph
- SuperShaper: En OpenSource, OpenCL accelererad, interaktiv 3D SuperShape-generator med shaderbaserad visualisering (OpenGL3)
- Enkel, WebGL-baserad SuperShape-implementering