cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008
-
28 avril 2004 à 16:19
titip03
Messages postés5Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention15 mars 2007
-
27 nov. 2004 à 19:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
titip03
Messages postés5Date d'inscriptionmercredi 31 décembre 2003StatutMembreDernière intervention15 mars 2007 27 nov. 2004 à 19:43
En fait, tu as raison, mais dans notre TP, on etait contraints d'utiliser uniquement le langage C et pas du tout C++.
Mais merci quand meme pour ton commentaire, j'essaierai de faire ca parce que c'est vrai que c'est tres lent...
Bonne journee,
Titip
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 28 avril 2004 à 16:22
me suis trompé, ds l'appel à cos() j'ai mis des degrés, il faut des radians, mais ça avec une fonction inline tu t'en sors vite fait.
aussi, ton define de PI est pas entièrement utile. la précision des float est limitée à 6 décimales (et encore!), donc tes 30 décimales servent pas à grand chose ;-)
vala
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 28 avril 2004 à 16:19
Pour les fonctions trigonométriques, ce qu'on fait souvent c'est d'au lancement du programme sauver autant de valeur que l'on veut (en fct de la précision désirée) ds des tableaux, et puis tu vas chercher tes valeurs là dedans, parce que là c bcp trop lent, j'ai essayé avec 10 cercles, 20 minutes O_o (enfin, quasiment, 1099 s)
Si tu veux une précision à un centième de degré près (tu travailles en degré ou en radians? enfin, vais le faire en degrés)
tu fais ça
float *tCosinus = new float[360 * 100];
for(int i=0; i < 360 * 100; i++)
tCosinus[i] = cos((float)i/100.0);
et pour récupérer les valeurs bien entendu comme ceci:
val = tCosinus[angle * 100.0];
ça met un peu de temps au démarrage mais c'est (probablement) un bon gain à l'utilisation. si tu testes, tu me diras quoi?
27 nov. 2004 à 19:43
Mais merci quand meme pour ton commentaire, j'essaierai de faire ca parce que c'est vrai que c'est tres lent...
Bonne journee,
Titip
28 avril 2004 à 16:22
aussi, ton define de PI est pas entièrement utile. la précision des float est limitée à 6 décimales (et encore!), donc tes 30 décimales servent pas à grand chose ;-)
vala
28 avril 2004 à 16:19
Si tu veux une précision à un centième de degré près (tu travailles en degré ou en radians? enfin, vais le faire en degrés)
tu fais ça
float *tCosinus = new float[360 * 100];
for(int i=0; i < 360 * 100; i++)
tCosinus[i] = cos((float)i/100.0);
et pour récupérer les valeurs bien entendu comme ceci:
val = tCosinus[angle * 100.0];
ça met un peu de temps au démarrage mais c'est (probablement) un bon gain à l'utilisation. si tu testes, tu me diras quoi?
Bonne journée,
Kirua