Projections And Vanishing Points

Homogene Koordinaten

Punkte

(1)
\begin{align} [x, y, z]^T \rightarrow [wx, wy, wz, w]^T, w \neq 0 \end{align}

Vektoren

(2)
\begin{align} [x, y, z]^T \rightarrow [x, y, z, 0]^T \end{align}

Dehomogenisierung

Durch die letzte Komponente teilen:

(3)
\begin{align} [wx, wy, wz, w]^T \rightarrow [x, y, z, 1]^T \end{align}

Standardprojektion

(4)
\begin{align} [x, y, z]^T \rightarrow \left[ {x \over z}, {y \over z} \right]^T \end{align}

mit Projektionszentrum $[0,0,0]^T$ und Projektionsebene bei $z = -1$.
Als Matrix:

(5)
\begin{align} P = \left( \begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & -1 & 0 \\ \end{array} \right) \end{align}

Nach der Dehomogenisierung ergibt sich mit $v = [wx, wy, wz, w]^T$

(6)
\begin{align} Pv = [wx, wy, wz, -wz]^T \rightarrow [-{x \over z}, - {x \over z}, 1, -1]^T \end{align}

Bei dieser Matrix wird davon ausgegangen, daß der Betrachter in Richtung der negativen z-Achse guckt und die Bildebene orthogonal zur z-Achse ist. Über den Umweg der homogegen Koordinaten wird ein Punkt perspektivisch verkürzt, je weiter er vom Betrachter weg ist, bzw. je kleiner seine z-Koordinate ist (nicht vergessen, negative z-Achse).

Generelle Projektion I

Gegeben:

  • Fokaldistanz $\delta$
  • Normale der Projektionsebene $n$
  • Zentrum der Projektion ist $[0,0,0]^T$

Bildchen malen!

Die Projektion $q'$ von $q$ wird mit

(7)
\begin{align} q' = {\delta \over n^Tq} q, \end{align}

berechnet. Als Matrix:

(8)
\begin{align} P_I = \left( \begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ \frac{n_x}{\delta} & \frac{n_y}{\delta} & \frac{n_z}{\delta} & 0 \\ \end{array} \right) \end{align}

Der Faktor ${\delta \over n^Tq}$ befindet sich dann als Kehrwert in der 4. Komponente, eine Dehomogenisierung liefert das gewünschte Ergebnis.

Generelle Projektion II

Gegeben:

  • Projektionsebene durch den Ursprung, Normalenvektor $n$
  • Fokaldistanz $\delta$
  • Zentrum der Projektion ist $-\delta n$

Bildchen!

Zuerst wird die orthogonale Projektion von $q$ auf die Projektionsebene berechnet:

(9)
\begin{equation} q' = q - nn^Tq = (I-nn^T)q \end{equation}

Die Projektion $q''$ von $q$ ist dann

(10)
\begin{align} q'' = \alpha q' \end{align}

Mit

(11)
\begin{eqnarray} {a \over b} = {a' \over b'}, {a \over b} = {\delta \over n^Tq}, \\ {a' \over b'} = {\delta \over n^Tq}, \\ \alpha = {a' \over a' + b'} = {\delta \over \delta + n^Tq}. \end{eqnarray}

Also

(12)
\begin{eqnarray} q'' = q' / {\delta + n^Tq \over \delta } = q' / \left({n^Tq \over \delta }+1 \right) \\ = (I-nn^T)q / \left({n^Tq \over \delta }+1 \right). \end{eqnarray}

Als Matrix

(13)
\begin{align} P_{II} = \left( \begin{array}{clc} & 0 \\ (I - nn^T) & 0 \\ & 0 \\ {n^T \over \delta } & 1 \\ \end{array} \right) \end{align}

oder ausgeschrieben

(14)
\begin{align} M = \left( \begin{array}{cccc} 1-n_x^2 & n_x\cdot n_y & n_x\cdot n_z & 0 \\ n_x\cdot n_y & 1-n_y^2 & n_y\cdot n_z & 0 \\ n_x\cdot n_z & n_y\cdot n_z & 1-n_z^2 & 0 \\ \frac{n_x}{\delta} & \frac{n_y}{\delta} & \frac{n_z}{\delta} & 1 \\ \end{array} \right) \end{align}

Die obere 3x3-Matrix berechnet $p'$ und die untere Zeile den Nenner, um mit einer Dehomogenisierung $p''$ zu erhalten.

Fluchtpunkte

Wie verhält sich eine Gerade

(15)
\begin{align} L(\lambda) = \left( \begin{array}{c} x+\lambda \Delta x \\ y+\lambda \Delta y \\ z+\lambda \Delta z \\ \end{array} \right), \end{align}

wenn wir $\lambda \to \infty$ streben lassen?
Die Standardprojektion der Geraden:

(16)
\begin{align} PL(\lambda)= \left( \begin{array}{c} {x+\lambda \Delta x \over z+\lambda \Delta z}\\ {y+\lambda \Delta y \over z+\lambda \Delta z}\\ \end{array} \right) \end{align}

Für die $x$-Koordinate gilt:

  1. $\Delta z = 0$:
(17)
\begin{align} \lim_{\lambda\to\infty} {x+\lambda \Delta x \over z} \to \infty \end{align}
  1. $\Delta z \not= 0$:
(18)
\begin{align} \lim_{\lambda\to\infty}{ {1\over\lambda}x+ \Delta x \over{1\over\lambda} z+ \Delta z} \to {\Delta x \over \Delta z} \end{align}

Für die $y$-Koordinate entsprechend.

Fluchtpunkte kann man auch konstruieren, indem die betrachtete Gerade parallelverschoben wird, bis die das Projektionszentrum schneidet. Der Fluchtpunkt ist dann der Schnitt der Geraden mit der Bildebene.

previous next
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-Share Alike 2.5 License.