Anwendung homogener Koordinaten
Homogene Koordinaten dienen häufig zur Umrechnung von Koordinatensystemen. Um Rundungsfehler zu vermeiden und Berechnungsaufwand massiv zu reduzieren, ist es vorteilshaft, mehrere aufeinander folgende Matrixtransformationen (Translation, Drehung, Skalierung, Scherung) zu einer einzigen Transformationsmatrix zusammenzufassen.
In der 3D-Computergrafik wird dies beispielsweise genutzt, um sehr schnell die Koordinaten der Stützpunkte (Vertex) von Dreiecksnetzen aus dem Koordinatensystem eines virtuellen Objektes abhängig von der Bewegung einer virtuellen Kamera in aktuelle Bildschirmkoordinaten umzurechnen.
In der Robotik lassen sich hintereinanderliegende Achsen durch Verkettung ihrer zugehörigen homogenen Matrizen beschreiben. Hierfür wird als Standardverfahren die Denavit-Hartenberg Transformation angwandt.
Homogene Matrizen
Rotation, Skalierung, Scherung und Translation eines dreidimensionalen, räumlichen Objektes lassen sich je durch eine Matrix beschreiben. Hinderlich ist jedoch, dass die drei erstgenannten Operationen eine Matrizenmultiplikation erfordern, die Translation jedoch eine Addition.
Um eine Translation ebenfalls als Multiplikation berechnen zu können, wird der Raum um eine weitere Dimension erweitert. Eine Translation im dreidimensionalen Raum lässt sich nun durch eine Matrizenmultiplikation mit einer Matrix beschreiben.
Die Transformation von kartesischen Koordinaten nach homogenen Koordinaten erfolgt durch:
Die Abbildung eines Punktes von einem Koordinatensystem in ein anderes geschieht durch die Multiplikation mit der homogenen Matrix :
Aufgrund der Assoziativität von Matrizenmultiplikationen können mehrere aufeinanderfolgende Multiplikationen zu einer einzigen Gesamtmatrix zusammengefasst werden.
Die fehlende Kommutivität bedingt, dass die Reihenfolge der Objektmanipulationen von Bedeutung ist. Anschaulich lässt sich dies so interpretieren, dass es einen Unterschied macht, ob in einem lokalen Bezugssystem ein Objekt zuerst entlang einer Achse verschoben und dann im neuen lokalen Bezugssystem rotiert wird, oder ob ein Objekt zuerst rotiert und dann das Objekt in der gleichen Richtung des nun mitrotierten lokalen Bezugssystems in eine neue Richtung in Bezug auf Weltkoordinaten verschoben wird.
Eine Rücktransformation von homogenen Koordinaten in kartesische Koordinaten erlaubt es, auch die perspektivische Abbildung durch eine Matrix zu beschreiben:
Die Koordinaten und können bereits als Bildschirmkoordinaten verwendet werden. gibt die Distanz des transformierten Punktes vom virtuellen Bildschirm an und wird im Z-Buffer (Tiefenpuffer) gespeichert. Eine perspektivische Abbildung führt dazu, dass die Gesamtmatrix singulär wird und nicht mehr invertiert werden kann.
Wichtige elementare homogene Transformationsmatrizen
Translation: | = | ||
Rotation um x-Achse: | = | Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikipedia.org/v1/“:): {\displaystyle \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos \alpha & -sin \alpha & 0 \\ 0 & \sin \alpha & \cos \alpha & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} } | |
Skalierung: | = | ||
Perspektive: | = |
Beispiel
Die Rotation um einen Punkt und eine perspektivische Abbildung mit dem Abstand zwischen Betrachterauge und Projektionsebene kann durch eine einzige Matrix beschrieben werden. Zuerst wird der Ursprung des lokalen Koordinatensystems in den Punkt mittels verschoben. Danach erfolgt die Rotation . Anschliessend wird das Koordinatensystem wieder in den anfänglichen Ursprung zurückverschoben mittels . Die perspektivische Abbildung erfolgt durch . Zusammengefasst entsteht dabei die von rechts nach links zu lesende Matrix .