begin process at 2010 02 10 08:55:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Maths

 > 

Calcul d'un angle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Calcul d'un angle

dimanche 22 mai 2005 à 05:28:28 | Calcul d'un angle

akhria

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.

dimanche 22 mai 2005 à 09:04:38 | Re : Calcul d'un angle

Gimli

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/b
avec 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.
@+
dimanche 22 mai 2005 à 14:49:37 | Re : Calcul d'un angle

akhria

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
dimanche 22 mai 2005 à 15:02:10 | Re : Calcul d'un angle

akhria

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 !
dimanche 22 mai 2005 à 20:58:48 | Re : Calcul d'un angle

Kenavo

X := ArcTan(Vy/Vx);
if (Vx < 0) then  
  if Vy  > 0
    X := X + pi
  else
    X := X - pi;

enfin, je crois !

Ken@vo

Code, Code, Codec !

http://www.pourflorenceethussein.org

dimanche 22 mai 2005 à 21:21:09 | Re : Calcul d'un angle

akhria

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
dimanche 22 mai 2005 à 22:57:03 | Re : Calcul d'un angle

WhiteHippo

Membre Club
Réponse acceptée !

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 Result := -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.

mardi 28 juillet 2009 à 16:11:26 | Re : Calcul d'un angle

Claude1985

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

mardi 28 juillet 2009 à 19:12:39 | Re : Calcul d'un angle

Bacterius

Membre Club

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 !



Cette discussion est classée dans : calcul, angle, vitesse


Répondre à ce message

Sujets en rapport avec ce message

Calcul dans une dbgrid [ par Speedy ] Bonjour,j'ai un problème sur un DBGRID.Je veux dans un champ entrer une valeur et un calcul automatique doirt être lancé pour calculer une autre valeu Juste un petit prog de calcul [ par Cyanure ] Bonjour, Je veux faire un prog qui fera l'addition entre 3 edit et mettra la somme dans un quatrieme. Je voudrait que les 3 edit soit egal a zero au d Gros calcul [ par Manu93 ] Je cherche a faire des operations sur des grands nombres entiers ( sur 40 a 50 digits)mais comment faire sous delphi. Ex : +,-,/,*, Mod et convertion Evaluation d'une chaine de calcul [ par magicvinni ] Quelqun connait il une fonction ( ou une unité plutot) qui permettrai de faire un truc du genre function evaluation(chaine:string):integer et qui reve Temp et vitesse CPU et ventilos [ par CyberPunk2020 ] Bonjour à tousJe cherche comment récupérer les vitesse et temperature du boitier et du CPU sous delphiMerci d'avance si vous avez des réponses ;)Cordi Comment limiter la vitesse d'un upload entre 2 ordis ? [ par Fredelphi ] Bonjour,Peut-on gérer la vitesse d'un upload ?C'est à dire : je veux faire une application qui envoie des données à un autre ordi, mais je veux limite Optimisation [ par balgrim ] Bonjour, j'aimerais qu'on me renseigne au niveau de l'optimisation. Je n'utilise que des integer (pas de float) au max,non plus des divisions afin de Calcul avec un DBGRID [ par Fojohn ] Salut à tousJe travail avec un DBGRId qui m'affiche un champ calculé. A partir de là, j'aimerais faire la somme de champ calculé sur au moins 3 lignes recherche algorithme pour calcul de clé logicielle [ par tao ] Je suis en train de créer un permettant la création d'édition. Ce logicielle intégre la notion de droit utilisateur. Je souhaite créer un menu permett comment obtenir des infos du pc (mem/proc/vitesse/etc... [ par dphil54 ] Phil bonjour,Je suis à la recherches d'infos sur le moyen d'obtenir des renseignements du PCType processeur (Pentuim / PII/ PIII/ ATHLON / etc...Vite


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales