Calculs pour les angles
Dafp
-
dafp -
dafp -
Bonjour,
Je suis en train de faire un programme qui à un moment calculs les angles selon les coordonnées de 3 pts.
Pourtant je n'arrive pas à trouver le bon resultat (ou en tout cas pas tout le temps).
donc je fais:
module1 = sqrt ((mov[a+4][i] - mov[a+2][i]) * (mov[a+4][i] - mov[a+2][i]) + (mov[a+5][i] - mov[a+3][i]) * (mov[a+5][i] - mov[a+3][i]));
module2 = sqrt ((mov[a][i] - mov[a+2][i]) * (mov[a][i] - mov[a+2][i]) + (mov[a+1][i]-mov[a+3][i]) * (mov[a+1][i]-mov[a+3][i]));
if (module1) { cos1 = (mov[a+4][i] - mov[a+2][i]) / module1; }
else { cos1 = 1; }
if (module2) { cos2 = (mov[a][i] - mov[a+2][i]) / module2; }
else { cos2 = 1; }
movangle[a][i] = ((acos(cos1) - acos(cos2))*360)/6.283185307;
sachant que:
a: xa
a+1: ya
a+2: xb
a+3: yb
a+4: xc
a+5: yc
je fais pour trouver mon angle, simple calcul qu'on pourrait ecrire:
(en radian) angle = cos^-1((xc-xb)/(racine((xc-xb)²+(yc-yb)²)))-cos^-1((xa-xb)/(racine((xa-xb)²+(ya-yb)²)))
que je convertis en degre
par exemple:
xa: 258
xb: 271
xc: 277
ya: 22
yb: 148
yc: 247
je devrais trouver 182° non ? pourquoi ai-je -9.35 alors ?
Je suis en train de faire un programme qui à un moment calculs les angles selon les coordonnées de 3 pts.
Pourtant je n'arrive pas à trouver le bon resultat (ou en tout cas pas tout le temps).
donc je fais:
module1 = sqrt ((mov[a+4][i] - mov[a+2][i]) * (mov[a+4][i] - mov[a+2][i]) + (mov[a+5][i] - mov[a+3][i]) * (mov[a+5][i] - mov[a+3][i]));
module2 = sqrt ((mov[a][i] - mov[a+2][i]) * (mov[a][i] - mov[a+2][i]) + (mov[a+1][i]-mov[a+3][i]) * (mov[a+1][i]-mov[a+3][i]));
if (module1) { cos1 = (mov[a+4][i] - mov[a+2][i]) / module1; }
else { cos1 = 1; }
if (module2) { cos2 = (mov[a][i] - mov[a+2][i]) / module2; }
else { cos2 = 1; }
movangle[a][i] = ((acos(cos1) - acos(cos2))*360)/6.283185307;
sachant que:
a: xa
a+1: ya
a+2: xb
a+3: yb
a+4: xc
a+5: yc
je fais pour trouver mon angle, simple calcul qu'on pourrait ecrire:
(en radian) angle = cos^-1((xc-xb)/(racine((xc-xb)²+(yc-yb)²)))-cos^-1((xa-xb)/(racine((xa-xb)²+(ya-yb)²)))
que je convertis en degre
par exemple:
xa: 258
xb: 271
xc: 277
ya: 22
yb: 148
yc: 247
je devrais trouver 182° non ? pourquoi ai-je -9.35 alors ?
A voir également:
- Calculs pour les angles
- Barbara veut calculer automatiquement son budget dans un tableau. citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). - Forum Excel
- Roland souhaite calculer le montant total des ventes de son magasin. le fichier contient, pour chaque produit, la quantité vendue et le prix unitaire. calculez le montant total des ventes. ✓ - Forum Excel
- Santa barbara - Forum Musique / Radio / Clip
- Citez un des logiciels lui permettant de faire des calculs sur des tableaux de nombres (tableur). ✓ - Forum LibreOffice / OpenOffice
- Budget plus cic ✓ - Forum finances
1 réponse
Bonjour,
je devrais trouver 182° non ? pourquoi ai-je -9.35 alors ?
Ce n'est pas si mauvais que ça, il suffit d'ajouter 180° (soit pi).
Regardez votre formule :
angle = cos^-1((xc-xb)/(racine((xc-xb)²+(yc-yb)²)))-cos^-1((xa-xb)/(racine((xa-xb)²+(ya-yb)²)))
Elle ne tient pas compte du signe des ordonnées (précisément le signe de yc-yb et celui de ya-yb sont sans influence sur le résultat).
Petit rappel, le résultat d'un arccos est toujours de 0 à pi. Une fois sur deux ce n'est pas le résultat que vous attendez, il faut tenir compte du signe des ordonnées et s'il y a lieu prendre le complément à 2*pi. Mieux : utiliser un arctg à deux arguments.
Manu
je devrais trouver 182° non ? pourquoi ai-je -9.35 alors ?
Ce n'est pas si mauvais que ça, il suffit d'ajouter 180° (soit pi).
Regardez votre formule :
angle = cos^-1((xc-xb)/(racine((xc-xb)²+(yc-yb)²)))-cos^-1((xa-xb)/(racine((xa-xb)²+(ya-yb)²)))
Elle ne tient pas compte du signe des ordonnées (précisément le signe de yc-yb et celui de ya-yb sont sans influence sur le résultat).
Petit rappel, le résultat d'un arccos est toujours de 0 à pi. Une fois sur deux ce n'est pas le résultat que vous attendez, il faut tenir compte du signe des ordonnées et s'il y a lieu prendre le complément à 2*pi. Mieux : utiliser un arctg à deux arguments.
Manu
Oui mais comment savoir si j'en ai besoin, si j'ai l'angle negatif ?
Elle ne tient pas compte du signe des ordonnées (précisément le signe de yc-yb et celui de ya-yb sont sans influence sur le résultat).
Petit rappel, le résultat d'un arccos est toujours de 0 à pi. Une fois sur deux ce n'est pas le résultat que vous attendez, il faut tenir compte du signe des ordonnées et s'il y a lieu prendre le complément à 2*pi. Mieux : utiliser un arctg à deux arguments.
Qu'est ce que vous voulez dire par là ? faut-il que j'utilise aussi le calcul du sin, pour utiliser arctg ?