Steuerungstasten

nächste Folie (auch Enter oder Spacebar).
vorherige Folie
 d  schaltet das Zeichnen auf Folien ein/aus
 p  wechselt zwischen Druck- und Präsentationsansicht
CTRL  +  vergrößert die Folien
CTRL  -  verkleinert die Folien
CTRL  0  setzt die Größenänderung zurück

Das Weiterschalten der Folien kann ebenfalls durch das Klicken auf den rechten bzw. linken Folienrand erfolgen.

Notation

Typ Schriftart Beispiele
Variablen (Skalare) kursiv $a, b, x, y$
Funktionen aufrecht $\mathrm{f}, \mathrm{g}(x), \mathrm{max}(x)$
Vektoren fett, Elemente zeilenweise $\mathbf{a}, \mathbf{b}= \begin{pmatrix}x\\y\end{pmatrix} = (x, y)^\top,$ $\mathbf{B}=(x, y, z)^\top$
Matrizen Schreibmaschine $\mathtt{A}, \mathtt{B}= \begin{bmatrix}a & b\\c & d\end{bmatrix}$
Mengen kalligrafisch $\mathcal{A}, B=\{a, b\}, b \in \mathcal{B}$
Zahlenbereiche, Koordinatenräume doppelt gestrichen $\mathbb{N}, \mathbb{Z}, \mathbb{R}^2, \mathbb{R}^3$

Einleitung: Objekttransformationen

  • In der Computergrafik werden Objekte häufig mehrfach verwendet. Die gleiche Geometrie wird "transformiert" und erscheint
    • an verschiedenen Positionen, wie z.B. sich wiederholende Fenster in einem Gebäude
    • in verschiedenen Größen, wie z.B. ein S, L, oder XL Popkornbehälter
    • in verschiedenen Orientierungen, wie z.B. die Ausrichtung der Hand einer Person
  • Ebenfalls kann sich die Position, Orientierung oder Größe eines Objekts über die Zeit ändern, wie z.B. die Gliedmaßen einer laufenden Person

Beispiel

  • Der Roller verändert seine Position über die Zeit
  • Die Räder ändern ihre Orientierung
  • Ein Rad besteht aus mehreren Speichen mit gleicher Geometrie. Somit muss die Geometrie nur einmal vorhanden sein. Die übrigen Speichen können transformierte Referenzen sein.
Quelle: : 3D Modell:Dosch Design; Renderer: Mental Ray / 3ds Max 2010;

2D Transformationen

2D Translation

translation
$\mathbf{p}$
$\tilde{\mathbf{p}}$
$\mathbf{t}$
Objekt
verschobenes Objekt
$x$
$y$
  • Eine Veränderung der Position eines Objekts kann durch eine Translation erreicht werden
  • Gegeben: Ein Stützpunkt $\mathbf{p}=(x,y)^\top$ eines Objekts
  • Bei einer Verschiebung des Objekts um $t_x$ in x-Richtung und $t_y$ in y-Richtung berechnen sich die neuen Koordinaten $\tilde{\mathbf{p}}$ des Stützpunktes aus:

$\tilde{\mathbf{p}}= \begin{pmatrix} \tilde{x}\\ \tilde{y}\end{pmatrix} = \begin{pmatrix} x + t_x\\ y + t_y \end{pmatrix} = \mathbf{p} + \begin{pmatrix} t_x\\ t_y \end{pmatrix} = \mathbf{p} + \mathbf{t}$

2D Skalierung

scale
$\mathbf{p}$
$\tilde{\mathbf{p}}$
Objekt
skaliertes Objekt
$x$
$y$
  • Eine Veränderung der Größe eines Objekts kann durch eine Skalierung erreicht werden
  • Bei einer Vergrößerung des Objekts um den Faktor $s$ gilt:
    $\tilde{\mathbf{p}}= \begin{pmatrix} s \, x \\ s \, y\end{pmatrix} = s \, \mathbf{p}$
  • bzw. bei nicht gleichförmiger Skalierung in x- und y-Richtung:
    $\tilde{\mathbf{p}}= \begin{pmatrix} s_x \, x \\ s_y \, y\end{pmatrix} = \begin{bmatrix} s_x & 0 \\ 0 & s_y\end{bmatrix} \mathbf{p}$

