En este tema, exploraremos las matrices de transformación, que son herramientas fundamentales en álgebra lineal y gráficos en 3D. Las matrices de transformación nos permiten realizar operaciones como rotaciones, traslaciones y escalados en el espacio tridimensional de manera eficiente y compacta.

Contenido

  1. Introducción a las Matrices de Transformación
  2. Tipos de Transformaciones
    • Traslación
    • Escalado
    • Rotación
  3. Composición de Transformaciones
  4. Ejemplos Prácticos
  5. Ejercicios y Soluciones

  1. Introducción a las Matrices de Transformación

Las matrices de transformación son matrices que se utilizan para realizar transformaciones geométricas en el espacio. En el contexto de gráficos en 3D, estas transformaciones incluyen traslaciones, escalados y rotaciones. Una matriz de transformación en 3D es una matriz de 4x4 que se aplica a un vector de coordenadas homogéneas.

Coordenadas Homogéneas

Para trabajar con matrices de transformación en 3D, utilizamos coordenadas homogéneas. Un punto en el espacio 3D \((x, y, z)\) se representa como un vector de coordenadas homogéneas \((x, y, z, 1)\).

  1. Tipos de Transformaciones

Traslación

La traslación desplaza un objeto de un lugar a otro en el espacio. La matriz de traslación \(T\) para desplazar un punto por un vector \((t_x, t_y, t_z)\) es:

\[ T = \begin{bmatrix} 1 & 0 & 0 & t_x
0 & 1 & 0 & t_y
0 & 0 & 1 & t_z
0 & 0 & 0 & 1 \end{bmatrix} \]

Ejemplo:

Para trasladar un punto \((x, y, z)\) por \((3, 4, 5)\):

\[ T = \begin{bmatrix} 1 & 0 & 0 & 3
0 & 1 & 0 & 4
0 & 0 & 1 & 5
0 & 0 & 0 & 1 \end{bmatrix} \]

Escalado

El escalado cambia el tamaño de un objeto. La matriz de escalado \(S\) para escalar un punto por factores \(s_x, s_y, s_z\) es:

