Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

3 votos

¿Cómo rotar un vector 3D para que sea paralelo a otro vector 3D utilizando cuaterniones?

Tengo un vector (a,b,c) y otro vector (d,e,f) . Estoy intentando rotar (a,b,c) por lo que es paralelo a (d,e,f) utilizando cuaterniones. Necesito ayuda para entender cómo hacer esto.

Hasta ahora he visto que un cuaternión se define como

q = w + xi + yj + zk

entonces tengo

q1 = 0 + ai + bj + ck
q2 = 0 + di + ej + fk

Pero ahora no estoy seguro de qué hacer a continuación...

2voto

rschwieb Puntos 60669

Supongo que por "paralelo" entiendes "apuntando en la misma dirección".

También podemos rotar (d,e,f) en el plano abarcado por v=(d,e,f) y w=(a,b,c) . El eje de rotación se situaría alrededor de un vector perpendicular a este plano tal como a=v×w que se normalizaría a un vector de longitud unitaria u . Por último, necesitaríamos el ángulo de rotación θ que puede consultarse en vw= resolviendo para \theta .

A continuación esquema para utilizar cuaterniones para realizar rotaciones el cuaternión que buscas es q=\cos(\theta/2)+u\sin(\theta/2) . La transformación x\to qxq^{-1} mueve v para apuntar en la misma dirección que w .

i-Ciencias.com

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.

Powered by:

X