2D Rotation

  • Bei einer Rotation eines Koordinatensystems um den Winkel $\alpha$ gilt für die gedrehten Koordinatenachsen:
    $\tilde{\mathbf{b}}_x = \begin{pmatrix} \cos \alpha \\ \sin \alpha \end{pmatrix}$ und  $\tilde{\mathbf{b}}_y = \begin{pmatrix} -\sin \alpha\\ \cos \alpha \end{pmatrix}$
rotation
$\tilde{\mathbf{b}}_x$
$\tilde{\mathbf{b}}_y$
Objekt
gedrehtes Objekt
$\alpha$
$x$
$y$
1
$\cos \alpha$
$$\sin \alpha$$

2D Rotation

  • Um ein Objekt zu drehen, können die gegebenen Objektkoordinaten von $\mathbf{p}=(x,y)^\top$ im gedrehten Koordinatensystem abgetragen werden. Dann gilt für den gedrehten Punkt $\tilde{\mathbf{p}}$ im ursprünglichen Koordinatensystem:
    $ \begin{aligned} \tilde{\mathbf{p}} &= \tilde{\mathbf{b}}_x \, x + \tilde{\mathbf{b}}_y\, y = \begin{pmatrix} \cos \alpha \\ \sin \alpha \end{pmatrix} x + \begin{pmatrix} -\sin \alpha\\ \cos \alpha \end{pmatrix} y \\ &= \underbrace{\begin{bmatrix}\tilde{\mathbf{b}}_x & \tilde{\mathbf{b}}_y \end{bmatrix}}_{\mathtt{R}} \begin{pmatrix}x \\ y \end{pmatrix} = \underbrace{\begin{bmatrix}\cos \alpha & -\sin \alpha\\ \sin \alpha & \cos \alpha \end{bmatrix}}_{\mathtt{R}} \begin{pmatrix}x \\ y \end{pmatrix}\\ &= \mathtt{R} \, \mathbf{p} \end{aligned} $

Kombination von Translation, Skalierung und Rotation

  • Soll ein Objekt zunächst skaliert, dann rotiert und im letzten Schritt transliert werden gilt:
    $\tilde{\mathbf{p}} = \mathtt{R} \, s \, \mathbf{p} + \mathbf{t}$
  • Gibt dies das gleiche Ergebnis wie:
    $\tilde{\mathbf{p}} = \mathtt{R} \, s \, (\mathbf{p} + \mathbf{t})$ ?
  • Nein, Reihenfolge wichtig!
    compare_order

2D Transformationen in OpenGL

opengl_triangletranform

2D Transformationen in OpenGL

class Renderer {
private:
    void drawTriangle() {
        glBegin(GL_TRIANGLES);
        glVertex2f(-0.5f, -0.5f);
        glVertex2f( 0.5f, -0.5f);
        glVertex2f( 0.0f,  0.5f);
        glEnd();
    }

public:
    void init() {}
    void resize(int w, int h) {
        glViewport(0, 0, w, h);
    }
    void display() {
        glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        glClear(GL_COLOR_BUFFER_BIT);
        glOrtho(-1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f);
        glLoadIdentity();
        glColor3f(1.0f, 1.0f, 1.0f);
        drawTriangle();

        glColor3f(0.0f, 0.0f, 1.0f);
        glScalef(0.5, 0.5, 0.0); // resize to 50%
        drawTriangle();

        glColor3f(1.0f, 0.0f, 0.0f);
        glRotatef(45.0, 0.0, 0.0, 1.0); //rotate 45 degrees
        drawTriangle();

        glColor3f(0.0f, 1.0f, 0.0f);
        glTranslatef(0.5, 0.5, 0.0); // translate
        drawTriangle();

        glFlush();
    }
};

Wunsch nach Vereinheitlichung

  • Momentan werden je nach Art der Transformation (Rotation, Skalierung und Translation) verschiedene Operationen ausgeführt (Matrixmultiplikation, Vektorskalierung und Vektoraddition)
  • Es wird sich herausstellen, dass sich Transformationen allgemein durch Matrixmultiplikationen realisieren lassen, d.h. es gibt immer eine Operation der Form $\tilde{\mathbf{p}} = \mathtt{T} \, \mathbf{p}$
  • Um dies zu erreichen, werden im Folgenden einige mathematische Grundlagen vermittelt. Besonders wichtig sind in diesem Zusammenhang "lineare Abbildungen" und "homogene Koordinaten"

Lineare Abbildungen

Linearkombination

  • Werden mehrere Vektoren $\mathbf{v}_i$ eines Vektorraums mit Skalaren multipliziert und aufaddiert, so ergibt sich eine sogenannte Linearkombination:
    $\mathbf{v} = \sum\limits_{i=1}^n a_i \mathbf{v}_i$
  • Alle möglichen Linearkombinationen bilden den Aufspann der Vektoren:
    $ \ll \mathbf{v}_i \gg \,\, = \left\{ \sum\limits_{i=1}^n a_i \mathbf{v}_i \, | \,a_i \in \mathbb{R} \right\}$
  • Vektoren sind linear unabhängig, wenn kein Vektor als Linearkombination der anderen darstellbar ist
  • Die maximale Anzahl $n$ linear unabhängiger Vektoren formen jeweils eine Basis des Vektorraums
  • Die Vektoren einer Basis werden Basisvektoren genannt und in der Vorlesung typischerweise mit $\mathbf{b}$ gekennzeichnet
  • Die Anzahl $n$ der Basisvektoren wird Dimension des Vektorraums genannt

Linearkombination

  • Beispiel für eine Basis des $\mathbb{R}^2$ sind z.B. die Einheitsvektoren
    $\mathbf{b}_1=\mathbf{e}_x = \begin{pmatrix}1 \\ 0 \end{pmatrix}$ und $\mathbf{b}_2 = \mathbf{e}_y = \begin{pmatrix}0 \\ 1 \end{pmatrix}$,
    da durch ihre Linearkombination jeder beliebige Vektor $\mathbf{v}=(x, y)^\top$ des Vektorraums erzeugt werden kann:
    $\mathbf{v} = \begin{pmatrix}x \\ y \end{pmatrix} = x \, \mathbf{e}_x + y \, \mathbf{e}_y = x \begin{pmatrix}1 \\ 0 \end{pmatrix} + y \begin{pmatrix}0 \\ 1 \end{pmatrix}$
  • Eine andere mögliche Basis des $\mathbb{R}^2$ sind die Vektoren
    $\mathbf{b}_1=\begin{pmatrix}2 \\ 1 \end{pmatrix}$ und $\mathbf{b}_2 = \begin{pmatrix}0 \\ -1 \end{pmatrix}$
    da auch durch ihre Linearkombination jeder beliebige Vektor erzeugt werden kann

Linearkombination

basetransform0
$x$
$y$
$\mathbf{e}_x$
$\mathbf{e}_y$
  • Ein 2-Vektor, wie hier z.B. $(3, 2)^\top$, wird meistens als ein Punkt in einem rechtwinkligen karthesischem Koordinatensystem interpretiert, d.h. als die Linearkombination
    $3 \, \mathbf{e}_x + 2 \, \mathbf{e}_y $
  • Der 2-Vektor $(3, 2)^\top$ könnte aber auch etwas ganz anderes bedeuten, z.B.
    $3 \, \begin{pmatrix}2 \\ 1 \end{pmatrix} + 2 \, \begin{pmatrix}0 \\ -1 \end{pmatrix} $
  • D.h. wenn ein Vektor angegeben wird, muss eigentlich immer dazu gesagt werden, in welchem Vektorraum dieser zu interpretieren ist

