2012-01-08 16 views
7

Estoy usando cuaterniones en mi juego, y me pregunto cómo, cuando tengo dos cuaterniones de orientación, puedo obtener el cuaternión de rotación necesario para pasar del primero, q1, al segundo, q2. Soy autodidacta, por lo que puede haber soluciones obvias que faltan en mi vocabulario.Cuando tengo dos cuaterniones de orientación, ¿cómo encuentro que el cuaternario de rotación necesita ir de uno a otro?

En las ecuaciones, lo que estoy haciendo cuando me gire desde la primera a la otra es de la siguiente manera: q2 = r * Q1

Sin embargo, ahora r es lo desconocido. ¿Las reglas del álgebra cuentan aquí también? Si ese es el caso, terminaría dividiendo un cuaternión por otro, algo que no puedo encontrar una buena explicación en internet.

estoy usando un programa llamado fabricante de juegos

+1

Es cortés en StackOverflow para elegir una respuesta, marca la pregunta como respondida y recompensa a la persona que proporcionó la mejor respuesta. –

Respuesta

10

Con el fin de "brecha" con un cuaternión, se invierte de manera que es la rotación opuesta. Con el fin de invertir un cuaternión, cambia el signo, ya sea el componente w o los (x, Y, z) componentes, pero no ambos, ya que dejaría con la misma cuaternión que comenzó con (a totalmente el cuaternión negado representa la misma rotación).

Entonces, recuerde que los cuaterniones no son conmutativos. Por lo tanto:

q2 = r*q1 
q2*q1' = r 

Dónde Q1' es el cuaternión invertida y tiene que ser multiplicado en el lado derecho de la Q2 para obtener el resultado correcto.

+0

¡Oh, sí, gracias por tus respuestas! No sabía que invertir y conjugar un cuaternión era lo mismo. ¡Esto resuelve todo! – Sindre

+3

Nota: el conjugado es solo el mismo que el inverso para los cuaterniones unitarios (es decir, cuaterniones de longitud 1). Aquí está bien, ya que los cuaterniones de rotación son cuaterniones de unidades, pero creo que es importante señalar que se trata de un caso especial. – Medo42

Cuestiones relacionadas