search

Found

info Aperçu

Multipliez deux quaternions (w,x,y,z) avec le produit de Hamilton et obtenez le quaternion résultant, sa norme et l'axe-angle de la rotation 3D.

📘 Mode d'emploi

  1. Saisis les composantes w, x, y, z du quaternion A
  2. Saisis les composantes w, x, y, z du quaternion B
  3. Lis le quaternion composé, la norme et l'axe-angle dans le panneau de résultats

Calculateur de Multiplication de Quaternions

Quaternion A

Opérande gauche (w est la partie scalaire ; x/y/z le vecteur)

Quaternion B

Opérande droite (non commutatif : a × b ≠ b × a)

Résultat q = a × b

w
0.7071
x
0.7071
y
0.0000
z
0.0000
Norme |q|
1.0000
Axe-angle de rotation
90.00° @ (1.00, 0.00, 0.00)
Copié
Article

Calculateur de Multiplication de Quaternions | Compose des rotations 3D avec le produit de Hamilton

Multiplie deux quaternions (w, x, y, z) avec le produit de Hamilton et obtiens le quaternion résultant, sa norme |q| et l'axe-angle de la rotation sur un seul écran. Conçu pour vérifier les calculs de rotation 3D sans suivre seize termes signés à la main.

💡 À propos de cet outil

En 3D, une rotation peut s'écrire avec des angles d'Euler, des matrices ou des quaternions. Les quaternions évitent le blocage de cardan et s'interpolent proprement, ce qui explique leur présence dans les moteurs de jeu, la robotique et le contrôle d'attitude. Pour enchaîner deux rotations, on compose les quaternions correspondants via le produit de Hamilton.

Or ce produit se développe en seize multiplications additionnées et soustraites avec des signes précis. Une seule erreur de signe et le résultat est faux. De plus, le produit n'est pas commutatif : a × b diffère de b × a, si bien qu'inverser l'ordre des opérandes crée un bug discret et difficile à repérer.

Cet outil prend les huit composantes de A et B et calcule les quatre sorties, à partir de w = aw·bw − ax·bx − ay·by − az·bz. Il interprète ensuite le résultat comme quaternion unitaire et en déduit l'axe de rotation (x, y, z) et l'angle. Tu sais ainsi quelle rotation unique représente réellement la composition — pratique pour contrôler une transformation ou vérifier que ton quaternion reste normalisé.

🧐 Questions fréquentes

Quel ordre est correct, A × B ou B × A ? Cela dépend de ta convention. Appliquer d'abord la rotation A puis B s'écrit souvent q = b × a dans les bibliothèques qui pré-multiplient des vecteurs colonnes. Cet outil calcule q = a × b exactement comme affiché ; échange A et B pour t'aligner sur l'ordre de ton moteur.

Pourquoi la norme ne vaut-elle pas exactement 1 ? Parce qu'au moins une de tes entrées n'est pas un quaternion unitaire. Seuls les quaternions unitaires représentent des rotations pures. Divise chaque composante par |q| pour normaliser.

Pourquoi l'axe affiche-t-il (1, 0, 0) ? Quand l'angle est proche de 0° (la partie scalaire w est proche de 1), l'axe est mathématiquement indéfini. L'outil retient l'axe x par défaut : la rotation est quasiment l'identité.

Que signifient partie scalaire et partie vectorielle ? Un quaternion possède une partie scalaire w et trois parties vectorielles x, y, z. Pour une rotation, w = cos(θ/2) et (x, y, z) = sin(θ/2) · axe.

Peut-il donner des angles d'Euler ou une matrice ? Cet outil se concentre sur le produit et la décomposition axe-angle. Avec l'axe et l'angle, les fonctions de ta bibliothèque convertissent vers les angles d'Euler ou une matrice.

📚 Le produit de Hamilton en pratique

Le piège le plus courant avec les quaternions n'est pas la formule mais l'ordre. Selon que la bibliothèque pré-multiplie ou post-multiplie les vecteurs, la composition « A puis B » s'écrit b × a ou a × b. Documenter explicitement la convention de chaque couche du moteur évite des heures de débogage où une rotation part « à l'envers ».

Autre bonne pratique : renormaliser régulièrement. Les produits successifs accumulent de minuscules erreurs en virgule flottante, et une norme qui dérive lentement loin de 1 finit par déformer les rotations. Un contrôle rapide de |q| après chaque composition — exactement ce que cet outil affiche — suffit souvent à détecter le problème avant qu'il ne se voie à l'écran.