Lineare Abbildung

  • Gegeben eine Abbildungsfunktion $\mathrm{f}: \mathcal{V}\rightarrow \tilde{\mathcal{V}}$, die einen Vektorraum $\mathcal{V}$ in einen anderen Vektorraum $\tilde{\mathcal{V}}$ abbildet und ein gemeinsamer Körper $\mathcal{K}$.
  • Diese Abbildung wird lineare Abbildung genannt, wenn für alle Vektoren $\mathbf{v}_1, \mathbf{v}_2 \in \mathcal{V}$ und Skalar $a \in \mathcal{K}$ gilt:
    $\mathrm{f}(\mathbf{v}_1 + \mathbf{v}_2) = \mathrm{f}(\mathbf{v}_1) + \mathrm{f}(\mathbf{v}_2)$ und
    $\mathrm{f}(a \mathbf{v}_1) = a \, \mathrm{f}(\mathbf{v}_1)$
  • Für Linearkombinationen gilt unter linearer Abbildung somit:
    $\mathrm{f}\left(\sum\limits_{i=1}^n a_i \mathbf{v}_i\right) = \sum\limits_{i=1}^n a_i \mathrm{f}(\mathbf{v}_i)$

Lineare Abbildung

  • Eine lineare Abbildung $\mathrm{f}$ ist durch die Bilder der Basisvektoren $\mathrm{f}(\mathbf{b}_i)$ eindeutig definiert. Es gilt:
    $\mathbf{v} = \sum\limits_{i=1}^n a_i \mathbf{b}_i \rightarrow \mathrm{f}(\mathbf{v}) = \sum\limits_{i=1}^n a_i \mathrm{f}(\mathbf{b}_i) \quad \forall \mathbf{v} \in \mathcal{V}$

Lineare Abbildung

  • Eine lineare Abbildung $\mathrm{f}$ kann als Matrix-Vektormultiplikation dargestellt werden. Beispiel:
    $\tilde{\mathbf{v}} = \mathrm{f}(\mathbf{v}) = \begin{pmatrix}\tilde{v}_x \\ \tilde{v}_y \end{pmatrix} = \underbrace{\begin{bmatrix}m_{11} & m_{12}\\ m_{21} & m_{22} \end{bmatrix}}_{\mathtt{M}} \begin{pmatrix}v_x \\ v_y \end{pmatrix} = \mathtt{M} \, \mathbf{v}$
  • Allgemeine Form ist eine $M \times N$-Matrix: $\begin{pmatrix}\tilde{v}_1 \\ \vdots \\\tilde{v}_M \end{pmatrix} = \begin{pmatrix} m_{1,1} & m_{1,2} & \cdots & m_{1,N} \\ m_{2,1} & m_{2,2} & \cdots & m_{2,N} \\ \vdots & \vdots & \ddots & \vdots \\ m_{M,1} & m_{M,2} & \cdots & m_{M,N} \end{pmatrix} \begin{pmatrix}v_1 \\ \vdots \\ v_N \end{pmatrix}$

Lineare Abbildung

  • In den Spalten der Matrix $\mathtt{M}$ können die Abbildungen der Basisvektoren im aktuellen Referenzkoordinatensystem abgelesen werden.
    $\mathtt{M} = \begin{bmatrix}m_{11} & m_{12}\\ m_{21} & m_{22} \end{bmatrix} = \begin{bmatrix}\tilde{\mathbf{b}}_x & \tilde{\mathbf{b}}_y \end{bmatrix}$
  • Angenommen, dass das Referenzkoordinatensystem aufgespannt wird durch:
    $\mathbf{e}_x = \begin{pmatrix}1 \\ 0 \end{pmatrix}$ und $\mathbf{e}_y = \begin{pmatrix}0 \\ 1 \end{pmatrix}$
  • Dann gilt:
    $\tilde{\mathbf{b}}_x = \mathrm{f}(\mathbf{e}_x) = \begin{bmatrix}m_{11} & m_{12}\\ m_{21} & m_{22} \end{bmatrix} \begin{pmatrix}1 \\ 0 \end{pmatrix} = \begin{pmatrix}m_{11} \\ m_{21} \end{pmatrix}$ und
    $\tilde{\mathbf{b}}_y = \mathrm{f}(\mathbf{e}_y) = \begin{bmatrix}m_{11} & m_{12}\\ m_{21} & m_{22} \end{bmatrix} \begin{pmatrix}0 \\ 1 \end{pmatrix} = \begin{pmatrix}m_{12} \\ m_{22} \end{pmatrix}$
  • Beim Entwurf einer speziellen Transformation muss somit nur überlegt werden, wie die Basisvektoren abgebildet werden (siehe z.B. Herleitung der Rotationsmatrix am Anfang des Kapitels)

Beispiel 1

basetransform1
$x$
$y$
$\mathbf{e}_x$
$\mathbf{e}_y$
$\tilde{\mathbf{b}}_x$
$\tilde{\mathbf{b}}_y$
$\mathbf{p}$
  • Basisvektoren der Referenz-Basis:
    $\mathbf{e}_x = \begin{pmatrix}1 \\ 0 \end{pmatrix}$, $\mathbf{e}_y = \begin{pmatrix}0 \\ 1 \end{pmatrix}$
  • Basisvektoren der neuen Basis:
    $\tilde{\mathbf{b}}_x = \begin{pmatrix}2 \\ 2 \end{pmatrix}$, $\tilde{\mathbf{b}}_y = \begin{pmatrix}-2 \\ 2 \end{pmatrix}$
  • Wie lautet die korrespondierende Transformationsmatrix?
  • Die Transformationsmatrix ergibt sich aus den neuen Basisvektoren im Referenzkoordinatensystem:
    $\mathtt{T}=\begin{bmatrix}\tilde{\mathbf{b}}_x & \tilde{\mathbf{b}}_y \end{bmatrix} = \begin{bmatrix}2 & -2\\ 2 & 2 \end{bmatrix}$
  • Wie lauten die Koordinaten des transformierten Punkts?
  • $\mathbf{p}=\begin{pmatrix}2 \\ 1 \end{pmatrix} \rightarrow \tilde{\mathbf{p}} = \mathtt{T}\, \mathbf{p} = \begin{bmatrix}2 & -2\\ 2 & 2 \end{bmatrix} \begin{pmatrix}2 \\ 1 \end{pmatrix} = \begin{pmatrix}2 \\ 6 \end{pmatrix}$

Beispiel 2

basetransform2
$x$
$y$
$\mathbf{b}_x$
$\mathbf{b}_y$
$\tilde{\mathbf{b}}_x$
$\tilde{\mathbf{b}}_y$
$\mathbf{p}$
  • Basisvektoren der Referenz-Basis:
    $\mathbf{b}_x = (2, -1)^\top$, $\mathbf{b}_y = (-1, 2)^\top$
  • Basisvektoren der neuen Basis im globalen Koordinatensystem:
    $\tilde{\mathbf{b}}_x = (3, 0)^\top$, $\tilde{\mathbf{b}}_y = (1, -2)^\top$
  • Wie lauten die neuen Basisvektoren ausgedrückt durch die Basisvektoren der Referenz-Basis?
  • $\tilde{\mathbf{b}}_x = 2 \mathbf{b}_x + \mathbf{b}_y$, $\tilde{\mathbf{b}}_y = 0 \mathbf{b}_x + (-1) \mathbf{b}_y$
  • Im Referenzkoordinatensystem gilt somit:
    $\mathtt{T}= \begin{bmatrix} 2& 0\\ 1 & -1 \end{bmatrix}$
    $\mathbf{p} = \begin{pmatrix}-1 \\ 0 \end{pmatrix} \rightarrow \tilde{\mathbf{p}} = \mathtt{T}\, \mathbf{p} = \begin{bmatrix}2 & 0\\ 1 & -1 \end{bmatrix} \begin{pmatrix}-1 \\ 0 \end{pmatrix} = \begin{pmatrix}-2 \\ -1 \end{pmatrix}$
  • Damit ergibt sich im globalen Koordinatensystem: $\tilde{\mathbf{p}} = -2 \mathbf{b}_x + (-1) \mathbf{b}_y = (-3, 0)^\top$

Homogene Koordinaten

Homogene Koordinaten

  • Wie das Beispiel gezeigt hat, lassen sich Skalierung und Rotation im $\mathbb{R}^2$ durch eine lineare Abbildung mittels einer $2 \times 2$ Matrix $\mathtt{M}$ darstellen. Eine Rotation und Skalierung per Matrixmultiplikation ist also schon erreicht:
    $\tilde{\mathbf{p}} = \mathtt{M} \,\mathbf{p}$
  • Soll ein Punkt zusätzlich transliert werden, muss der Translationsvektor $\mathbf{t}$ hinzuaddiert werden
    $\tilde{\mathbf{p}} = \mathtt{M} \,\mathbf{p} + \mathbf{t}$
  • Die Verwendung von homogenen Koordinaten erlaubt, dies weiter zu vereinheitlichen und die Translation ebenfalls als lineare Abbildung (Matrixmultiplikation) zu implementieren

Homogene Koordinaten

  • Trick: Ein Punkt $\mathbf{p}$ wird nicht mehr als 2-Vektor $\mathbf{p}=(x,y)^\top \in \mathbb{R}^2$ dargestellt, sondern erhält eine zusätzliche Komponente
    $\underline{\mathbf{p}}=\begin{pmatrix} x \\ y \\ 1 \end{pmatrix} \in \mathbb{H}^2$
  • Dies wird als Darstellung des Punktes in homogenen Koordinaten bezeichnet
  • Damit kann ein transformierter Punkt $\underline{\tilde{\mathbf{p}}}$ dargestellt werden durch:
    $\underline{\tilde{\mathbf{p}}} = \begin{pmatrix} \tilde{x} \\ \tilde{y} \\ 1 \end{pmatrix} = \begin{bmatrix}m_{11} & m_{12} & t_x\\ m_{21} & m_{22} & t_y \\ 0 & 0 & 1\end{bmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} $
    $\underline{\tilde{\mathbf{p}}} = \underbrace{\begin{bmatrix}\mathtt{M}& \mathbf{t} \\ \mathbf{0} & 1\end{bmatrix}}_{ \mathtt{T}} \underline{\mathbf{p}}$
    $\underline{\tilde{\mathbf{p}}} = \mathtt{T} \underline{\mathbf{p}}$
  • Die einheitliche Anwendung von Tranformationen (Rotation, Skalierung und Translation) als Matrix-Vektor-Multipikation ist damit erreicht

Homogene Koordinaten

  • Wenn die letzte Zeile der Matrix $\mathtt{T}$ nicht die spezielle Form $(0, 0, 1)$ hat, ist die dritte Koordinate von $\underline{\tilde{\mathbf{p}}}$ nicht notwendigerweise gleich 1
    $\underline{\tilde{\mathbf{p}}} = \begin{pmatrix} u \\ v \\ w \end{pmatrix} = \begin{bmatrix}t_{11} & t_{12} & t_{13}\\ t_{21} & t_{22} & t_{23} \\ t_{31} & t_{32} & t_{33}\end{bmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} $
  • In diesem Fall können die kartesischen Koordinaten $(x, y)^\top$ nicht mehr direkt aus den homogenen Koordinaten ablesen werden
  • Es gilt stattdessen folgende Berechnungsvorschrift für die Umrechnung eines homogenen Punkts in kartesische Koordinaten:
    $\underline{\mathbf{p}}=\begin{pmatrix} u \\ v \\ w \end{pmatrix} \in \mathbb{H}^2 \rightarrow \mathbf{p} = \begin{pmatrix} x \\ y \\ \end{pmatrix} = \begin{pmatrix} \frac{u}{w} \\ \frac{v}{w} \\ \end{pmatrix} \in \mathbb{R}^2$
  • Wird der homogene Punkt mit einem Faktor $\lambda$ skaliert, hat dies keine Auswirkung auf die kartesischen Koordinaten:
    $\lambda \underline{\mathbf{p}}=\begin{pmatrix} \lambda u \\ \lambda v \\ \lambda w \end{pmatrix} \in \mathbb{H}^2 \rightarrow \mathbf{p} = \begin{pmatrix} x \\ y \\ \end{pmatrix} = \begin{pmatrix} \frac{\lambda u}{\lambda w} \\ \frac{\lambda v}{\lambda w} \\ \end{pmatrix} = \begin{pmatrix} \frac{u}{w} \\ \frac{v}{w} \\ \end{pmatrix} \in \mathbb{R}^2$

