En mi aplicación 3D almaceno la posición del objeto en un vector y su rotación alrededor del origen en un cuaternión. Necesito rotar el objeto alrededor de un vector con un origen arbitrario. Traté de convertir la posición - vectorOrigin y la rotación en una matriz, rotando la matriz y luego extrayendo la posición y la rotación como un vector y un cuaternión de la matriz resultante. La posición aparece bien, pero la rotación permanece constante (el objeto gira alrededor del vector dado, pero siempre mira en la misma dirección).¿Cómo rotar el objeto alrededor de un punto usando cuaterniones?
¿Mi método está equivocado o tengo un error?
Esto es lo que estaba haciendo. El objeto se mueve alrededor de un vector con un origen arbitrario, pero siempre está orientado en la misma dirección. Debería enfrentar el origen del vector. Edité la pregunta para aclarar mi algoritmo. – user17544
Si entiendo correctamente, necesita agregar otra rotación, alrededor de un vector paralelo al que usted mencionó, pero que pasa por el * centro * del objeto. –
Tienes razón. Lo resolví girando el objeto alrededor de su centro y luego girando la posición del objeto alrededor del vector dado. – user17544