Calcul d'un angle [Résolu]

Signaler
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005
-
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
-
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.
A voir également:

8 réponses

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
1
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.
Messages postés
21
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
5 janvier 2008

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.
@+
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005

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
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005

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 !
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
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 ]
Messages postés
10
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
25 mai 2005

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
Messages postés
1
Date d'inscription
vendredi 19 décembre 2008
Statut
Membre
Dernière intervention
28 juillet 2009

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
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
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 !