\[ S = \begin{bmatrix} s_x & 0 & 0 & 0
0 & s_y & 0 & 0
0 & 0 & s_z & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

Ejemplo:

Para escalar un punto \((x, y, z)\) por factores \(2, 3, 4\):

\[ S = \begin{bmatrix} 2 & 0 & 0 & 0
0 & 3 & 0 & 0
0 & 0 & 4 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

Rotación

La rotación gira un objeto alrededor de un eje. Las matrices de rotación para los ejes \(x\), \(y\) y \(z\) son:

  • Rotación alrededor del eje \(x\) por un ángulo \(\theta\):

\[ R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 & 0
0 & \cos\theta & -\sin\theta & 0
0 & \sin\theta & \cos\theta & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  • Rotación alrededor del eje \(y\) por un ángulo \(\theta\):

\[ R_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta & 0
0 & 1 & 0 & 0
-\sin\theta & 0 & \cos\theta & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  • Rotación alrededor del eje \(z\) por un ángulo \(\theta\):

\[ R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0
\sin\theta & \cos\theta & 0 & 0
0 & 0 & 1 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Composición de Transformaciones

Las transformaciones pueden combinarse multiplicando sus matrices correspondientes. El orden de multiplicación es importante, ya que la multiplicación de matrices no es conmutativa.

Ejemplo:

Para aplicar una rotación alrededor del eje \(z\) seguida de una traslación, la matriz compuesta \(M\) es:

\[ M = T \cdot R_z(\theta) \]

Donde \(T\) es la matriz de traslación y \(R_z(\theta)\) es la matriz de rotación.

  1. Ejemplos Prácticos

Ejemplo 1: Traslación y Escalado

Supongamos que queremos trasladar un punto \((1, 2, 3)\) por \((3, 4, 5)\) y luego escalarlo por factores \(2, 2, 2\).

  1. Matriz de Traslación:

\[ T = \begin{bmatrix} 1 & 0 & 0 & 3
0 & 1 & 0 & 4
0 & 0 & 1 & 5
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Matriz de Escalado:

\[ S = \begin{bmatrix} 2 & 0 & 0 & 0
0 & 2 & 0 & 0
0 & 0 & 2 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Matriz Compuesta:

\[ M = S \cdot T \]

\[ M = \begin{bmatrix} 2 & 0 & 0 & 0
0 & 2 & 0 & 0
0 & 0 & 2 & 0
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0 & 0 & 3
0 & 1 & 0 & 4
0 & 0 & 1 & 5
0 & 0 & 0 & 1 \end{bmatrix} \]

\[ M = \begin{bmatrix} 2 & 0 & 0 & 6
0 & 2 & 0 & 8
0 & 0 & 2 & 10
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Transformación del Punto:

\[ \begin{bmatrix} 2 & 0 & 0 & 6
0 & 2 & 0 & 8
0 & 0 & 2 & 10
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
2
3
1 \end{bmatrix} = \begin{bmatrix} 2 \cdot 1 + 0 \cdot 2 + 0 \cdot 3 + 6 \cdot 1
0 \cdot 1 + 2 \cdot 2 + 0 \cdot 3 + 8 \cdot 1
0 \cdot 1 + 0 \cdot 2 + 2 \cdot 3 + 10 \cdot 1
0 \cdot 1 + 0 \cdot 2 + 0 \cdot 3 + 1 \cdot 1 \end{bmatrix} = \begin{bmatrix} 8
12
16
1 \end{bmatrix} \]

El punto transformado es \((8, 12, 16)\).

  1. Ejercicios y Soluciones

Ejercicio 1

Problema: Realiza una rotación de 90 grados alrededor del eje \(z\) para el punto \((1, 0, 0)\).

Solución:

  1. Matriz de Rotación:

\[ R_z(90^\circ) = \begin{bmatrix} 0 & -1 & 0 & 0
1 & 0 & 0 & 0
0 & 0 & 1 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Transformación del Punto:

\[ \begin{bmatrix} 0 & -1 & 0 & 0
1 & 0 & 0 & 0
0 & 0 & 1 & 0
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 1
0
0
1 \end{bmatrix} = \begin{bmatrix} 0 \cdot 1 + (-1) \cdot 0 + 0 \cdot 0 + 0 \cdot 1
1 \cdot 1 + 0 \cdot 0 + 0 \cdot 0 + 0 \cdot 1
0 \cdot 1 + 0 \cdot 0 + 1 \cdot 0 + 0 \cdot 1
0 \cdot 1 + 0 \cdot 0 + 0 \cdot 0 + 1 \cdot 1 \end{bmatrix} = \begin{bmatrix} 0
1
0
1 \end{bmatrix} \]

El punto transformado es \((0, 1, 0)\).

Ejercicio 2

Problema: Escala el punto \((2, 3, 4)\) por factores \(0.5, 0.5, 0.5\) y luego trasládalo por \((1, 1, 1)\).

Solución:

  1. Matriz de Escalado:

\[ S = \begin{bmatrix} 0.5 & 0 & 0 & 0
0 & 0.5 & 0 & 0
0 & 0 & 0.5 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Matriz de Traslación:

\[ T = \begin{bmatrix} 1 & 0 & 0 & 1
0 & 1 & 0 & 1
0 & 0 & 1 & 1
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Matriz Compuesta:

\[ M = T \cdot S \]

\[ M = \begin{bmatrix} 1 & 0 & 0 & 1
0 & 1 & 0 & 1
0 & 0 & 1 & 1
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 0.5 & 0 & 0 & 0
0 & 0.5 & 0 & 0
0 & 0 & 0.5 & 0
0 & 0 & 0 & 1 \end{bmatrix} \]

\[ M = \begin{bmatrix} 0.5 & 0 & 0 & 1
0 & 0.5 & 0 & 1
0 & 0 & 0.5 & 1
0 & 0 & 0 & 1 \end{bmatrix} \]

  1. Transformación del Punto:

\[ \begin{bmatrix} 0.5 & 0 & 0 & 1
0 & 0.5 & 0 & 1
0 & 0 & 0.5 & 1
0 & 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} 2
3
4
1 \end{bmatrix} = \begin{bmatrix} 0.5 \cdot 2 + 0 \cdot 3 + 0 \cdot 4 + 1 \cdot 1
0 \cdot 2 + 0.5 \cdot 3 + 0 \cdot 4 + 1 \cdot 1
0 \cdot 2 + 0 \cdot 3 + 0.5 \cdot 4 + 1 \cdot 1
0 \cdot 2 + 0 \cdot 3 + 0 \cdot 4 + 1 \cdot 1 \end{bmatrix} = \begin{bmatrix} 2
2.5
3
1 \end{bmatrix} \]

El punto transformado es \((2, 2.5, 3)\).

Conclusión

En esta sección, hemos aprendido sobre las matrices de transformación y cómo se utilizan para realizar traslaciones, escalados y rotaciones en el espacio 3D. También hemos visto cómo componer múltiples transformaciones y aplicado estos conceptos a ejemplos prácticos. Con esta base, estamos preparados para explorar transformaciones más complejas y su aplicación en gráficos 3D.

© Copyright 2024. Todos los derechos reservados