Computergrafik
Homogene Koordinaten
← Affine Transformationen | ● | Dehomogenisierung →
Homogene Schreibweise von Ortsvektoren (z.B. Punkte) und Richtungsvektoren (z.B. Normalen) durch eine zusätzliche w-Koordinate
- Punkt $\vec{P}=(p_x, p_y, p_z)^T$ → $(P_x, P_y, P_z, 1)^T$
- Richtung $\vec{d}=(d_x, d_y, d_z)^T$ → $(d_x, d_y, d_z, 0)^T$
Homogene, d.h. einheitliche Darstellung von Orts- und Richtungsvektoren durch w=0 oder 1.
Eine Starrkörper-Transformation eines Punktes läßt sich durch die Multiplikation mit einer Matrix M in homogenen Koordinaten beschreiben:
$ R\vec{v}+\vec{t} = M\vec{v} $ mit $ M = \left( \begin{array}{c c c c} R_{00} & R_{10} & R_{20} & t_x \\ R_{01} & R_{11} & R_{21} & t_y \\ R_{02} & R_{12} & R_{22} & t_y \\ 0 & 0 & 0 & 1 \end{array} \right) $ und $\vec{v} = \left( \begin{array}{c} v_x \\ v_y \\ v_z \\ 1 \end{array} \right)$
Beweis durch Ausmultiplizieren:
$ R\vec{v}+\vec{t} = M\vec{v} = \left( \begin{array}{c c c c} R_{00} & R_{10} & R_{20} & t_x \\ R_{01} & R_{11} & R_{21} & t_y \\ R_{02} & R_{12} & R_{22} & t_y \\ 0 & 0 & 0 & 1 \end{array} \right) \left( \begin{array}{c} v_x \\ v_y \\ v_z \\ 1 \end{array} \right) $
$ = \left( \begin{array}{c} R_{00}v_x + R_{10}v_y + R_{20}v_z + t_x\cdot 1 \\ R_{01}v_x + R_{11}v_y + R_{21}v_z + t_y\cdot 1 \\ R_{02}v_x + R_{12}v_y + R_{22}v_z + t_z\cdot 1 \\ 1 \end{array} \right)$
$ = \left( \begin{array}{c} R_{00}v_x + R_{10}v_y + R_{20}v_z + t_x\cdot 1 \\ R_{01}v_x + R_{11}v_y + R_{21}v_z + t_y\cdot 1 \\ R_{02}v_x + R_{12}v_y + R_{22}v_z + t_z\cdot 1 \\ 1 \end{array} \right)$
Jede affine Transformation (auch eine Translation) ist eine Multiplikation mit einer 4×4 Matrix in homogenen Koordinaten!