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

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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 ! :)

Édité par jerkoco

+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.

+1 -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. :)

Édité par Karnaj

Je fais un carnage si ce car nage car je nage, moi, Karnaj ! - Tutoriels LaTeX - Contribuez à un tutoriel Ruby

+1 -0
Auteur du sujet

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 :)

Édité par jerkoco

+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}. $$

Je fais un carnage si ce car nage car je nage, moi, Karnaj ! - Tutoriels LaTeX - Contribuez à un tutoriel Ruby

+0 -0
Staff

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.

+0 -0

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).

+0 -0

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.)

Édité par Lucas-84

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…

Édité par blo yhg

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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