Calculateur d'angle entre deux vecteurs 2D
Saisissez les composantes X et Y de deux vecteurs pour trouver l'angle entre eux en degrés. Le calculateur utilise la formule du produit scalaire et est utile en physique, en géométrie et en infographie.
Calculer l'angle entre deux vecteurs 2D
Formule de l'angle entre deux vecteurs 2D
Où :
- \(\vec{A} \cdot \vec{B} = A_x B_x + A_y B_y\) — le produit scalaire des deux vecteurs
- \(|\vec{A}| = \sqrt{A_x^2 + A_y^2}\) — la norme (longueur) du vecteur \(\vec{A}\)
- \(|\vec{B}| = \sqrt{B_x^2 + B_y^2}\) — la norme (longueur) du vecteur \(\vec{B}\)
- \(\theta\) — l'angle entre les deux vecteurs
La formule découle de la définition géométrique du produit scalaire : \(\vec{A} \cdot \vec{B} = |\vec{A}| |\vec{B}| \cos\theta\). En résolvant pour \(\theta\), on obtient l'expression ci-dessus. Le résultat de \(\cos^{-1}\) est en radians ; il est donc converti en degrés en le multipliant par \(\frac{180}{\pi}\) — ce calculateur fait cette conversion pour vous et donne la réponse en degrés.
Angle entre deux vecteurs 2D – Exemple de calcul
Exemple : trouver l'angle entre \(\vec{V_1} = (1, 0)\) et \(\vec{V_2} = (0, 1)\).
\[ \vec{V_1} \cdot \vec{V_2} = (1)(0) + (0)(1) = 0 \]
\[ |\vec{V_1}| = \sqrt{1^2 + 0^2} = 1, \qquad |\vec{V_2}| = \sqrt{0^2 + 1^2} = 1 \]
\[ \theta = \cos^{-1}\left( \frac{0}{1 \cdot 1} \right) = \cos^{-1}(0) = 90° \]
Résultat : l'angle entre les deux vecteurs est de 90°. Les vecteurs sont perpendiculaires, ce qui est exactement ce qu'on attend des vecteurs unitaires le long des axes X et Y.
Comment utiliser le calculateur
- Saisissez la composante X du premier vecteur dans le champ Vecteur V1 - X.
- Saisissez la composante Y du premier vecteur dans le champ Vecteur V1 - Y.
- Saisissez la composante X du deuxième vecteur dans le champ Vecteur V2 - X.
- Saisissez la composante Y du deuxième vecteur dans le champ Vecteur V2 - Y.
- Lisez le résultat Angle entre vecteurs (°). La réponse est donnée en degrés, arrondie à trois décimales.
Les valeurs positives comme négatives sont acceptées, et les nombres décimaux fonctionnent également. Vous n'avez pas besoin de normaliser les vecteurs au préalable — la formule divise par les normes, donc un vecteur de n'importe quelle longueur donne le même angle.
Qu'est-ce que l'angle entre deux vecteurs ?
En deux dimensions, un vecteur \(\vec{A} = (A_x, A_y)\) possède à la fois une longueur et une direction. Quand on place deux vecteurs de façon qu'ils partent du même point, l'angle entre eux mesure l'écart entre leurs directions. Cet angle est toujours compris entre 0° et 180° : 0° signifie que les vecteurs pointent dans le même sens, 90° qu'ils sont perpendiculaires, et 180° qu'ils pointent dans des directions exactement opposées.
La clé du calcul de cet angle est le produit scalaire. Il mesure à quel point deux vecteurs s'accordent en direction : un produit scalaire grand et positif signifie que les vecteurs pointent grossièrement dans le même sens, zéro qu'ils sont perpendiculaires, et une valeur négative que l'angle est obtus. Diviser le produit scalaire par le produit des normes donne \(\cos\theta\), et l'arc cosinus retrouve l'angle lui-même.
Connaître l'angle entre vecteurs est important dans de nombreuses situations pratiques. En physique, il permet de décomposer des forces et de calculer le travail, puisque le travail est égal à \(F \cdot d \cdot \cos\theta\). En infographie et dans le développement de jeux vidéo, on l'utilise pour les tests de champ de vision, les calculs d'éclairage et l'orientation d'objets vers des cibles. En navigation et en robotique, il indique à un système de combien il doit tourner pour faire face au cap souhaité.
Pour travailler avec les vecteurs eux-mêmes, vous trouverez peut-être aussi utiles les calculateurs Norme d'un vecteur 2D et Addition de vecteurs 2D.
Interprétation du résultat
Le calculateur renvoie toujours l'angle le plus petit, compris entre 0° et 180°. C'est l'« angle entre vecteurs » conventionnel — il ne vous dit pas quel vecteur tourne dans le sens horaire ou antihoraire par rapport à l'autre. Si vous avez besoin d'un angle signé (par exemple pour décider du sens de rotation dans un jeu), calculez aussi le produit vectoriel \(A_x B_y - A_y B_x\) : son signe vous indique le sens de rotation.
Quelques cas particuliers utiles pour vérifier la cohérence de vos valeurs :
| Vecteurs | Angle |
|---|---|
| Même direction (parallèles) | 0° |
| Perpendiculaires (produit scalaire = 0) | 90° |
| Directions opposées | 180° |
| Vecteurs identiques | 0° |
Limites et conseils
- Vecteurs nuls : si l'un des vecteurs est \((0, 0)\), sa direction est indéfinie. Le calculateur renvoie 0 dans ce cas, mais mathématiquement l'angle n'existe pas.
- Arrondi : à cause de l'arithmétique en virgule flottante, des valeurs très proches de 1 ou de -1 à l'intérieur de \(\cos^{-1}\) peuvent produire de petites erreurs ; le résultat est arrondi à trois décimales.
- Unités : le résultat est toujours en degrés. Pour convertir en radians, multipliez par \(\frac{\pi}{180}\).
- Le sens n'a pas d'importance : échanger V1 et V2 donne le même angle, car le produit scalaire est commutatif.
- Invariance d'échelle : multiplier l'un ou l'autre vecteur par un nombre positif ne change pas l'angle, car les normes s'annulent.
Si vous travaillez en trois dimensions plutôt que dans un plan, la même formule du produit scalaire s'applique — voir les calculateurs Produit scalaire de vecteurs 3D et Norme d'un vecteur 3D.
Questions fréquentes
Peut-on trouver l'angle entre deux vecteurs 2D avec atan2 plutôt qu'avec le produit scalaire ?
Oui. Calculez l'angle de direction de chaque vecteur par rapport à l'axe X : \(\alpha = \text{atan2}(A_y, A_x)\) et \(\beta = \text{atan2}(B_y, B_x)\). L'angle entre eux est alors \(|\alpha - \beta|\), et si cette différence dépasse 180°, utilisez \(360° - |\alpha - \beta|\). La méthode atan2 donne aussi naturellement un résultat signé, pratique en programmation de jeux, tandis que la méthode du produit scalaire donne toujours l'angle non signé.
Quelle est une valeur d'angle normale ou attendue entre deux vecteurs ?
L'angle entre deux vecteurs est toujours compris entre 0° et 180°. 0° signifie que les vecteurs sont parallèles et pointent dans le même sens, 90° qu'ils sont perpendiculaires (orthogonaux), et 180° qu'ils pointent dans des directions exactement opposées. Des vecteurs choisis au hasard en 2D ont tendance à produire des angles répartis sur toute cette plage, donc il n'y a pas de valeur « typique » unique — l'important est que le résultat corresponde à votre intuition géométrique des données.
Comment convertir le résultat de degrés en radians ?
Multipliez la valeur en degrés par \(\frac{\pi}{180} \approx 0.017453\). Par exemple, 90° équivaut à \(\frac{\pi}{2} \approx 1.5708\) radians, et 180° à \(\pi \approx 3.1416\) radians. Le radian est l'unité par défaut des fonctions trigonométriques de la plupart des langages de programmation (comme cos et acos) ; cette conversion est donc nécessaire si vous réinjectez l'angle dans du code.
Que se passe-t-il si je multiplie un vecteur par un nombre négatif ?
Contrairement à la multiplication par un nombre positif (qui laisse l'angle inchangé), multiplier un vecteur par un nombre négatif inverse son sens, et l'angle devient donc \(180° - \theta\). Par exemple, l'angle entre (1, 0) et (2, 0) est 0°, mais entre (1, 0) et (-2, 0) il est de 180°. C'est une source fréquente de surprise quand les vecteurs proviennent d'une soustraction de points, car inverser l'ordre de la soustraction (B − A au lieu de A − B) change le signe du vecteur.
Pourquoi mon calcul à la main donne-t-il une erreur ou un NaN dans l'arc cosinus ?
Le produit scalaire divisé par le produit des normes doit rester entre -1 et 1. L'arrondi en virgule flottante peut le faire légèrement sortir de cette plage (par exemple 1,0000000001), et \(\cos^{-1}\) y est indéfini. La solution habituelle consiste à ramener la valeur à l'intervalle [-1, 1] avant d'appliquer l'arc cosinus. Vérifiez aussi qu'aucun vecteur n'est (0, 0) — un vecteur nul n'a pas de direction, donc l'angle est mathématiquement indéfini.
L'angle change-t-il si mes vecteurs sont donnés dans des unités différentes, par exemple mètres et centimètres ?
Les deux vecteurs doivent être exprimés dans la même unité, car leurs composantes sont multipliées entre elles dans le produit scalaire. Si un vecteur est en mètres et l'autre en centimètres, les nombres seront incohérents et le résultat sera faux. Convertissez d'abord les deux dans la même unité. Notez que l'angle lui-même est sans dimension — il ne porte aucune unité en dehors des degrés ou des radians.
Comment savoir dans quel sens faire tourner un vecteur pour l'aligner sur l'autre ?
Calculez le produit vectoriel 2D \(A_x B_y - A_y B_x\). S'il est positif, la rotation de \(\vec{A}\) vers \(\vec{B}\) est antihoraire ; s'il est négatif, elle est horaire. Combinez son signe avec l'angle donné par le calculateur pour obtenir la rotation signée. Si le produit vectoriel est nul et que le produit scalaire est positif, les vecteurs sont déjà alignés ; si le produit scalaire est négatif, ils pointent dans des directions opposées.