Otro tutorial de Quaternions

Existen muchos tutoriales que explican qué son los quaternions, sin embargo parece que están orientados a un público que ya tiene desarrollada cierta “intuición matemática”, es decir, han tenido contacto moderado o alto con álgebra abstracta, topología, teoría de categorías, entre otros.

Están plagados de tecnicismos, tanto así que comienzan definiendo a los quaternions como el cubrimiento doble del grupo SO(3). Es decir. aún no son accesibles para la mayoría de estudiantes y/o profesionales de ciencias de la computación.

En este post voy a explicar qué son los quaternions a un nivel accesible para gente interesada en sus aplicaciones en computación gráfica.

Entonces, comencemos por el principio de todo: los números complejos.

Los números complejos representan rotaciones

El matemático Sir William Rowan Hamilton paso 20 años de su vida tratando de representar las rotaciones en 3 dimensiones de manera similar a como los números complejos pueden representar rotaciones en el plano, y lo consiguió en 1843. En la época de Hamilton no existía todavía el álgebra vectorial, es decir, no se contaba con la noción de espacio vectorial, productor interior, producto cruz, etc. Las teoría de matrices no estaba desarrollada al punto que no existía una notación estándar para describir un conjunto de m ecuaciones con n variables. Así que Hamilton tuvo que desarrollar todas estas ideas antes de poder descubrir los quaternions, sin dudas fue un ¡genio!.

Hamilton conocía que los números complejos de norma = 1 pueden ser interpretados como rotores. Por ejemplo, el número:

R = \cos \theta + i \sin \theta

Representa la rotación de \theta radianes al rededor del origen. Hay que prestar atención a que la norma de R es unitaria, es decir \|R\| = 1.

De modo que si tenemos el vector 2d v = x + i y, y queremos rotarlo \theta radianes en el origen para hallar el vector v', podemos hacerlo simplemente multiplicandolo por el rotor R:

v' = R v

Cómo funciona esto? veamos con atención:

Continue reading

Advertisements