Tag: cuaternión
Obtener los angulos de rotacion de un quaternion (cuaternión)
by egyware on Sep.12, 2010, under General
Hubo un tiempo (no largo), el cual no sabia como extraer el ángulo de rotación de un cuaternión.
Para empezar no sabia que era un cuaternión aunque los había escuchado, averiguando por internet encontré la definición de ellos (pero como yo no soy matemático no pienso arriesgarme ni a copiar la definición), pero no sabia como extraer el ángulo de rotación ya que lo necesitaba para rotar un objeto en irrlicht. Mi búsqueda termino cuando me tope con esta función q={cos(Ɵ/2),sen(Ɵ/2)r}, donde Ɵ es el ángulo de rotación y r el vector del eje donde se rota un objeto, tal como se muestra en la siguiente imagen
Bueno con esa formula me quedaba más claro, aunque todavía no sabia sacar el ángulo. Para eso me di un caso particular, que la rotación se realiza en un solo eje, entonces tendría valores de r = (1,0,0) , (0,1,0) y (0,0,1). Entonces aplique la función inversa y saque en ángulo.
Por cierto lo hice en C
#include <math.h> //.... float q[4]; //un arreglo para almacenar el quaternion getBodyRotation(body,q); //función que almacena la rotación en un cuaternión //asumo que r = (0,1,0) float angulo = atan2(q[0],q[2]) * 2; //El ángulo obtenido
Bueno solo lo pude hacer para el caso particular donde r es un eje coordenado.
Saludos











