Transformación compuesta en gráficos 2D

Requisito previo: tipos básicos de transformación 2-D: 
 

  1. Traducción
  2. Escalada
  3. Rotación
  4. Reflexión
  5. Corte de un objeto 2-D

Transformación compuesta: 
como su propio nombre sugiere Composición, aquí combinamos dos o más transformaciones en una sola transformación que es equivalente a las transformaciones que se realizan una tras otra sobre un objeto 2-D. 

Ejemplo: 
Considere que tenemos un objeto 2-D en el que primero aplicamos la transformación T 1 (condición de array 2-D) y luego aplicamos la transformación T 2 (condición de array 2-D) sobre el objeto 2-D y el objeto se transforma , el efecto muy equivalente sobre el objeto 2-D que podemos obtener multiplicando T 1 y T 2 (condiciones de la array 2-D) entre sí y luego aplicando el T 12 (resultante de T 1 XT 2 ) con las coordenadas del Imagen 2-D para obtener la imagen final transformada. 

Problema: 
Considere que tenemos un cuadrado O (0, 0), B (4, 0), C (4, 4), D (0, 4) en el que primero aplicamos T1 (transformación de escala) dado que el factor de escala es Sx = Sy = 0.5 y luego aplicamos T2 (transformación de rotación en el sentido de las agujas del reloj) en 90 * (ángulo), por último realizamos T3 (transformación de reflexión sobre el origen). 

Respuesta: El cuadrado O, A, C, D se parece a: 
 

Cuadrado_dado(Fig.1)

Primero, realizamos una transformación de escala sobre un objeto 2-D: 

Representación de la condición de escala: 
 

\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}Sx&0\\0&Sx\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\

Para la coordenada O(0, 0) : 
O\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}

Para la coordenada B(4, 0) : 
B\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}4\\0\end{bmatrix}\\\\[1ex]B\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}2\\0\end{bmatrix}

Para la coordenada C(4, 4) : 
C\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}4\\4\end{bmatrix}\\\\[1ex]C\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}2\\2\end{bmatrix}

Para la coordenada D(0, 4) : 
D\begin{bmatrix}x\\y\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0\\4\end{bmatrix}\\\\[1ex]D\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}

Objeto 2-D después de escalar: 
 

Figura 2

*Ahora, realizaremos la transformación de rotación en el sentido de las agujas del reloj en la Fig.2 por 90 θ : 

La condición de transformación de rotación de un objeto 2-D sobre el origen es:

\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}cosθ&sinθ\\-sinθ&cosθ\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\\\[1ex] Cos90 = 0 \\ sin90=1

Para la coordenada O(0, 0) : 
O\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}

Para la coordenada B(2, 0) : 
B\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}2\\0\end{bmatrix}\\\\[1ex]B\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\-2\end{bmatrix}

Para la coordenada C(2, 2) : 
C\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}2\\2\end{bmatrix}\\\\[1ex]C\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}2\\-2\end{bmatrix}

Para la coordenada D(0, 2) : 
D\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\2\end{bmatrix}\\\\[1ex]D\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}2\\0\end{bmatrix}

Objeto 2-D después de girar sobre el origen en un ángulo de 90 * : 
 

Fig. 3

*Ahora, realizaremos la tercera última operación en la Fig.3, reflejándola sobre el origen: 

La condición de reflejar un objeto sobre el origen es 
 

\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}x\\y\end{bmatrix}\\\\[1ex]

Para la coordenada O(0, 0) : 
O\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}

Para la coordenada B'(0, 0) : 
B'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&-1\\-1&0\end{bmatrix}*\begin{bmatrix}0\\2\end{bmatrix}\\\\[1ex]B'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}-2\\0\end{bmatrix}

Para la coordenada C'(0, 0) : 
C'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}2\\-2\end{bmatrix}\\\\[1ex]C'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}-2\\2\end{bmatrix}

Para la coordenada D'(0, 0) : 
D'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}-1&0\\0&-1\end{bmatrix}*\begin{bmatrix}0\\-2\end{bmatrix}\\\\[1ex]D'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}

El objeto 2-D final después de reflexionar sobre el origen, obtenemos: 

Figura 4

Nota: El resultado final anterior de la Fig.4 , que obtenemos después de aplicar todas las transformaciones una tras otra de manera serial. También podríamos obtener el mismo resultado combinando todas las condiciones de la array bidimensional de transformación y multiplicándolas entre sí y obteniendo una resultante de la multiplicación (R). Luego, aplicando esa array resultante 2D (R) en cada coordenada del cuadrado dado (arriba). Por lo tanto, obtendrá el mismo resultado que tiene en la Fig.4. 

Solución utilizando la transformación compuesta: 
*Primero multiplicamos las condiciones de la array 2-D de la transformación de escala con la transformación de rotación: 

\begin{bmatrix}R_1\end{bmatrix}=\begin{bmatrix}0.5&0\\0&0.5\end{bmatrix}*\begin{bmatrix}0&1\\-1&0\end{bmatrix}\\\\[1ex]\begin{bmatrix}\\R_1\end{bmatrix}=\begin{bmatrix}0&0.5\\-0.5&0\end{bmatrix}

* Ahora, multiplicamos la array 2-D resultante (R 1 ) con la tercera última condición de transformación reflejada dada (R 2 ) para obtener la resultante (R): 

\begin{bmatrix}R\end{bmatrix}=\begin{bmatrix}0&0.5\\-0.5&0\end{bmatrix}*\begin{bmatrix}-1&0\\0&-1\end{bmatrix}\\\\[1ex]\begin{bmatrix}\\R\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}

Ahora, aplicaremos la Resultante(R) de la array 2d en cada coordenada del objeto dado (cuadrado) para obtener el objeto final transformado o modificado. 

La primera coordenada transformada O(0, 0) es: 
O\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}0\\0\end{bmatrix}\\\\[1ex]O\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\0\end{bmatrix}

En segundo lugar, la coordenada transformada B'(4, 0) es: 
B'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}4\\0\end{bmatrix}\\\\[1ex]B'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}0\\2\end{bmatrix}

La tercera coordenada transformada C'(4, 4) es: 
C'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}4\\4\end{bmatrix}\\\\[1ex]C'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}-2\\2\end{bmatrix}

La cuarta coordenada transformada D'(0, 4) es: 
D'\begin{bmatrix}x'\\y'\end{bmatrix}=\begin{bmatrix}0&-0.5\\0.5&0\end{bmatrix}*\begin{bmatrix}0\\4\end{bmatrix}\\\\[1ex]D'\begin{bmatrix}\\x'\\y'\end{bmatrix}=\begin{bmatrix}-2\\0\end{bmatrix}

El resultado final del objeto transformado que obtienes sería el mismo que el anterior: 

Publicación traducida automáticamente

Artículo escrito por madhav_mohan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *