Saltar al contenido

producto escalar de dos rotaciones de cuaterniones

Nuestros desarrolladores estrellas agotaron sus reservas de café, en su búsqueda diariamente por la solución, hasta que Julia halló la respuesta en GitHub y en este momento la comparte aquí.

Solución:

El producto escalar de los cuaterniones es simplemente el producto escalar euclidiano estándar en 4D:

dot = left.x * right.x + left.y * right.y + left.z * right.z + left.w * right.w

Entonces el ángulo que estás buscando es el arccos del producto escalar (nota que el producto escalar no es el ángulo): acos(dot).

Sin embargo, si está buscando la rotación relativa entre dos cuaterniones, digamos desde q1 para q2debe calcular el cuaternión relativo q = q1^-1 * q2 y luego encuentre la rotación asociada conq.

Solo NOTA: acos (punto) no es muy estable desde el punto de vista numérico.

como se dijo anteriormente, q = q1^-1 * q2 y que angulo = 2*atan2(q.vec.length(), qw)

¿Debería ser 2 x acos (punto) para obtener el ángulo entre cuaterniones?

Aquí puedes ver las comentarios y valoraciones de los lectores

Si entiendes que te ha sido de utilidad este post, nos gustaría que lo compartas con otros desarrolladores de esta forma nos ayudas a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *