begin process at 2012 05 29 04:49:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Fonction pour calculer l'intersection de deux cercles


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction pour calculer l'intersection de deux cercles

vendredi 27 mai 2011 à 02:39:42 | Fonction pour calculer l'intersection de deux cercles

Djoi

salut à tous

J'ai fait une fonction qui devrait me renvoyer les coordonnées de l'intersection de deux cercles mais celle-ci ne marche pas. Dites moi si vous voyez des erreurs dans mon code ou si vous avez une autre fonction à me proposer.
Merci d'avance
Voici le code :
deuxPositions intersectionCercles(int x1, int y1, float r1, int x2, int y2, float r2)
{
/* deuxpositions est une structure qui contient 4 flottants (float) */
deuxPositions dpX ;
int g1 = -x1;
int f1 = -y1;
float c1 = g1*g1 + f1*f1 - r1*r1;
int g2 = -x2;
int f2 = -y2;
float c2 = g2*g2 + f2*f2 - r2*r2;

int p = 2*(g1-g2);
int q = 2*(f1-f2);
float r = c1-c2;
int a = pow(q,2) + pow(p,2);

float b = 2*q*r - 2*p*g1*q + 2*f1*pow(p,2);
float c = pow(r,2) - 2*p*g1*r + pow(p,2)*c1;

float d = pow(b,2) - 4*a*c;

float sqrtd = sqrt(d);
float sy1 = (-b+sqrtd)/(2*a);
float sy2 = (-b-sqrtd)/(2*a);

float sx1 = (-q*sy1-r);
float sx2 ;
if(sx1 != 0) sx1/=p;
sx2 = (-q*sy2-r);
if(sx2!= 0) sx2/=p;
dpX.x1 = sx1 ;
dpX.x2 = sx2 ;
dpX.y1 = sy1 ;
dpX.y2 = sy2 ;
return dpX ;
}
vendredi 27 mai 2011 à 09:28:53 | Re : Fonction pour calculer l'intersection de deux cercles

buno

Administrateur CodeS-SourceS
Hello,
Ton code est difficile à lire sans commentaires...
La formule d'intersection est ici

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
lundi 30 mai 2011 à 21:24:13 | Re : Fonction pour calculer l'intersection de deux cercles

Djoi

Merci :)


Cette discussion est classée dans : int, float, pow, g1, dpx


Répondre à ce message

Sujets en rapport avec ce message

équation et tableaux [ par cabarrus ] je ne trouve pas l'erreur dans mon programme?#include#includeint deltanul(int);float deltainf(float);float deltasup(float);void main(void){float a,b,c dépassement capacité d'un float et int [ par golum ] result=scanf("%f",&coef); if (result !=0 && coef !=0)Voila si j'entre un nombre délirant style 9999999999999999999999999999999999999999999999999999999 arondir un float en int [ par guillaume21 ] je voudrai convertir un float en int (le cast tronque mais n'arrondi pas) sans utiliser la "bidouille" :inr i;float f;char car[6];sprintf(car,"%6.0f", Probl avec float et int [ par David2907 ] Après un calcul, comment faire pour afficher un resultat sans virgule ou un resultat avec virugule???Merci probleme cast [ par morgandetoi06 ] svp aidez moi...j utilise la fonction pow qui renvoie un doubledonc je fait double b; // nombredouble j; // exposantdouble n; // reponsen=pow(b,j);don pb incrementation variable. [ par conan76 ] Voila j'ai passé l'après midi a chercher d'ou vient mon problème sans succès.je tente même de faire des affichages console avant et après incrémentati comment tester un type de donné en C++ [ par Armandopoulos ] Salut !!en VC++Je voudrai bien savoir comment tester un type de donné (par ex. int , float , long , char) entré par l utilisateur au clavier.J ai pens C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais il y a une fonction que je pourquoi ca marche pas :'( [ par xboxut ] salut j ai un probleme avec une fonction pour initialiser des particules,pouvez vous me dire pourquoi il ne marche pas et comment le faire marcher#inc Integrale d'exponentielle en C [ par Annoka ] Bonjour,Me voici devant un probleme tres certainement numerique que je n'arrive pas a resoudre.. si quelqu'un pouvait m'aider ce serait le pied!Je sui


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales