6.3 Drehung der Objekte



next up previous contents
Next: 6.4 Entfernung verdeckter Flächen Up: 6 Visualisierung Previous: 6.2 Isoflächendarstellung

6.3 Drehung der Objekte

Das Problem, ein angezeigtes Objekt von der gewünschten Blickrichtung zu betrachten, kann z.B. durch einen Ansichtspunkt, der mit dem Koordinatenursprung einen Sichtvektor bildet, durch die Eingabe von drei Koordinaten gelöst werden. Da es aber für den Anwender aufwendig ist, so den gewünschten Ansichtspunkt zu finden, wurde als Methode die Drehung um jeweils eine Koordinatenachse vorgezogen. Eine Drehung eines Punkts um die -Achse erfolgt durch

 

Der Punkt wird bei positivem Drehwinkel gegen den Uhrzeigersinn unter der Voraussetzung, daß ein rechtshändiges Koordinatensystem vorliegt, wie in Abbildung 6.11 gezeigt, auf verschoben.

  
Abbildung 6.11: Drehung um die z-Achse

Durch zyklische Vertauschung von -, - und -Achse erhält man für die Rotation um die -Achse

 

und für die Rotation um die -Achse

 

Eine beliebige Orientierung eines Objekts kann durch eine zusammengesetzte Drehung

 

aus drei sequentiellen Drehungen um jeweils eine Achse gefunden werden. Für die Berechnung einer zusammengesetzten Transformation müssen jedoch zwei Regeln der Matrizenmultiplikation berücksichtigt werden: Es gilt Assoziativität, jedoch keine Kommutativität. Die Reihenfolge der Transformationen darf daher nicht vertauscht werden. Die in Gleichung (6.4) angegebene Form dreht das Objekt zuerst um die -Achse, dann erfolgt eine Drehung um die -Achse. Es wird natürlich nicht um die ursprüngliche y-Achse gedreht, sondern um die -Achse. Die Drehung um die -Achse ist durch die beiden vorhergehenden Operationen bestimmt. Man spricht in diesem Fall von Nested Rotations.

Diese Art von Objektdrehung ist aber in diesem Fall unerwünscht. Bildet man nämlich die Bewegung eines Steuerknüppels in eine Drehung ab, so soll sich das Objekt in die gleiche Richtung bewegen, wie sich die Hand bewegt [Bri78]. In diesem Fall spricht man von Kinesthetic Correspondence. Eine Drehung über starre Achsen kann dies über sogenannte Nonnested Rotations. Die Drehung bzw. Transformation von dem Weltkoordinatensystem zu einem neuen Koordinatensystem ist mit

gegeben, wobei

spaltenweise die Koordinatenachsen im Weltkoordinatensystem beschreiben und

das gedrehte Koordinatensystem ist. Die Rücktransformation kann einfach mit

durchgeführt werden.

Will man nun nach einer erfolgten Drehung eine weitere Drehung um eine Orginalachse vornehmen, so ist zunächst der Einfluß der Transformationsmatrix auf die Drehung um gewünschte Drehachse , oder mit

zu kompensieren. Nun kann um eine Drehung über die eben berechnete Achse mit

gedreht werden. Die Drehung um eine beliebig orientierte Koordinatenachse um einen Winkel wird in [Bri78] mit

angegeben. Die Matrix ist so definiert, daß der Achsenanfang im Koordinatenursprung liegen muß und das Achsenende im Punkt (x,y,z). Eine Ableitung einer Drehung um eine beliebige Achse kann [Fel92] entnommen werden.

Auch bei doppelt genauer Gleitkommadarstellung kommt es ab ungefähr 100 Drehungen zu numerischen Problemengif, die aus den Matrizenmultiplikationen mit endlicher Genauigkeit resultieren. Die Orthogonalität der Transformationsmatrix ist davon nicht betroffen. Es ist ein Skalierungsproblem der Matrix. Nach etwa zehn Drehungen sollte die Transformationsmatrix abwechselnd zeilenweise bzw. spaltenweise renormalisiert werden. Zu bemerken ist, daß die Transformationsmatrizen meist große Matrizen sind, um homogene Koordinaten zu verarbeiten [Gla90][Fel92], und die Objektskalierung nicht im großen Rotationsanteil der Matrix durchgeführt wird, sondern im Diagonaleintrag der vierten Zeile enthalten ist. Unter diesen Voraussetzungen kann der Rotationsanteil der Matrix ohne Probleme renormalisiert werden.



next up previous contents
Next: 6.4 Entfernung verdeckter Flächen Up: 6 Visualisierung Previous: 6.2 Isoflächendarstellung



Martin Stiftinger
Fri Nov 25 16:50:24 MET 1994