TROUVER LE CENTRE D'UN CERCLE

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 18 sept. 2007 à 20:25
flamt Messages postés 19 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 21 mai 2010 - 20 sept. 2008 à 22:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44118-trouver-le-centre-d-un-cercle

flamt Messages postés 19 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 21 mai 2010
20 sept. 2008 à 22:10
je me trompe peut être mais si on cherche l'ensemble des centre possible d'un cercle en connaissant la position de deux de ses points, la solution c'est la médiatrice de la droite formée par ces 2 points. (en fait 2 demi droite).

ensuite si on connais le rayon du cercle on se retrouve avec l'equation d'une droite, la distance d'un de nos deux point p a cette droite est la moitié de la distance p1 p2, et la distance du centre du cercle a p1 est r.
si avec tout ca on ne peux pas trouver une expression simple de la solution, sans passer par des équations compliquées ^^....
hichmous Messages postés 1 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 25 septembre 2007
25 sept. 2007 à 19:42
theta= atan(CJ/OJ) c'est pas tout le temps vrai, il faut avoir un angle droit dans le triangle COJ
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
20 sept. 2007 à 22:59
Je l'ai dit au-dessus pour systèmes non linéaires base de Groeber et algo de Buchberger
sebsheep Messages postés 3 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 20 septembre 2007
20 sept. 2007 à 19:57
Merci lucky pour ta réponse

Cyberboy>
ah ben non, faut pas pousser non plus ... sinon on aurait pas besoin de construire des supercalculateurs de plusieurs tera flops (floating operation per second) :-p
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
20 sept. 2007 à 19:50
Oui je me doute que ta méthode résoud le systeme, même s'il ne se trouve pas sous cette forme.
Mais je pensais plutot à des méthodes générales de resolutions de systemes non linéaires (genre pivot de gauss ou autres pour du linéaire)
cs_Lucky92 Messages postés 180 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 16 août 2012 2
20 sept. 2007 à 07:16
Bonjour,

en utilisant les complexes, j'obtiens les solutions non triviales par la formule suivante :

z = ( a + b ) / 2. ± i / 2. * ( b - a ) * sqrt( norm( 2 * R / ( b - a ) ) - 1 );

z affixe des centres des cercles recherchés
a , b affixes des deux points donnés
i = std::complex<double>( 0 , 1 )
std::norm( x + iy ) = x² + y²;

Pour arriver à ce résultat, j'ai utilisé la géométrie affine ; j'esquive ainsi la trigonométrie & les systèmes d'équations non linéaires. J'ai basculé en complexe uniquement pour simplifier l'implémentation.
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
19 sept. 2007 à 20:53
Pour info on peut résoudre n'importe quel système polynômial de façcon générale (base de Groebner), enfin du moins on peut isoler toutes les inconnues pour obtenir des équations indépendantes, mais évidemment il faut chercher à ce moment là des solutions numériques si le degré est supérieur ou égal à 5.
sebsheep Messages postés 3 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 20 septembre 2007
19 sept. 2007 à 20:22
ben la preuve c'est ce que j'ai fait ... mais apres doit pas falloir rajouter des trucs en plus sinon ca devient assez insolubles. Non linéaire ne veut pas dire impossible à résoudre à la main. x^2=4 est une équation non linéaire, et pourtant un 3 eme sait le faire !


Sinon pour ce qui est de la solution en résolvant le système, ca me fait des trucs assez barbares comme expressions...
Cyberboy2054 Messages postés 173 Date d'inscription jeudi 20 décembre 2001 Statut Membre Dernière intervention 22 août 2008
19 sept. 2007 à 20:08
Ya des manières non numeriques de résoudre des systemes non linéaires, comme c'est le cas ici ?
Il me semble que ca ce généralise assez mal mais bon je prends si vous avez des infos intéressantes la dessus :)
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
19 sept. 2007 à 11:32
Ben t'as deux points (x1;y1) et (x2;y2), tu cherches le centre (x;y) d'un cercle de rayon R donc tu as le système :
(x-x1)²+(y-y1)²=R²
(x-x2)²+(y-y2)²=R²

Et t'as plus qu'à résoudre ça.
sebsheep Messages postés 3 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 20 septembre 2007
19 sept. 2007 à 10:23
effectivement les exceptions ne sont pas gérées, mais vu l'application, il n'y a pas d'exception possible.

Sinon, j'avais essayé de résoudre à la main mais j'étais pas arrivé à grand chose ... tu peux m'éclairer?
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
18 sept. 2007 à 20:25
Tu devrais gérer les exceptions(p1=p2,||p1p2||>2R); il serait possible de faire cela sans trigo : résout les équations à la main dans le cas général et utilises après le résultat dans le code, ca sera plus rapide.
Et niveau initié c'est pas un peu (beaucoup) exagéré?
Rejoignez-nous