SaintAmand a écrit:Composer des rotations reviens à multiplier des matrices, et pas n'importe lesquelles, des matrices orthogonales. Or cette opération n'est pas stable. Les erreurs s'accumulent, et rapidement tu te retrouves avec des matrices qui ne sont plus orthogonales donc qui ne représentent plus des rotations. C'est génant. Avec les quaternions on évite ce problème car tout quaternion représente une rotation.
De plus avec les quaternions, 4 nombres suffisent à représenter une rotation contre 9 pour les matrices.
Bon supposons que je travaille dans un univers 3D. Je possède une caméra sur laquelle j'associe une matrice qui regroupe les 3 vecteurs sur les axes x,y et z.
Lorsque je bouge la souris, ma caméra doit suivre le mouvement de la souris.
Je multiplie donc ma matrice de départ avec les matrices de rotations suivant mes deux principaux axes. Et j'obtiens bien la nouvelle position de ma caméra.
J'ai pu voir également que l'utilisation des quaternions me donne le même résultat (en gros ma caméra tourne suivant comment je bouge ma souris).
J'ai donc un peu de mal à comprendre pourquoi l'utilisation des quaternions serait plus avantageux que les matrices 3*3 (Mis à part le côté optimisation de mémoire).
J'ai également dû mal à comprendre les erreurs que peuvent générer les rotations par des matrices 3*3.
Je n'avais jamais vu que pour multiplier des matrices il fallait que les matrices soient orthogonales.
Pourquoi est-il nécessaire que ces matrices soient orthogonales ?
Merci encore pour vos explications, je vais finir par voir l'utilité de ses satanés quaternions :mur: