Calcul d'un angle [Résolu]

Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005
- - Dernière réponse : Bacterius
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
- 28 juil. 2009 à 19:12
Salut, je cherche à calculer l'angle d'un vecteur vitesse à partir de la norme de cette vitesse et de ces coordonnées...mais ArcTan et ArcTan2 sont un peu foireuse et j'ai perdu mes notions de trigo pour arriver à faire la demarche de chaque cas....merci pour l'aide.
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
3
Merci
function CalculAngle(x, y: extended): extended;
const
EPSILON = 0.0000001 ; // au choix

begin
Result := 0.0;
if ( ABS(x) < EPSILON )
then
begin

Result : = PI/2; // 90 degrés
if ( y < 0 )
then R
esult := -Result ;
// -90 degrés

end else
begin
if ( x < 0 ) then Result := PI - ArcTan(-Y / X) // 2eme ou 3ème quadrant
else
Result := ArcTan( Y / X) ; // 1er ou 4ème quadrant
end;
end;

Cordialement.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 186 internautes nous ont dit merci ce mois-ci

Commenter la réponse de WhiteHippo
Messages postés
21
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
5 janvier 2008
0
Merci
salut,
voici 1 réponse qui, j'espere, te satisfera:
soit V(Vx, Vy, Vz) les coordonnes de ton vecteur et A l'angle que tu cherche:
tan(A) = a/bavec a Vy, b racine(Vx² + Vz²)
ou sinon: cos(A) = (b² + c² - a²)/(2bc)avec a Vy, b racine(Vx² + Vz²) et c = ||V||
essaye ca, cependant je ne suis pas sur d'avoir bien compris ta question car quand on a les coordonnes d'un vecteur, on a pas besoin de sa norme (ma formule ne correspondrait peut etre pas a ce que tu cherche en fait, a voir)
en tout cas cette 2e formule s'appelle le théoreme d'Al-Kashi et permet de calculer les angles dans un triangle.
@+
Commenter la réponse de cs_Gimli
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005
0
Merci
Ah zut j'ai oublié de dire que c'était de la 2D, j'ai un vecteur vitesse V(Vx,Vy) donc avec V sa norme, et je cherche l'angle d'orientation en radian, mais qui fonctionne dans les 4 quadrans du cercle trigo sans exception...et ArcTan et ArcTan2 ne renvoient pas précisement dans les bons quadrans, ex : Tan X= Sin(u)/Cos(v) mais aussi = -Sin(u)/-Cos(u)....Merci
Commenter la réponse de akhria
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005
0
Merci
An fait je fesai un ArcCos(Vx/V) et un ArcSin(Vy/V) et je reutilisai les valeurs direct, mais en fait j'ai vraiment besoin de faire un ArcTan(Vy/Vx) pour trouver l'angle exact...Merci !
Commenter la réponse de akhria
Messages postés
756
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
1
0
Merci
X :=
ArcTan(Vy/Vx);

if (Vx < 0) then

if Vy > 0

X := X + pi

else

X := X - pi;



enfin, je crois !



Ken@vo

<hr size="2" width="100%">Code, Code, Codec !




http://www.pourflorenceethussein.org/



[%3C/body ]
Commenter la réponse de cs_Kenavo
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005
0
Merci
la ca me renvoi les bonnes valeurs de 90 à 180 degrés mais pas pour les 3 autres cadrans
jai trouvé un bout de code

If dX > 0.0001 then
CalculAngle := ArcTan(dY / dX)
else if dX < -0.0001 Then
CalculAngle := PI - ArcTan(-dY / dX)
else
CalculAngle := Sign(dY) * PI / 2;

mais ca ne calcul bien que de 0 à 270°, quelquun a une idée pour le dernier cadran? lol merci
Commenter la réponse de akhria
Messages postés
1
Date d'inscription
vendredi 19 décembre 2008
Statut
Membre
Dernière intervention
28 juillet 2009
0
Merci
J'ai une petite question a cette discussion, si on fait le truc suivant pour trouver l'angle : A = acos((b² + c² - a²)/(2bc)), alors A est -il donné en degrés ou en radien?

merci
Commenter la réponse de Claude1985
Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5
0
Merci
Ben sachant que la fonction "acos" attend probablement un angle en radians et fait donc ses calculs en radians, il y a de très ([très] très) fortes chances pour que A soit donné en degrés radians.
Dans Delphi, si c'est pas précisé, c'est du radian !

Cordialement, Bacterius !
Commenter la réponse de Bacterius