JeuWeb - Crée ton jeu par navigateur
[Math] calculer un angle entre deux points? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Math] calculer un angle entre deux points? (/showthread.php?tid=5844)

Pages : 1 2 3


[Math] calculer un angle entre deux points? - Argorate - 17-12-2012

Bonjour,

j'aimerais enfin qu'on m'explique comment choper l'angle lorsqu'on a deux points et leurs coordonnées.
Sur wiki on trouve des formules mais a chaque fois ce n'est pas l'angle qui est l'inconnu. (http://fr.wikipedia.org/wiki/Fonction_trigonom%C3%A9trique )

Admettons que j'ai deux points, je peux donc tracer un triangle rectangle (http://fr.wikipedia.org/wiki/Fichier:Polar_to_cartesian.svg ), comment avoir l'angle teta en fonction de ce que j'appellerais (x1, y1) et (x2, y2)?

merci.



Réponse:

• angle = atan ( (y2 - y1) / (x2 - x1) ) [Argorate]

ou

• math.atan2(y2 - y1, x2 - x1) [tatactic]

Bien faire attention aux unités (radians) et au modulo 180° (Pi): si x<0, il faut +180° (+Pi) à l'angle


RE: [Math] calculer un angle entre deux points? - keke - 17-12-2012

Pour calculer un angle, il faut 3 points non ?
EDIT :
ok, tu pars de l'origine (0,0) (en bas à gauche), de la coordonnée (x,y) (en haut à droite) . et du point en dessous = (x,0) (en bas à droite)
le segment [(0,0) , ( x, y)] mesure x² + y² = r
on a x = r cos (teta)

donc cos(teta) = x /(x² + y²)

et donc
teta = invcos ( x /(x² + y²) )

kéké qui fait de tête en plein incident de prod...


RE: [Math] calculer un angle entre deux points? - niahoo - 17-12-2012

(17-12-2012, 02:38 PM)Argorate a écrit : [Math] calculer un angle entre deux points?

Il n'y a pas d'angle entre deux points.

Fais gaffe aux URL quand tu les colles.

Quand tu auras un troisième point, un simple sinus ou cosinus te donnera les angles.


RE: [Math] calculer un angle entre deux points? - Argorate - 17-12-2012

j'ai édité (maudite parenthèse^^)

évidement qu'il y a un angle, prend une feuille, le troisième point apparait de lui même, si tu traces la droite entre les deux points et que tu fait le triangle rectangle correspondant. (comme le deuxième lien si tu veux visualiser, où mes deux points connu sont à une extrémité puis l'autre de ce qui est noté "r")


RE: [Math] calculer un angle entre deux points? - niahoo - 17-12-2012

Sur ton second lien je ne vois qu'un seul point …

Et 'r' qui est la distance entre ce point et l'origine du repère. En fait tu veux calculer l'angle entre une droite (0;0 -> 0;1) et la droite (0;0 -> TonPoint) c'est ça ?

Je pense que quand tu sauras formaliser ta question la réponse viendra toute seule Wink


RE: [Math] calculer un angle entre deux points? - Argorate - 17-12-2012

Allez, je retente autrement.^^

Ouvre ton esprit et oublie ce que le dessin est supposé représenter. Prend-le juste comme exemple.
Maintenant, tu dois être d'accord que "r" est un segment (oubli cette histoire d'origine du repère), donc ce segment à deux points facilement repérable, les deux qui sont aux extrémités, ok?
r c'est juste la distance entre mes deux points. (l'origine du repère je m'en fou d'où elle est, tant bien c'est a trois kilometre de là Smile)

Ces deux points, ce sont les "miens", je les connais, j'ai x1, y1 et x2, y2 (comme d'hab, je me fiche de savoir si l'un d'eux et l'origine du repère ou non, je veux la formule générique).

Maintenant je veux l'angle entre c'est deux point par rapport au triangle rectangle qu'ils forment, dessiné tel qu'il l'est sur le dessin (voir le lien).
Donc le troisième point fictif c'est x2-x1 et y2-y1 si on veux un troisième point...

Es-ce mieux là?


RE: [Math] calculer un angle entre deux points? - niahoo - 17-12-2012

Ok donc tes deux points forment toujours l'hypothénuse, c'est bien ça ? Donc il te faut calculer la longueur du côté d'en bas de ton triangle. que tu souhaites donc parallèle aux abscisses.

Pour ça et bien c'est simple :

Tu calcules la distance entre tes deux points, ce qui te donne r.
Tu calcules la distance horizontale entre tes deux points, ce qui te donne OX (O étant l'origine et X étant indiqué sur le schema comme la valeur du cosinus.
Pour calculer ton cosinus c'est simple, il faut calculer cette distance en base r (rayon), comme si r valait 1. C'est facile : on divise par le rayon !
Une fois ton cosinus, il faut calculer l'angle en radians puis le convertir en degrés:


$degres = rad2deg(acos($cos));


Bon j'ai pas testé mais normalement c'est ça. Sauf que tu ne nous dis pas si ton coté adjacent doit toujours être parallèle aux abscisses ou pas … J'ai beau ouvrir mon esprit comme tu dis (je ne sais pas si c'est vraiment nécessaire pour résoudre des problèmes de math de troisième :p ) il y a beaucoup de cas possibles dans ce que tu demandes ou il faudrait plus de précisions.


RE: [Math] calculer un angle entre deux points? - Thêta Tau Tau - 17-12-2012

Il y a une infinité de triangles rectangles possibles, avec une infinité d'angles.

Après pour le calcul des angles dans un triangle rectangle, cherche des cours de collège sur les cosinus/sinus/tangente et t'auras tes réponses.


RE: [Math] calculer un angle entre deux points? - Argorate - 17-12-2012

J'ai trouvé ma réponse, maintenant vous saurez faire l'angle entre deux points :p

angle = atan (y2 - y1 / x2 - x1), c'était pourtant pas si compliqué^^

je demandais une formule qui donne un angle avec pour seul composante de la formule, les coordonnées de deux points noté x1,y1 et x2, y2...


RE: [Math] calculer un angle entre deux points? - Xenos - 17-12-2012

Theta Tau tau, la donnée manquante au problème est la suivante:
les deux "petits" cotés du triangle rectangle sont le long des axes du repère (abscisses ordonnées)...

Il existe deux solutions normalement à ce problème (pour les points A et B, il existe le triangle (xA yA) (xA yB) (xB yB) et le triangle (xA yA) (xB yA) (xB yB))... On trouveras donc deux angles, u et v, de sorte que u+v+90° = 180°, donc, au fond, soit on trouve l'angle u, soit on trouve l'angle complémentaire de u (v=90°-u)

Attention quand même avec arc cosinus seul: le signe de l'angle sera à calculer à partir du signe yA-yB (autrement dit, en sachant si B est au-dessus de A par rapport à l'axe des abscisses, ou en dessous).