Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul d'angle entre 2 points

6 réponses
Avatar
jean-luc Biord
Bonjour voici mon problème : J'ai une droite avec ses deux extrémités
que l'ont va appeler A et B, chacun ayant bien sûr des coordonnées x et y.
Le point A est fixe et le point B peut tourner autour de A. Je veux
pouvoir placer sur la ligne reliant A à B des objets. J'ai donc besoin
de connaitre l'angle formé entre A et B qui peut donc varier de 0 à 360
degrés. Oui mais comment faire ?

6 réponses

Avatar
Amerio
jean-luc Biord wrote:
Bonjour voici mon problème : J'ai une droite avec ses deux extrémités
que l'ont va appeler A et B, chacun ayant bien sûr des coordonnées x et y.
Le point A est fixe et le point B peut tourner autour de A. Je veux
pouvoir placer sur la ligne reliant A à B des objets. J'ai donc besoin
de connaitre l'angle formé entre A et B qui peut donc varier de 0 à 360
degrés. Oui mais comment faire ?


Rien a voir avec du cpp, c'est hors-charte, mais la reponse etant
triviale...
Soit A[xa,ya] et B[xb,yb]. On veut M[x,y] tel que M sur [A,B]
Alors on veut k dans[0,1] et
{ x = xa + k*(xb-xa); y = ya + k*(yb-ya) }
Nul besoin de connaitre un angle pour cela...
Si vraiment il faut aussi l'angle : voir du coté de "atan2" (arctangente)

Avatar
Horst Kraemer
On Thu, 01 Jul 2004 17:58:03 +0200, jean-luc Biord
wrote:

Bonjour voici mon problème : J'ai une droite avec ses deux extrémités
que l'ont va appeler A et B, chacun ayant bien sûr des coordonnées x et y.
Le point A est fixe et le point B peut tourner autour de A. Je veux
pouvoir placer sur la ligne reliant A à B des objets. J'ai donc besoin
de connaitre l'angle formé entre A et B qui peut donc varier de 0 à 360
degrés. Oui mais comment faire ?



<HS>

Un angle entre deux points n'existe pas. D'ailleurs tu n'as besoin
d'aucun angle pour placer der points sur le segment AB.

A:(xA,yA)
B:(xB,yB)

Un point sur le segment AB a la forme

(xA+c(xB-xA),yA+c(yB-yA))

ou bien

((1-c)xA+c*xB, (1-c)yA+c*yB)

où 'c' est un nombre réel quelconque entre 0 et 1.

</HS>

--
Horst

Avatar
prog.qt
On Thu, 01 Jul 2004 17:58:03 +0200, jean-luc Biord
wrote:


Bonjour voici mon problème : J'ai une droite avec ses deux extrémités
que l'ont va appeler A et B, chacun ayant bien sûr des coordonnées x et y.
Le point A est fixe et le point B peut tourner autour de A. Je veux
pouvoir placer sur la ligne reliant A à B des objets. J'ai donc besoin
de connaitre l'angle formé entre A et B qui peut donc varier de 0 à 360
degrés. Oui mais comment faire ?




<HS>

Un angle entre deux points n'existe pas. D'ailleurs tu n'as besoin
d'aucun angle pour placer der points sur le segment AB.

A:(xA,yA)
B:(xB,yB)

Un point sur le segment AB a la forme

(xA+c(xB-xA),yA+c(yB-yA))

ou bien

((1-c)xA+c*xB, (1-c)yA+c*yB)

où 'c' est un nombre réel quelconque entre 0 et 1.

</HS>

Merci pour les réponses. Encore une question : comment obtenir la

longueur entre A et B. Comment d'après cette longueur déterminer c ?
pour ce placer à différents endroits sur la ligne ?
Merci


Avatar
Horst Kraemer
On Thu, 01 Jul 2004 18:20:48 +0200, "prog.qt" wrote:

Merci pour les réponses. Encore une question : comment obtenir la
longueur entre A et B. Comment d'après cette longueur déterminer c ?
pour ce placer à différents endroits sur la ligne ?


Longueur = racine((xA-xB)^2+(yA-yB)^2)

Pour placer un point a la distance D de A choisir c = D/Longueur

Toujours rien à voir à C++.


graphisme fr.comp.graphisme.programmation
mathématiques: fr.sci.math


--
Horst

Avatar
Horst Kraemer
On Thu, 01 Jul 2004 18:20:48 +0200, "prog.qt" wrote:

Merci pour les réponses. Encore une question : comment obtenir la
longueur entre A et B. Comment d'après cette longueur déterminer c ?
pour ce placer à différents endroits sur la ligne ?


Longueur = racine((xA-xB)^2+(yA-yB)^2)

Pour placer un point a la distance D de A choisir c = D/Longueur

Toujours rien à voir à C++.


graphisme fr.comp.graphisme.programmation
mathématiques: fr.sci.maths


--
Horst

Avatar
Loïc Joly
prog.qt wrote:
Merci pour les réponses. Encore une question : comment obtenir la
longueur entre A et B.


Je ne veux pas paraître méchant, mais il s'agit là d'un problème de math
niveau 4ème, et je pense sincèrement que s'il te manque ces bases, il
est utopique d'espèrer réaliser une application graphique.

Je te conseilles donc sincèrement de te former une base mathématique
minimale qui te sera très utile. Si tu connais ça mais que ça t'as juste
échapé, je te conseille juste du repos.

--
Loïc