Je suis un physicien, et ont été à l'apprentissage d'un peu de programmation, et ont rencontré beaucoup de personnes utilisant les quaternions pour les rotations au lieu d'écrire des choses dans la matrice/vecteur forme.
En physique, il y a de très bonnes raisons pour ne pas utiliser les quaternions (malgré l'étrange histoire qui est parfois dit à propos de Hamilton/Gibbs/etc). La physique exige que nos descriptions ont de bonnes analytique de comportement (ce qui a précisément définies sens, mais dans certains, plutôt technique, des moyens qui vont bien au-delà de ce qui est enseigné dans la normale intro classes, donc je ne rentrerai pas dans les détails). Il s'avère que les quaternions n'ont pas cette belle comportement, et donc ils ne sont pas utiles, et les vecteurs/matrices de le faire, de sorte que nous les utilisons.
Toutefois, limité à des rotations et des descriptions qui n'utilisent pas toute analytique des structures, des rotations 3D peut être décrit de manière équivalente de toute façon (ou de quelques autres façons).
Généralement, nous voulons juste une cartographie d'un point X=(x,y,z) à un nouveau point X'=(x',y',z') sous réserve de la contrainte que X^2 = X^2. Et il y a beaucoup de choses qui font cela.
Le naïf façon consiste à dessiner les triangles permet de définir et d'utiliser la trigo, ou utiliser l'isomorphisme entre un point (x,y,z) et d'un vecteur (x,y,z) et la fonction f(X) = X' et une matrice MX=X', ou en utilisant les quaternions, ou de la projection sur les composantes de l'ancien vecteur le long de la nouvelle à l'aide d'une autre méthode (x, y, z)^T.(a,b,c) (x',y',z'), etc, etc.
À partir de maths point de vue, ces descriptions sont équivalentes dans ce milieu (comme un théorème). Ils ont tous le même nombre de degrés de liberté, le même nombre de contraintes, etc.
Alors, pourquoi ne quaternions semblent privilégiées sur les vecteurs?
Les raisons d'habitude je vois pas gimbal lock, ou numérique des problèmes.
Le pas de gimbal lock argument me semble bizarre, car ce n'est qu'un problème d'angles d'euler. Il est également à seulement coordonner problème (tout comme la singularité en r=0 en coordonnées polaires (le Jacobien perd rang)), ce qui signifie qu'il est seulement un problème local, et peut être résolu en changeant les coordonnées, la rotation de la dégénérescence, ou à l'aide de deux chevauchement des systèmes de coordonnées.
Je suis moins sûr de numérique des problèmes, car je ne sais pas en détail comment ces deux (et les solutions de rechange) serait mis en place. J'ai lu que la re-normalisation d'un quaternion est plus facile que de le faire que pour une matrice de rotation, mais cela n'est vrai que pour une matrice; une rotation des contraintes supplémentaires qui banalise ce (qui sont construits dans la définition de quaternions) (En fait, ceci doit être vrai car ils ont le même nombre de degrés de liberté).
Quelle est donc la raison pour l'utilisation de quaternions sur des vecteurs ou d'autres alternatives?