Koordinatentransformation
# Koordinatentransformation

Bei einer Koordinatentransformation werden aus den Koordinaten, die ein Punkt in einem Koordinatensystem hat, die Koordinaten berechnet, die er in einem anderen Koordinatensystem hat. Formal gesehen ist dies die Umwandlung (Transformation) der ursprünglichen Koordinaten $(x_{1},x_{2},\dotsc ,x_{n})$ in die neuen Koordinaten $(x'_{1},x'_{2},\dotsc ,x'_{n})$. Die häufigsten Anwendungen finden sich in der Geometrie, der Geodäsie, der Photogrammetrie und bei technischen Aufgabenstellungen, aber auch in solch populären Bereichen wie der Computeranimation oder bei Computerspielen, in denen die dargestellte „Realität“ aus Sicht des Spielers, wenn er sich bewegt, fortwährend neu berechnet werden muss.

Typische Koordinatentransformationen entstehen durch Drehung (Rotation), Skalierung (Veränderung des Maßstabs), Scherung und Verschiebung (Translation) des Koordinatensystems, die auch kombiniert werden können.

Allgemein können die neuen Koordinaten $x'_{i}$ beliebige Funktionen der alten Koordinaten $x_{i}$ sein. In der Regel verwendet man spezielle Transformationen, bei denen diese Funktionen gewissen Einschränkungen – z. B. Differenzierbarkeit, Linearität oder Formtreue – unterliegen. Koordinatentransformationen können angewendet werden, wenn sich ein Problem in einem anderen Koordinatensystem leichter lösen lässt, z. B. bei der Transformation von kartesischen Koordinaten in Kugelkoordinaten oder umgekehrt.

Ein Spezialfall der Koordinatentransformation ist der Basiswechsel in einem Vektorraum.

Die hier betrachteten Transformationen, bei denen die Koordinatensysteme geändert werden und sich dadurch nur die Koordinaten der Punkte ändern, während die Punkte selbst unverändert bleiben, heißen auch passive oder Alias-Transformationen, während Transformationen, bei denen sich umgekehrt die Position der Punkte gegenüber einem festen Koordinatensystems ändert, auch aktive oder Alibi-Transformationen genannt werden (siehe Abb.).

## Lineare Transformationen

Bei linearen Transformationen sind die neuen Koordinaten lineare Funktionen der ursprünglichen, also

    $x'_{1}=a_{11}x_{1}+a_{12}x_{2}+\dots +a_{1n}x_{n}$
    $x'_{2}=a_{21}x_{1}+a_{22}x_{2}+\dots +a_{2n}x_{n}$
    $\ldots$
    $x'_{n}=a_{n1}x_{1}+a_{n2}x_{2}+\dots +a_{nn}x_{n}$.

Dies kann man kompakt als Matrixmultiplikation des alten Koordinatenvektors ${\vec {x}}=(x_{1},\dots ,x_{n})$ mit der Matrix $A$, die die Koeffizienten $a_{ij}$ enthält, darstellen

    ${\vec {x}}'=A{\vec {x}}$.

Der Ursprung des neuen Koordinatensystems stimmt dabei mit dem des ursprünglichen Koordinatensystems überein.

### Drehung (Rotation)

Ein wichtiger Typ linearer Koordinatentransformationen sind solche, bei denen das neue Koordinatensystem gegenüber dem alten um den Koordinatenursprung gedreht ist (in nebenstehender Grafik die sogen. „Alias-Transformation“). In zwei Dimensionen gibt es dabei als Parameter lediglich den Rotationswinkel, im Dreidimensionalen dagegen muss weiters eine sich durch die Rotation nicht ändernde Drehachse definiert werden. Beschrieben wird die Drehung dabei in beiden Fällen durch eine Drehmatrix.

**Beispiel**

Betrachtet werden zwei dreidimensionale kartesische Koordinatensysteme $S$ und $S'$ mit einer gemeinsamen z-Achse und gemeinsamem Ursprung. Das Koordinatensystem $S'$ sei gegenüber $S$ um den Winkel $\varphi$ um die z-Achse im Uhrzeigersinn gedreht. Ein Punkt P, der im Koordinatensystem S die Koordinaten ${\vec {x}}=(x,y,z)$ hat, besitzt dann im Koordinatensystem S' die Koordinaten ${\vec {x}}'=(x',y',z')$ mit:

    $x'=+x\cos \varphi -y\sin \varphi ,$
    $y'=+x\sin \varphi +y\cos \varphi ,$
    $z'=z.$

In Matrixschreibweise ergibt sich mit der inversen Drehmatrix für diese Rotation des Koordinatensystems:

    ${\vec {x}}'={\begin{pmatrix}\cos \varphi &-\sin \varphi &0\\\sin \varphi &\cos \varphi &0\\0&0&1\end{pmatrix}}{\vec {x}}.$

### Skalierung

Bei der Skalierung werden die „Einheiten“ der Achsen geändert. Das heißt, die Zahlenwerte der Koordinaten $x_{i}$ werden mit konstanten Faktoren $\lambda _{i}$ multipliziert („skaliert“)

    $x_{i}'=\lambda _{i}\cdot x_{i}.$

Die Parameter dieser Transformation sind die $N$ Zahlen $\lambda _{i}$. Ein Spezialfall ist die „Maßstabsänderung“, bei der alle Faktoren den gleichen Wert haben

    $\lambda _{i}=\lambda .$

Die Matrix $A$ ist in diesem Fall das $\lambda$-fache der Einheitsmatrix.

### Scherung

Bei der Scherung verändert sich der Winkel zwischen den Koordinatenachsen. In zwei Dimensionen gibt es daher einen Parameter, im dreidimensionalen Raum drei Parameter.

## Affine Transformationen

Affine Transformationen bestehen aus einer linearen Transformation und einer Translation.

Sind beide beteiligten Koordinatensysteme linear, (d. h. im Prinzip durch einen Koordinatenursprung und gleichmäßig unterteilte Koordinatenachsen gegeben), so liegt eine affine Transformation vor. Hierbei sind die neuen Koordinaten affine Funktionen der ursprünglichen, also

    $x'_{1}=a_{11}x_{1}+a_{12}x_{2}+\dots +a_{1n}x_{n}+b_{1}$
    $x'_{2}=a_{21}x_{1}+a_{22}x_{2}+\dots +a_{2n}x_{n}+b_{2}$
    $\ldots$
    $x'_{n}=a_{n1}x_{1}+a_{n2}x_{2}+\dots +a_{nn}x_{n}+b_{n}$

Dies kann man kompakt als Matrixmultiplikation des alten Koordinatenvektors ${\vec {x}}=(x_{1},\dots ,x_{n})$ mit der Matrix $A$, die die Koeffizienten $a_{ij}$ enthält, und Addition eines Vektors ${\vec {b}}$, der die $b_{i}$ enthält, darstellen

    ${\vec {x}}\,'=A{\vec {x}}+{\vec {b}}$

Die Translation ist ein Spezialfall einer affinen Transformation, bei der A die Einheitsmatrix ist.

### Verschiebung (Translation)

Betrachtet werden zwei Koordinatensysteme $S$ und $S'$. Das System $S'$ ist gegenüber $S$ um den Vektor ${\vec {b}}$ verschoben. Ein Punkt $P$, der im Koordinatensystem $S$ die Koordinaten ${\vec {x}}$ hat, besitzt dann im Koordinatensystem $S'$ die Koordinaten ${\vec {x}}'={\vec {x}}-{\vec {b}}$.

## Beispiele

### Kartesische Koordinaten und Polarkoordinaten

Ein Punkt in der Ebene wird im kartesischen Koordinatensystem durch seine Koordinaten (x,y) und im Polarkoordinatensystem durch den Abstand $r$ vom Ursprung und dem (positiven) Winkel $\varphi$ zur x-Achse bestimmt.

Dabei gilt für die Umrechnung von Polarkoordinaten in kartesische Koordinaten:

* $x=r\cdot \cos \varphi$
* $y=r\cdot \sin \varphi$

Für die Umrechnung von kartesischen Koordinaten in Polarkoordinaten gilt:

* $r={\sqrt {x^{2}+y^{2}}}$
* $\varphi ={\begin{cases}\arctan {\frac {y}{x}}&\mathrm {f{\ddot {u}}r} \ x>0\\\arctan {\frac {y}{x}}+\pi &\mathrm {f{\ddot {u}}r} \ x<0,\,y\geq 0\\\arctan {\frac {y}{x}}-\pi &\mathrm {f{\ddot {u}}r} \ x<0,\,y<0\\\pi /2&\mathrm {f{\ddot {u}}r} \ x=0,\,y>0\\-\pi /2&\mathrm {f{\ddot {u}}r} \ x=0,\,y<0\end{cases}}$

       $={\begin{cases}\arccos {\frac {x}{r}}&\mathrm {f{\ddot {u}}r} \ y\geq 0\\-\arccos \left({\frac {x}{r}}\right)&\mathrm {f{\ddot {u}}r} \ y<0\end{cases}}$

Bei der Implementierung der Variante mit $arccos$ ist mit Rundungsfehlern zu rechnen, welche bei Nutzung des $arctan$ deutlich geringer ausfallen.

### Weitere Anwendungen

In der Physik spielt die Invarianz gewisser Naturgesetze unter Koordinatentransformationen eine besondere Rolle, siehe hierzu Symmetrietransformation. Von besonders grundlegender Bedeutung sind die Galilei-Transformation, Lorentz-Transformation und die Eichtransformation. Häufig gebraucht werden auch Transformationen von Operatoren und Vektoren:

* Die Transformation von Differential-Operatoren
* Die Transformation von Vektorfeldern

In den Geowissenschaften – insbesondere der Geodäsie und Kartografie gibt es noch weitere Transformationen, die formal Koordinatentransformationen darstellen.

* Transformation von geographischer Breite und Länge in Gauß-Krüger-Koordinaten
* Die Umrechnungen zwischen astronomischen Koordinaten
* 7-Parameter-Transformation (Verschiebung, Drehung, Maßstab zwischen zwei Koordinatensystemen auf demselben oder anderen Referenzellipsoid(en), auch Helmert-Transformation („Dreh-Streckung“)).

Im Bereich Robotik gilt die Denavit-Hartenberg-Transformation als das Standardverfahren.

