cs_hakimus
Messages postés25Date d'inscriptionsamedi 14 octobre 2006StatutMembreDernière intervention 8 juillet 2010
-
10 juil. 2007 à 19:22
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008
-
11 juil. 2007 à 15:42
Bonjour a tous,
Mon probleme est extremement simple.
/bLes fonctions trigonometriques contenues dans math.h, (sinus,
cosinus, etc.) prennent par defaut des valeurs en radians et je
voudrais savoir s'il existe un moyen quelconque de leur faire utiliser
des angles en degres./b
Je ne veux pas une fonction pour convertir les degres en radians, mais
bien un moyen d'utiliser les fonctions trigo en "mode degre".
Mon programme dois effectuer des calculs, a partir de valeurs
experiementales en degres ET de constantes prevues pour des calculs en
degres. Ce serait donc beaucoup plus pratique pour moi de calculer
sinus et cosinus en degres plutot que de faire de nombreuses
conversions et reconversions...
Je dois traiter des angles astronomiques en degres, minutes, secondes.
Je ne peux pas vous montrer mon code parce qu'il est sur une autre
machine, mais en fait j'ai deja essaye de simples conversions en
radians pour les valeurs passees aux fonctions trigo, et les resultats
sont faux...
Je pense que je dois mal faire mes conversions ou en oublier. Quelqu'un
pourrait-il svp me montrer comment coder cette ligne par exemple :
L = M + (1.916 * sin(M)) + (0.020 * sin(2 * M)) + 282.634
Premiere question, a partir des calculs precedents M est-il en degres
ou en radians? Deuxieme question, ou dois-je faire des conversions?
THEwarrior333
Messages postés192Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention30 janvier 2008 11 juil. 2007 à 15:42
Puisque sin (de math.h) prend des radians en paramètre, M doit être
en radians. Si M se trouve être en degrés, tu dois donc le convertir
avant de la passer à sin grace à la fonction
#define PI 3.14159265
float conv_rad(float x)
{
return x * PI / 180
}
Ainsi ta formule peut se coder de cette manière:
float M_rad = conv_rad( M );
float L = M_rad + (1.916 * sin( M_rad )) + (0.020 * sin( 2 * M_rad )) + 282.634;