Super-Ellipsoid

Super-Ellipsoid

Alan H. Barr publizierte 1981 eine Arbeit im Bereich Computer Aided Design [1], in der er die Grundlagen legte zur Erweiterung der bis dato üblichen Formen (Quader, Kugeln, Hyperboloide) durch - wie er es nannte - "Superquadrics", darunter das Super-Ellipsoid und der Super-Toroid.

 

Diese 3D-Objekte bieten durch die Änderung nur weniger Parameter eine große Formenvielfalt und fanden Einzug in CAD- und Raytracing-Software zur Modellierung von Objekten und für Computerspiele.

 

Das Super-Ellipsoid mit seinem Zentrum in (0, 0, 0) wird durch folgende Funktion erzeugt:

 

x (u, v) = cos (v) n1 cos (u) n2

y (u, v) = cos (v) n1 sin(u) n2

z (u, v) = sin(v) n1

 

mit u, v = 0, ... , 2π  und n1, n2 > 0.

 

Da die Sinus- und Cosinus-Funktion im Bereich [ 0, 2π ] auch negative Werte liefern, eine Potenz mit negativer Basis und beliebigem Exponenten exp aber nicht definiert ist, müssen die potenzierten Sinus-/Cosinus-Terme ersetzt werden durch

 

cos (..) exp     sign ( cos (..) ) | cos (..) | exp

sin (..) exp      sign ( sin (..) )  | sin (..) | exp

 

Der Exponent n1 bestimmt die "Rechteckigkeit" des Objekts in der z-Richtung, während der Exponent n2 die Rechteckigkeit in der x/y-Ebene festlegt. Die folgende Tabelle zeigt die typische Charakteristik der Objekte für verschiedene Werte von n1 und n2.

n1 n2 Objekt Charateristik
 << 1  << 1 Würfel
< 1 < 1   würfelartig
< 1 1   zylindrisch
<< 1 1 Zylinder
1 < 1   kissenartig
1 1   Kugel
2 2   Oktaeder
n1 oder n2 = 2  

"abgeschrägt"
n1 oder n2 > 2

"eingedrückt"

 

Das folgende Video zeigt das entstehende Super-Ellipsoid für verschiedene Wertekombinationen von n1 und n2. Dabei durchläuft n1 jeweils den Bereich 0.01 bis 3 für die festen Werte 0.01, 0.5, 1, 1.5, 2, 2.5 und 3 von n2.

Multipliziert man die Funktion für das Super-Ellipsoid noch mit einem Vektor [ rx, ry, rz ], so wird das Super-Ellipsoid in x-, y-, z-Richtung für r-Werte > 1 gestreckt, für r-Werte < 1 gestaucht. Dazu hier einige Beispiele:

Durch Addition der Größen xc , yc und zc zur jeweiligen Funktionskomponente kann das Zentrum des Superellipsoids in den Punkt C (xc , yc , zc) verschoben, durch Multiplikation mit einer Drehmatrix D (s. Rotationen im Raum) beliebig im Raum gedreht werden.


Quellenverweise

 

[1]   Superquadrics and Angle-Preserving Transformations   (PDF 8.2 MB)


Download