Die meisten dreidimensionalen Objekte / Flächen auf meiner Webseite werden durch eine parametrische Funktion
mit den Parametern u und v erzeugt. Möchte man ein solches Objekt / Fläche in einem kartesischen 3D-Koordinatensystem verschieben (sog. Translation), muss man zu den x-, y- und z-Komponenten fx, fy, fz der Funktion f lediglich den entsprechenden Wert der Verschiebung in die jeweilige Richtung (tx, ty, tz ) addieren:
Soll das Objekt / Fläche hingegen um eine der Achsen eines Koordinatensystem gedreht werden (Rotation), ist der Aufwand größer. Hierzu betrachte man einen Bildpunkt (x | y | z) des Objekts / Fläche als Vektor, der um den Winkel α gedreht werden soll: der gedrehte Bildpunkt (x' | y' | z') ergibt sich durch die Multiplikation des Vektors mit einer Rotationsmatrix R (α):
Im folgenden sind für die möglichen Rotationen um eine der Koordinatenachsen im Raum die erforderlichen Rotationsmatrizen und Berechnungen mit den Drehwinkeln αx , αy und αz für die jeweilige Achse angegeben (zur besseren Übersichtlichkeit wurde der Term "(u, v)" bei den Komponenten der Funktion f weggelassen).
Rotation um die x-Achse:
Rotation um die y-Achse:
Rotation um die z-Achse:
Falls die gleiche Art der Rotation durchgeführt werden soll, wobei sich der Mittelpunkt des Objekt/Fläche aber nicht im Ursprung des Koordinatensystems befindet, sondern im Punkt ( ∆x | ∆y | ∆z) wie in den folgenden Beispielen (weitere Anwendung s. Funktionsgraph als Rohr / Röhre):
so sind die Koordinaten ∆x, ∆y, ∆z komponentenweise beim jeweiligen Rotationsvektor hinzu zu addieren.
Dies entspricht einer Verschiebung des Koordinatensystem zum neuen System x', y', z' (gelb in Animation).
Bei den folgenden Beispielen wurde das Objekt vor der Rotation in x-, y- und z-Richtung verschoben, d.h. die Verschiebung erfolgt in der Objektfunktion:
die dann entsprechend rotiert wird:
Um eine Drehung um "gleichzeitig" zwei Achsen auszuführen, muss zunächst um die eine, dann um die andere Achse gedreht werden. Beispielsweise soll die erste Drehung um die z-Achse erfolgen; das Ergebnis hiervon soll dann um die x-Achse rotiert werden:
Rotation um z-Achse → Rotation um x-Achse
Aus Performance-Gründen beim Berechnen ist es sinnvoll, die beiden Rotationsmatrizen miteinander zu multiplizieren und dann diese neue Matrix zur Drehung anzuwenden:
Hierbei ist bei der Multiplikation der Matrizen auf deren Reihenfolge zu achten, da die Matrixmultiplikation im Allgemeinen nicht kommutativ ist!
Im Folgenden sind für die sechs möglichen Drehungen um jeweils zwei Koordinatenachsen die entsprechend ausmultiplizierten Matrizen angegeben. Die Animationen zeigen für jeden der sechs Fälle die Drehung eines Objektes um die entsprechenden zwei Achsen, wobei für die Drehwinkel αx, αy, αz der Bereich [0, π] gewählt wurde.
Soll eine Rotation um alle drei Koordinatenachsen mit den Drehwinkeln αx , αy und αz erfolgen, so müssen die Rotationen für jede Achse einzeln hintereinander ausgeführt werden. Beispielsweise soll erst um die x-, dann um die y- und schließlich um die z-Achse rotiert werden:
Rotation um x-Achse → Rotation um y-Achse → Rotation um z-Achse
Auch hier bietet es sich unter Performance-Gesichtspunkten an, die drei Matrizen zunächst zu multiplizieren und dann diese neue Matrix für die Berechnung der Rotation zu verwenden:
Beeindruckend zeigt sich Graphing Calculator 3D, wenn man das Objekt gleichzeitig um mehrere Achsen drehen lässt:
Die obigen Betrachtungen zur Rotation parametrischer Flächen um eine oder mehrere Koordinatenachsen gelten auch für implizite Flächen. Hierzu sind die Komponenten fx, fy und fz durch die Koordinaten x, y und z der impliziten Funktion zu ersetzen. Als Beispiel diene der Blob, der durch die implizite Funktion
x² + y² + z² + sin (4x) + sin (4y) + sin (4z) - 1 = 0
erzeugt wird und gleichzeitig um die z- und x-Achse gedreht wird:
Die transformierten Koordinaten x', y' und z' sind in die implizite Gleichung einzusetzen. Die Animation rechts zeigt eine 90°-Drehung des Blob um die z- und x-Achse.
Soll eine implizite Fläche in Zylinderkoordinaten f (r, Θ, z) = 0 um eine Koordinatenachse rotiert werden, so geht man wie folgt vor.
Dies ist die einfachste Rotation: Die z-Achse ist bei dieser Drehung des Fläche in Zylinderkoordinaten um den Winkel α gegen den Uhrzeigersinn auch die Symmetrieachse des Koordinatensystems. Mithin gilt für die neuen Koordinaten (r*, Θ*, z*):
r* = r
Θ* = Θ – α
z* = z
· Transformation der Funktion in Kartesische Koordinaten:
x = r cos (Θ)
y = r sin (Θ)
z = z
· Rotation um die x- oder y-Achse mit Hilfe der Rotationsmatrix (s.o.):
· Rücktransformation in Zylinderkoordinaten:
Die folgenden drei Beispiele zeigen die Rotation des
Plücker Conoids mit der Funktionsgleichung
f (2, Θ, z) = n cos(Θ) = 0 jeweils um eine halbe Drehung um die drei Koordinatenachsen.