Supongamos que tenemos un cuaternión arbitrario -llamémoslo A-, ¿cómo lo giramos 180 grados?
¿Hay alguna forma de hacerlo sin convertirlo a la representación del eje angular, es decir, mantenerlo dentro del álgebra de cuaterniones?
Supongamos que tenemos un cuaternión arbitrario -llamémoslo A-, ¿cómo lo giramos 180 grados?
¿Hay alguna forma de hacerlo sin convertirlo a la representación del eje angular, es decir, mantenerlo dentro del álgebra de cuaterniones?
No sé a qué te refieres con rotar un cuaternión (que en realidad representa una rotación). Pero supongo que te refieres a concatenar dos quternions siendo uno de ellos una rotación de 180 grados sobre algún eje. En este caso puedes simplemente usar la multiplicación de quaterniones para concatenar dos rotaciones (Raramente hay un caso en el que necesites convertirlos a representación eje-ángulo). El quaternion para una rotación de 180 grados sobre el eje (x,y,z) es simplemente (0,x,y,z).
Entonces, ¿una rotación de 180 grados sobre y es simplemente (0,0,1,0) ? Entonces, ¿simplemente lo multiplicaría por mi rotación actual?
Sí, debería funcionar. Sólo recuerde eje / ángulo de rotación (a, x, y, z) es igual a quaternion (cos(a/2),x sen(a/2),y sin(a/2),z*sin(a/2)).
Pero recuerda el orden de la multiplicación. La de la derecha se aplica primero al rotar un vector por el nuevo cuaternión. Así que (0,0,1,0) * q debería hacer lo que quieres.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.