1. ROTACIÓN CON CUATERNIONES
La principal ventaja de la utilización de los cuaterniones para representar una rotación
es que se puede evitar el problema de singularidad, esto quiere decir que exista alguna inde-
terminación al querer rotar con un cierto ángulo.
Para poder realizar la rotación con cuaterniones se lleva a cabo un largo proceso operativo
este proceso implica productos escalares y vectoriales. Además de que se deben tomar en
cuenta los operadores a la hora de realizar alguna multiplicación ya que estos influyen en los
signos de cada número. Dentro de los parámetros necesarios para poder realizar rotaciones
con el uso de cuaterniones se necesita un ángulo de rotación, eje de rotación y la función,
objeto o elemento a rotar.
Para poder realizar estas rotaciones por medio del uso de un software de cálculo numérico
se puede utilizar el código que se explicará brevemente.
En la FIGURA 1 se muestra un fragmento del código total, en éste fragmento se encuentra
una función llamada "meshgrid"que mediante la declaración de una variable en este caso X
y Y genera una matriz tanto para X y tanto para Y que contendrá los componentes en el eje
"x2
en el eje 2
"de la función a realizar.
Figura 1: Función meshgrid
En la FIGURA 2 se muestra otro fragmento del código que a continuación se explicará:
En la FIGURA 1 se mostró una variable llamada cen, esta variable sirve para poder
realizar un ciclo con centinela. En la línea 7 de la figura 2 se pide que se ingrese un valor 0
o 1 para poder salir o seguir en el programa. En las líneas 12, 13 y 14 de la misma figura
son para poder pedir los valores de los componentes que forman el eje arbitrario en el que
se quiere rotar al rededor. La variable inc de la línea 16 es para que el programa pida una
especie de resolución o tamaño de paso del ángulo. La variable lim de la línea 18 es para
ingresar el ángulo al que se quiere girar. De la línea 20 a la 22 hay una condición que sirve
para poder saber si se desea girar en sentido positivo o negativo, si el ángulo es negativo la
variable inc se hace negativa haciendo que el valor del tamaño también se haga negativo. La
variable magv es la magnitud de los componentes ingresados en las líneas 12, 13 y 14. En las
líneas 28, 29 y 30 se normalizan los valores de los componentes del eje arbitrario. La variable
eje es un vector con los valores de la normalización que se realizó anteriormente. La variable
Z es la función a graficar, en este caso es una función que se conoce como silla de montar
que está dada por la siguiente ecuación:
Z = X2
− Y 2
La función surf que se muestra en la línea 36 sirve para poder hacer un plano que cubra
o una puntos de una matriz, esta matriz se realizo con anterioridad con la función meshgrid.
En la FIGURA 3 se muestra otro fragmento del código.
El ciclo for que se encuentra en la línea 39 es utilizado para poder visualizar la rotación de
la figura ya que con este ciclo se puede variar el ángulo. El ciclo for de la línea 40 sirve para
poder variar las columnas de las matrices de las componentes x, y, y z de la función "silla".
1
4. El ciclo for que se encuentra en la línea 41 sirve para variar las filas de la matriz que se habló
anteriormente, estos últimos dos ciclos son utilizados para acceder a cada uno de los puntos de
la función "silla". Las variables .A2
.A
n.es el cuaternión normalizado y al cuaternión conjugado
respectivamente, que son necesarios para poder llevar a cabo la operación de rotación. En la
matriz M que se muestra en la línea 47 se agrupan las tres matrices que corresponden a las tres
componentes de la función en x, y y z, ya que que los cuaterniones son de cuatro elementos a la
matriz M se le ingresa un cero al inicio para que puedan corresponder las mismas dimensiones
de los vectores. La función "MULTIPLICACIONrepresenta el producto de cuaterniones que
dicha función tiene como argumentos al cuaternión normalizado, al cuaternión conjugado y
a la matriz que contiene los componentes de la función en tres dimensiones, esta función se
muestra en la FIGURA 4. En las líneas 51 a 53, después de haber llevado a cabo el producto
de los cuaterniones, se realiza una agrupación de los componentes en x, y y z de la figura
para poder aplicar la función surf.
Figura 4: Función para poder realizar el producto de cuaterniones.
4