Revista   1 2 3 4  


Rotación de Objetos Tridimensionales Alrededor de una Recta
Implementación en MATHEMATICA
Walter Mora F.
Instituto Tecnológico de Costa Rica
Escuela de Matemática
 
 

Resumen.

Si A es una matriz ortogonal, Av es una rotación del vector v alrededor de un vector u. En este trabajo, a partir de un ángulo $ \theta$ y un eje de rotación u arbitrario, se obtiene una matriz ortogonal que describe esta rotación. Se hace una implemetación en MATHEMATICA y se aplica a algunos objetos tridimensionales (se  incluyen animaciones 3D). También se discute la relación entre los ángulos de Euler y el ángulo y el eje de rotación.

 

Introducción

Cuando se manipulan gráficos tridimensionales por computadora (en animación y simulación, etc.), una tarea muy conveniente es hacer rotaciones de estos objetos alrededor de una recta en el espacio. Cuando el objeto tridimensional es un lista de primitivas y las primitivas son una lista de puntos P = {P1, ... , Pk} entonces, para hacer una animación del objeto tridimensional, que incluya rotaciones, lo mejor es tener una parametrización Pi = Pi($ \theta$) del objeto . La animación es una sucesión de gráficos (frames) obtenidos al hacer variar $ \theta$. Una parametrización de los puntos, para hacer una rotación, se puede lograr con herramientas matriciales (matrices ortogonales). Una maipulación más poderosa de las rotaciones se puede lograr con el álgebra de cuaterniones, con esta última se puede establecer, e manera sencilla, la relación entre la rotación alrededor de un eje y los ángulos de Euler.En las bibliotecas estándar de MATHEMATICA 3.0 (4.0) hay dos alternativas para rotar un objeto tridimensional, una es usando ángulos de Euler (RotateShape[]) y otra es manipulando el ViewPoint (SpinShow[]). Ambas opciones son en general inadecuadas para tareas generales de animación. En el caso de los ángulos de Euler, no hay una relación adecuada entre estos ángulos y un eje de giro arbitrario. Sin embargo, se puede implementar un comando (de manera relativamente sencilla) para la rotación de cualquier objeto tipo Graphiscs3D alrededor de un eje arbitrario.