Comment faire pivoter un objet autour d'un point à l'aide des quaternions?

Dans mon application 3D-je stocker la position de l'objet dans un vecteur et c'est la rotation autour de l'origine dans un quaternion. J'ai besoin de faire pivoter l'objet autour d'un vecteur avec une origine arbitraire. J'ai essayé la conversion de la position - vectorOrigin et de la rotation dans une matrice de la rotation de la matrice, puis l'extraction de la position et la rotation d'un vecteur et d'un quaternion de la matrice résultante. La position arrive ok, mais la rotation reste constante (l'objet tourne autour du vecteur donné, mais il fait toujours face à la même direction).

Est ma méthode de mal ou dois-je avoir un bug?

OriginalL'auteur user17544 | 2009-05-22