Superquadrics
Inom matematiken är superquadrics eller super-quadrics (även superquadrics ) en familj av geometriska former som definieras av formler som liknar de av ellipsoider och andra quadrics , förutom att kvadreringsoperationerna ersätts av godtyckliga makter. De kan ses som de tredimensionella släktingarna till superellipserna . Termen kan syfta på det fasta föremålet eller till dess yta , beroende på sammanhanget. Ekvationerna nedan anger ytan; den fasta substansen specificeras genom att ersätta likhetstecken med mindre-än-eller-lika-tecken.
Superquadrics inkluderar många former som liknar kuber , oktaedrar , cylindrar , pastiller och spindlar , med rundade eller skarpa hörn. På grund av sin flexibilitet och relativa enkelhet är de populära geometriska modelleringsverktyg, särskilt inom datorgrafik . Det blir en viktig geometrisk primitiv som ofta används i datorseende, robotik och fysisk simulering.
Vissa författare, som Alan Barr, definierar "superquadrics" som att inkludera både superellipsoiderna och supertoroiderna . I modern datorseendelitteratur används superquadris och superellipsoider omväxlande, eftersom superellipsoider är den mest representativa och allmänt använda formen bland alla superquadrics. Omfattande täckning av geometriska egenskaper hos superquadrics och metoder för deras återhämtning från avståndsbilder och punktmoln täcks i flera datorseendelitteratur. Användbara verktyg och algoritmer för superquadrics visualisering, sampling och återställning är öppen källkod här .
Formler
Implicit ekvation
Ytan av den grundläggande superquadric ges av
där r , s och t är positiva reella tal som bestämmer huvuddragen i superkvadricen. Nämligen:
- mindre än 1: en spetsig oktaeder modifierad för att ha konkava ytor och skarpa kanter .
- exakt 1: en vanlig oktaeder .
- mellan 1 och 2: en oktaeder modifierad för att ha konvexa ytor, trubbiga kanter och trubbiga hörn.
- exakt 2: en sfär
- större än 2: en kub modifierad för att ha rundade kanter och hörn.
- oändlig (i gränsen ): en kub
Varje exponent kan varieras oberoende för att erhålla kombinerade former. Till exempel, om r = s =2, och t =4, erhåller man en rotationsmassa som liknar en ellipsoid med runt tvärsnitt men tillplattade ändar. Denna formel är ett specialfall av superellipsoidens formel om (och endast om) r = s .
Om någon exponent tillåts vara negativ sträcker sig formen till oändligheten. Sådana former kallas ibland superhyperboloider .
Grundformen ovan sträcker sig från -1 till +1 längs varje koordinataxel. Den allmänna superquadric är resultatet av att skala denna grundform med olika mängder A , B , C längs varje axel. Dess allmänna ekvation är
Parametrisk beskrivning
Parametriska ekvationer i termer av ytparametrar u och v (motsvarande longitud och latitud om m är lika med 2) är
där hjälpfunktionerna finns
och teckenfunktionen sgn( x ) är
Sfärisk produkt
Barr introducerar den sfäriska produkten som givet två plana kurvor ger en 3D-yta. Om
Barr använder den sfäriska produkten för att definiera kvadriska ytor, som ellipsoider och hyperboloider , såväl som torus , superellipsoid , superquadriska hyperboloider av ett och två ark, och supertoroider.
Rita kod
Följande GNU Octave -kod genererar en mesh approximation av en superquadric:
funktion superquadric ( epsilon,a ) n = 50 ; etamax = pi / 2 ; etamin = -pi / 2 ; _ wmax = pi ; wmin = - pi ; deta = ( etamax - etamin ) / n ; dw = ( wmax - wmin ) / n ; [ i , j ] = meshgrid ( 1 : n + 1,1 : n + 1 ) eta = etamin + ( i - 1 ) * deta ; _ _ w = wmin + ( j - 1 ) * dw ; x = a ( 1 ) .* tecken ( cos ( eta )) .* abs ( cos ( eta )) .^ epsilon ( 1 ) .* tecken ( cos ( w )) .* abs ( cos ( w )) .^ epsilon ( 1 ); y = a ( 2 ) .* tecken ( cos ( eta )) .* abs ( cos ( eta )) .^ epsilon ( 2 ) .* tecken ( sin ( w )) .* abs ( sin ( w )) .^ epsilon ( 2 ); z = a ( 3 ) .* tecken ( sin ( eta )) .* abs ( sin ( eta )) .^ epsilon ( 3 ); mesh ( x , y , z ); slutet
Se även
externa länkar
- Bibliografi: SuperQuadric-representationer
- Superquadric Tensor Glyfer
- SuperQuadric Ellipsoids and Toroids, OpenGL Lighting och Timing
- Superquadrics av Robert Kragler, The Wolfram Demonstrations Project .
- Superquadrics i Python
- Superquadrics återställningsalgoritm i Python och MATLAB