Calcul d'un angle [Résolu]

akhria 10 Messages postés mercredi 13 avril 2005Date d'inscription 25 mai 2005 Dernière intervention - 22 mai 2005 à 05:28 - Dernière réponse : Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention
- 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

Répondre au sujet
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 22 mai 2005 à 22:57
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de WhiteHippo
cs_Gimli 21 Messages postés mardi 31 décembre 2002Date d'inscription 5 janvier 2008 Dernière intervention - 22 mai 2005 à 09:04
0
Utile
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
akhria 10 Messages postés mercredi 13 avril 2005Date d'inscription 25 mai 2005 Dernière intervention - 22 mai 2005 à 14:49
0
Utile
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
akhria 10 Messages postés mercredi 13 avril 2005Date d'inscription 25 mai 2005 Dernière intervention - 22 mai 2005 à 15:02
0
Utile
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
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 22 mai 2005 à 20:58
0
Utile
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
akhria 10 Messages postés mercredi 13 avril 2005Date d'inscription 25 mai 2005 Dernière intervention - 22 mai 2005 à 21:21
0
Utile
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
Claude1985 1 Messages postés vendredi 19 décembre 2008Date d'inscription 28 juillet 2009 Dernière intervention - 28 juil. 2009 à 16:11
0
Utile
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
Bacterius 3869 Messages postés samedi 22 décembre 2007Date d'inscription 3 juin 2016 Dernière intervention - 28 juil. 2009 à 19:12
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.