Dans mon application 3D, je stocke la position de l'objet dans un vecteur et sa rotation autour de l'origine dans un quaternion. J'ai besoin de faire pivoter l'objet autour d'un vecteur d'origine arbitraire. J'ai essayé de convertir la position - vectorOrigin et la rotation en une matrice, en faisant tourner la matrice puis en extrayant la position et la rotation comme un vecteur et un quaternion de la matrice résultante. La position revient bien, mais la rotation reste constante (l'objet tourne autour du vecteur donné mais il fait toujours face dans le même sens).Comment faire pivoter un objet autour d'un point à l'aide de quaternions?
Ma méthode est-elle incorrecte ou ai-je un bogue?
Voici ce que je faisais. L'objet se déplace autour d'un vecteur d'origine arbitraire, mais il est toujours orienté dans la même direction. Je devrais faire face à l'origine du vecteur. J'ai édité la question pour clarifier mon algorithme. – user17544
Si je comprends bien, vous devez ajouter une autre rotation, autour d'un vecteur parallèle à celui que vous avez mentionné, mais qui passe par le * centre * de l'objet. –
Vous avez raison. Je l'ai résolu en faisant tourner l'objet autour de son centre puis en faisant tourner la position de l'objet autour du vecteur donné. – user17544