Probleme arctan

Résolu
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020 - 15 oct. 2006 à 01:10
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 15 oct. 2006 à 17:25
Enos

bonjours,
J'ai un probleme de calcul d' angle. Si je prend la formule suivante :
angle=arctan[(sommet1-sommet2)/(hauteur*2) , le resultat est correct avec la calculatrice mais avec delphi la fonction "ArcTan " ne me donne pas le bon resultat et je n'arrive pas a comprendre pourquoi !

5 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
15 oct. 2006 à 08:11
Ne serait-ce pas tout bêtement un problème d'unité ?
Extrait de l'aide en ligne :
Syntaxe Delphi : function ArcTan(X:Extended):Extended;



Description : Dans le code Delphi, ArcTan renvoie l'arc-tangente de X.
X est une expression de type réel qui indique un angle en radians.

May Delphi be with you !


<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
Utilisateur anonyme
15 oct. 2006 à 03:38
salut,

Avec aucun code il est impossible de te répondre : tu devrais poster ta fonction. De plus il est conseillé d'utiliser la fonction arctan2 plutôt que arctan.

@+
0
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020
15 oct. 2006 à 11:57
Enos

Merci pour vos réponses . Pour repondre a Francky23012301, voici un exemple de code :
/////////////////////////////////////////////


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,math, Buttons, StdCtrls;


type
  TForm1 = class(TForm)
    Edit1: TEdit;// Valeur de la base
    Edit2: TEdit;// Valeur du sommet
    Edit3: TEdit;// Valeur de la hauteur
    SpeedButton1: TSpeedButton;// Calcul
    Label1: TLabel;// Resultat
    procedure SpeedButton1Click(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  Som1,Som2,haut: real;


implementation


{$R *.dfm}


procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Som1:=strtofloat(Edit1.Text);// Valeur de la base
Som2:=strtofloat(Edit2.Text);// Valeur du sommet
Haut:=strtofloat(Edit3.Text);// Valeur de la hauteur
Label1.Caption:=Floattostr(arctan((som1-som2)/(haut*2)));


end;


end.

/////////////////////////////////////////////////////
Et pour repondre a Delphiprog; le resultat que je cherche est en degré, je pense que l' erreur est la ! Il ne reste plus que la convertion a réalisé ( a tester )


Merci encore affaire a suivre !
0
cs_Enos Messages postés 8 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 11 septembre 2020
15 oct. 2006 à 12:40
Enos
Je viens de tester avec la ligne suivante :

Label1.Caption:=Floattostr(radToDeg(arctan2((som1-som2),(haut*2))));

Ca marche !
Merci encore a tous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 oct. 2006 à 17:25
un conseil, ne pas utiliser le type Real mais extended ou single.

et en effet il faut utiliser ArcTan2 et pas ArcTan.

<hr size="2" width="100%" />Croc (click me)
0
Rejoignez-nous