Transformaciones 3D: Rotación, Escalado y Cizallamiento

Transformaciones 3D: Rotación, Escalado y Cizallamiento

En el mundo de los gráficos por computadora, las transformaciones 3D son una herramienta fundamental para manipular objetos y crear animaciones. Estas transformaciones permiten modificar la posición, forma y orientación de los objetos en el espacio tridimensional. Las transformaciones más comunes incluyen la rotación, el escalado y el cizallamiento.

Rotación en 3D

La rotación en 3D es un poco más compleja que en 2D, ya que requiere no solo un ángulo de rotación, sino también un eje alrededor del cual se realiza la rotación. En otras palabras, un objeto puede rotar alrededor del eje X, Y o Z. Para representar la rotación, se utilizan matrices de rotación 3D, que son matrices de 3×3 que describen la transformación.

Matriz de rotación alrededor del eje X

La matriz de rotación alrededor del eje X se define de la siguiente manera:


[ 1 0 0 ]
[ 0 cos θ -sin θ ]
[ 0 sin θ cos θ ]

Donde θ representa el ángulo de rotación.

Matriz de rotación alrededor del eje Y

La matriz de rotación alrededor del eje Y se define como:


[ cos θ 0 sin θ ]
[ 0 1 0 ]
[ -sin θ 0 cos θ ]

Donde θ representa el ángulo de rotación.

Matriz de rotación alrededor del eje Z

La matriz de rotación alrededor del eje Z se define como:


[ cos θ -sin θ 0 ]
[ sin θ cos θ 0 ]
[ 0 0 1 ]

Donde θ representa el ángulo de rotación.

Escalado en 3D

El escalado en 3D es una transformación que cambia el tamaño de un objeto. Se realiza mediante factores de escala, uno para cada dimensión.

Fórmula matemática para aplicar el escalado

Para aplicar el escalado a un punto (x, y, z) mediante los factores de escala (Sx, Sy, Sz), se utiliza la siguiente fórmula:

LEER:  Slice vs Splice en Javascript: La Diferencia Explicada con un Pastel


x' = x * Sx
y' = y * Sy
z' = z * Sz

Donde (x’, y’, z’) son las nuevas coordenadas del punto después de la transformación.

Matriz de escalado

La matriz de escalado en 3D se define como:


[ Sx 0 0 ]
[ 0 Sy 0 ]
[ 0 0 Sz ]

Cizallamiento en 3D

El cizallamiento es una transformación que deforma la forma de un objeto. En 3D, podemos realizar el cizallamiento a lo largo de los ejes X, Y o Z.

Cizallamiento en el eje X

El cizallamiento en el eje X deforma un objeto a lo largo del plano YZ. La matriz de cizallamiento en X se define como:


[ 1 kx ky ]
[ 0 1 0 ]
[ 0 0 1 ]

Donde kx y ky son los factores de cizallamiento en el eje Y y Z respectivamente.

Cizallamiento en el eje Y

El cizallamiento en el eje Y deforma un objeto a lo largo del plano XZ. La matriz de cizallamiento en Y se define como:


[ 1 0 0 ]
[ ky 1 kx ]
[ 0 0 1 ]

Donde kx y ky son los factores de cizallamiento en el eje X y Z respectivamente.

Cizallamiento en el eje Z

El cizallamiento en el eje Z deforma un objeto a lo largo del plano XY. La matriz de cizallamiento en Z se define como:


[ 1 0 0 ]
[ 0 1 0 ]
[ kz ky 1 ]

Donde kx y ky son los factores de cizallamiento en el eje X y Y respectivamente.

Resumen de las matrices de transformación

Las matrices de transformación son una forma compacta y eficiente de representar las operaciones de transformación en 3D. La siguiente tabla resume las matrices de transformación para cada operación:

| Transformación | Matriz |
|—|—|
| Traslación | [ 1 0 0 Tx ]
[ 0 1 0 Ty ]
[ 0 0 1 Tz ] |
| Escalado | [ Sx 0 0 ]
[ 0 Sy 0 ]
[ 0 0 Sz ] |
| Cizallamiento en X | [ 1 kx ky ]
[ 0 1 0 ]
[ 0 0 1 ] |
| Cizallamiento en Y | [ 1 0 0 ]
[ ky 1 kx ]
[ 0 0 1 ] |
| Cizallamiento en Z | [ 1 0 0 ]
[ 0 1 0 ]
[ kz ky 1 ] |
| Rotación alrededor del eje X | [ 1 0 0 ]
[ 0 cos θ -sin θ ]
[ 0 sin θ cos θ ] |
| Rotación alrededor del eje Y | [ cos θ 0 sin θ ]
[ 0 1 0 ]
[ -sin θ 0 cos θ ] |
| Rotación alrededor del eje Z | [ cos θ -sin θ 0 ]
[ sin θ cos θ 0 ]
[ 0 0 1 ] |

LEER:  Documentación Java: Guía Completa de Javadoc

Aplicaciones de las transformaciones 3D

Las transformaciones 3D tienen numerosas aplicaciones en gráficos por computadora, incluyendo:

  • Modelado 3D: Las transformaciones se utilizan para crear objetos 3D complejos a partir de formas básicas.
  • Animación: Las transformaciones se utilizan para mover y deformar objetos 3D a lo largo del tiempo, creando animaciones.
  • Renderizado: Las transformaciones se utilizan para colocar y orientar la cámara y las luces en una escena 3D.
  • Simulación: Las transformaciones se utilizan para modelar el movimiento y la interacción de objetos en simulaciones físicas.

Conclusión

Las transformaciones 3D son una herramienta esencial en gráficos por computadora. Permiten a los desarrolladores manipular objetos 3D de manera flexible y crear mundos virtuales complejos e interactivos. Al comprender los conceptos básicos de las transformaciones 3D, como la rotación, el escalado y el cizallamiento, los programadores pueden desarrollar aplicaciones gráficas de alta calidad.