Homogene Koordinaten

homogenous_projection
Ebene $z=1$
$x$
$y$
$z$
$\mathbb{R}^3$ bzw. $\mathbb{H}^2$
$\lambda \underline{\mathbf{p}}$
$\mathbf{p}$
  • D.h. bei Skalierung mit $\lambda=\frac{1}{w}$ entsprechen die ersten zwei Koordinaten eines homogenen Punkts direkt die korrespondierenden kartesischen Koordinaten
    $\lambda \underline{\mathbf{p}}=\begin{pmatrix} \lambda u \\ \lambda v \\ \lambda w \end{pmatrix} = \begin{pmatrix} x \\ y\\ 1 \end{pmatrix}$, wenn $\lambda=\frac{1}{w}$
  • Bei Interpretation von $\underline{\mathbf{p}}$ als Element des $\mathbb{R}^3$ kann die Skalierung mit $\lambda=\frac{1}{w}$ geometrisch als Projektion eines Punkts auf die Ebene $z=1$ interpretiert werden
  • Aufgrund dieser Eigenschaft bilden die homogenen Koordinaten die Grundlage der sogenannten projektiven Geometrie, die besonders für die geometrische Beschreibung von Kameras später noch interessant wird
  • Alle Punkte entlang der Geraden vom Koordinatenursprung zum Punkt $\underline{\mathbf{p}}$ werden auf den gleichen Punkt auf der Ebene $z=1$ abgebildet.
  • Dies bedeutet, dass jedes Element aus $\mathbb{R}^2$ einer Geraden im $\mathbb{H}^2$ entspricht

Klassifizierung von Transformationen

tranformation_compare
translatorisch
isometrisch
ähnlich
affine
projektiv
  • Translation; Translation und Rotation (Isometrien)
    $\mathtt{T} = \begin{bmatrix}1 & 0& t_x\\ 0 & 1 & t_y \\ 0 & 0 &1\end{bmatrix}$; $\mathtt{T} = \begin{bmatrix} \cos \alpha & - \sin \alpha & t_x\\ \sin \alpha & \cos \alpha & t_y \\ 0 & 0 &1\end{bmatrix} $
  • Translation, Rotation und Skalierung (Ähnlichkeitsabbildung)
    $\mathtt{T} = \begin{bmatrix} s \cos \alpha & -s \sin \alpha & t_x\\ s \sin \alpha & s \cos \alpha & t_y \\ 0 & 0 &1\end{bmatrix} $
  • Affine Abbildungen
    $\mathtt{T} = \begin{bmatrix} t_{11} & t_{12} & t_{13}\\ t_{21} & t_{22} & t_{23} \\ 0 & 0 &1\end{bmatrix} $
  • Projektive Abbildungen
    $\mathtt{T} = \begin{bmatrix} t_{11} & t_{12} & t_{13}\\ t_{21} & t_{22} & t_{23} \\ t_{31} & t_{32} & t_{33}\end{bmatrix} $

Gibt es Fragen?

questions

Anregungen oder Verbesserungsvorschläge können auch gerne per E-mail an mich gesendet werden: Kontakt

Weitere Vorlesungsfolien

Folien auf Englisch (Slides in English)