Calculer un angle avec trois point sur les axes X et Y

Le problème exposé dans ce sujet a été résolu.

Bonjour !

Je souhaite calculer un angle formé par trois points sur les axes x et y.

Les points 2 et 3 sont alignés à l'axe x et le premier points est n'importe ou dans l'espace.

voilà un schéma de ce que je souhaite calculer: Image utilisateur

Je précise que le point 3 n'est pas une donnée aléatoire mais sa position est juste calculé pour être plus loin que le point 2 sur l'axe des x, pour que le segment entre le point 2 et 3 soit parallèle à l'axe x.

Comment calculer l'angle ? (en degrées)

Merci d'avance ! :)

+0 -0

Salut !

Il y a peut-être une manière plus simple, mais tu peux passer par un triangle rectangle :

1
2
3
4
5
6
7
8
A     D
\-----|
 \    | 
  \   |  
   \  |   
    \ |    
     \|_________
      B         C

Tu connais les coordonnées de A, B et C, donc de D. Tu peux alors déterminer les distances entre les points et, en faisant appel à la trigonométrie, déterminer l'angle ABD. Il ne te reste plus qu'à ajouter les 90° de l'angle DBC.

+0 -0

Salut,

Tu peux utiliser le théorème d’Al-Kashi ou directement avec le produit scalaire (ce qui revient au même en gros), on a (si on appelle tes points $A$, $O$ et $B$ :

$$ \alpha = \arccos\left(\frac{\overrightarrow{OA} \cdot \overrightarrow{OB}}{\lVert\overrightarrow{OA}\rVert \times \lVert\overrightarrow{OB}\rVert}\right). $$

EDIT : grillé. @Vayel : ce que tu fais est justement une des manières de démontrer le théorème d’Al-Kashi. :)

+1 -0

Merci, mais comment puis-je calculer une distance (qui est en pixel, je code ça en JavaScript) qui n'est pas alignés avec les axes ? sinon, je ne comprends pas trop les symboles mathématiques @Karnaj (je n'ai qu'un niveau collège) Merci encore :)

+0 -0

sinon, je ne comprends pas trop les symboles mathématiques @Karnaj

Dans ce cas, tu peux oublier la formule que j’ai postée. ^^

Merci, mais comment puis-je calculer une distance (qui sont en pixel, je code ça) qui n'est pas alignés avec les axes ?

Tu peux le faire avec le théorème de Pythagore. Par exemple, pour calculer la distance $l$ entre le point 1 et le point 2 de ton exemple, on a :

$$ (200 - 50)^2 + (200 - 50)^2 = l^2 \implies l^2 = 2 \times 150^2 \implies l = 150\sqrt{2}. $$

+0 -0

Tu obtiens un angle en radians et tu as 1 radian qui vaut $\frac{180}{\pi}$ degrés. Je te laisse trouver avec ça comment convertir ton résultat en degrés. :)

+0 -0

Qu'est-ce qui te gêne exactement ?

L'angle donné par atan2 est compris entre moins pi et pi. Il faut donc convertir en degrés, et si tu veux l'avoir entre 0 et 360 degrés (et non -180 et +180), il suffit d'ajouter 360 aux résultats négatifs.

Banni

Su ton jsfiddle, j'ai l'impression que tu veux calculer l'angle entre ta droite horizontale et la droite passant par le point d'intersection des deux droites et le point sélectionné. Est-ce le cas ? Si oui, ce n'est pas ce que fait ton code (je n'ai pas le temps de détailler).

Est-ce que tu comprends pourquoi ça marche du coup (étant données les spécifications d'atan2) ? Parce que la stratégie « adapter à sa sauce » marche pas à tous les coups. :p
(Accessoirement tu devrais éviter toutes les valeurs en dur, parce que tu as mélangé 195 et 200 dans ton code.)

+0 -0
Banni

Ouais, mais après on ne sait pas trop quel point jerkoco a voulu dessiner… J'ai l'impression que les deux lignes dessinées sont $x=200$ et $y=200$. C'est vrai que ce serait pas super cohérent d'avoir dessiné le point d'une certaine manière et les lignes d'une autre mais bon…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte