trouver le rayon d'1 cercle | Conversion int -> double
IvanleFou
Posté le 13-12-2002 à 01:38:58
Bonjour,
Je donne a ma fonction les cordonnees de 2 points qui doivent servir a tracer un cercle en sachant que le 1er point est le centre et le 2eme point est sur le cercle lui meme.
Trouver les rayon c'est pas bien dur avec pythagore.
le pbr c'est que je dois utiliser la fonction sqrt() qui demande en parametre un double alors que les coordonnees des points sont des int.
Comment faire marcher ca? C'est possible de passer les int en double?
Merci
Publicité
Posté le 13-12-2002 à 01:38:58
wpk
Posté le 13-12-2002 à 01:47:05
la conversion est implicite de int vers double. Donc tu peux passer un int à sqrt sans plus de façons.
IvanleFou
Posté le 13-12-2002 à 02:00:54
C'est bien ce que je me disais mais apparement le compilateur il est pas du meme avis
Citation :
cercle.cpp:117: call of overloaded `sqrt(int)' is ambiguous
CMinGW/include/math.h:148: candidates are: double sqrt(double)
CMinGW/include/c++/3.2/cmath:465: long double std::sqrt(long double)
CMinGW/include/c++/3.2/cmath:461: float std::sqrt(float)
Voici le code:
Citation :
int x1,y1,x2,y2;
double r;
i->getP1()->getCoord(&x1,&y1);
i->getP2()->getCoord(&x2,&y2);
r = round(sqrt((x2-x1)^2 + (y2-y1)^2));
wpk
Posté le 13-12-2002 à 02:11:10
dans ton cas effectivement, il y a ambiguite => il faut caster en double par exemple
Code :
r = round(sqrt(double((x2-x1)^2 + (y2-y1)^2)));
Message édité par wpk le 13-12-2002 à 02:11:24
IvanleFou
Posté le 13-12-2002 à 02:39:29
Yeeee t'es trop fort! ca marche!
par contre tu pourrais m'expliqer pourquoi 2^2 n'est pas egal a 2*2
J'ai du re-ecrire ma commande comme ca pour que ca marche:
Citation :
r = round(sqrt(double((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1))));
LeGreg
Posté le 13-12-2002 à 04:20:06
^ pour puissance n'existe pas en C++
si tu veux faire puissance de 2 de x
tu fais x*x, c'est beaucoup plus simple et
la solution la plus rapide.
tu peux l'ecrire sous forme d'une fonctiom
inline float square(float t) (return t*t);
Si tu veux faire des puissances complexes
(puissances de flottants) il doit y avoir pow()
qui doit etre defini dans math.h