Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1138 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  trouver le rayon d'1 cercle | Conversion int -> double

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

trouver le rayon d'1 cercle | Conversion int -> double

n°268781
IvanleFou
Posté le 13-12-2002 à 01:38:58  profilanswer
 

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

mood
Publicité
Posté le 13-12-2002 à 01:38:58  profilanswer
 

n°268784
wpk
Posté le 13-12-2002 à 01:47:05  profilanswer
 

la conversion est implicite de int vers double. Donc tu peux passer un int à sqrt sans plus de façons.

n°268785
IvanleFou
Posté le 13-12-2002 à 02:00:54  profilanswer
 

C'est bien ce que je me disais mais apparement le compilateur il est pas du meme avis :heink:  
 

Citation :

cercle.cpp:117: call of overloaded `sqrt(int)' is ambiguous
C:/MinGW/include/math.h:148: candidates are: double sqrt(double)
C:/MinGW/include/c++/3.2/cmath:465:                 long double std::sqrt(long  
   double)
C:/MinGW/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));


 
 :??:

n°268786
wpk
Posté le 13-12-2002 à 02:11:10  profilanswer
 

dans ton cas effectivement, il y a ambiguite => il faut caster en double par exemple
 

Code :
  1. r = round(sqrt(double((x2-x1)^2 + (y2-y1)^2)));


Message édité par wpk le 13-12-2002 à 02:11:24
n°268788
IvanleFou
Posté le 13-12-2002 à 02:39:29  profilanswer
 

Yeeee t'es trop fort! ca marche! :sol:  
 
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))));

n°268794
LeGreg
Posté le 13-12-2002 à 04:20:06  profilanswer
 

^ 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
 
LeGreg


---------------
voxel terrain render engine | animation mentor
n°268805
IvanleFou
Posté le 13-12-2002 à 08:13:31  profilanswer
 

ok, merci a tous les deux pour vos reponses :jap:


Message édité par IvanleFou le 13-12-2002 à 08:13:47

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  trouver le rayon d'1 cercle | Conversion int -> double

 

Sujets relatifs
Trouver des versions démo de Power Builder, Windev ou VB.Net ??Ou puis-je trouver une liste de ts les pays pr mettre dans un combo?
[php] probleme de conversion :) un petit coup de main serait sympatracer un cercle avec la methode pset
[Algo]ou trouver des infos sur le parcours des arbres ?où trouver un site de bruitages?
Ou trouver des tutoriaux pour apprendre le javatraiter les overflows pour des calculs d'entier et de double en c++
ou trouver autocad?conversion doc -> pdf
Plus de sujets relatifs à : trouver le rayon d'1 cercle | Conversion int -> double


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR