unitario soldados quaternion octoniones cuaterniones cuaternio conjugado aplicaciones math ogre3d quaternions

math - soldados - ''Diferencia'' entre dos cuaterniones



octoniones (2)

Estoy trabajando en Ogre, pero es un problema de cuaternión general.

Tengo un objeto, al que aplico un quaternion de rotación Q1 inicialmente. Más tarde, quiero hacerlo como si inicialmente girara el objeto por un cuaternión diferente Q2.

¿Cómo calculo el cuaternión que tomará el objeto, ya girado por Q1, y lo alineo como si todo lo que hice fuera aplicar Q2 a la orientación inicial / predeterminada? Estaba mirando (s) lerping, pero no estoy seguro si esto solo es válido en orientaciones en lugar de rotaciones .


Parece que quieres la inversa de Q1 por Q2. Al transformar a la inversa de Q1, el objeto volverá a girar a su marco original (la orientación inicial, como usted dice), y luego la transformación por Q2 lo hará girar a su nueva orientación.

Tenga en cuenta que la definición estándar de un cuaternión aplica transformaciones en un orden de multiplicación de derecha a izquierda, por lo que deberá calcular esto como Q = Q2 * Q1 ^ {- 1}.


Piénsalo de esta manera

QInitial * QTransition = QFinal

resolver para Transición Q mediante la multiplicación de ambos lados por QInitial ^ {- 1} (^ {- 1} es el conjugado de cuaternión)

QTransition = QFinal * QInitial^{-1}

Es así de fácil.

  • nota a @ Dan Park: si no está de acuerdo con mis cálculos, publique una respuesta a mi respuesta, no cambie los cálculos. Por lo que sé, está bien.