viernes, 9 de octubre de 2009

Transformaciones en coordenadas homogéneas

Las transformaciones más comunes en graficación son escala, rotación y traslación.

Combinación de transformaciones

Usualmente se requiere hacer varias transformaciones, como una escala seguida de una rotación. Si se requiere rotar un objeto alrededor de su propio centro, primero hay que trasladarlo al origen, luego rotarlo y finalmente regresarlo a su posición inicial. Conviene pues conocer las transformaciones inversas.

Forma matricial

Multiplicación de matrices con matrices y con vectores, matriz idéntica o identidad, traspuesta, inversa.

Escala

\begin{displaymath} \left(\begin{array}{c} x'\\ y'\end{array}\right)=\left(\beg... ...nd{array}\right)\left(\begin{array}{c} x\\ y\end{array}\right)\end{displaymath}

Rotación


\begin{displaymath} \left(\begin{array}{c} x'\\ y'\end{array}\right)=\left(\beg... ...nd{array}\right)\left(\begin{array}{c} x\\ y\end{array}\right)\end{displaymath}

¿Traslación? No se puede, a menos que extendamos una dimension las matrices, lo que significa agregarles una columna y un renglón y a los vectores un componente. Un vértice homogéneo se representa por $(x,y,z,w)$ y corresponde al punto tridimensional $(x/w,y/w,z/w)$, a menos que $w=0$, en cuyo caso representa un punto al infinito idealizado.

La traslación queda entonces:


\begin{displaymath} \left(\begin{array}{c} x'\\ y'\\ 1\end{array}\right)=\left... ...ray}\right)\left(\begin{array}{c} x\\ y\\ 1\end{array}\right)\end{displaymath}

De esta manera existe una representación matricial para cada transformación. Lo más interesante es que ahora se pueden combinar distintas transformaciones. Por ejemplo, supongamos que queremos rotar un objeto alrededor de su centro, el cual está en $(t_{x},t_{y})$ :


\begin{displaymath} \left(\begin{array}{c} x'\\ y'\\ 1\end{array}\right)=\left... ...ray}\right)\left(\begin{array}{c} x\\ y\\ 1\end{array}\right)\end{displaymath}

No hay comentarios:

Publicar un comentario