-
Routine Circle Fit
Bonjour a tous,
Voila, je cherche une routine pour faire passer un cercle des points donnés.
Je cherche a l'implementer dans un petit programe qui lirait un nombre n de points d'une forme existante (3 par exemple) et qui calculerait l'equation du cercle qui passe par ces trois points.
Je sais qu'il existe des milions de manières de le faire, et que ce n'est pas vraiment compliqué. Avant de mettre les mains dans le code, je voulais juste savoir si par hasard, quelqu'un aurait ça dans son sac a malice ?
Merci d'avance
-
Bonjour,
Comme tu l'as dit, pour 3 points c'est assez facile, i faut résoudre un système de 3 équations sachant que l'équation de ton cercle (en 2D) est :
r² = (x-a)² + (y-b)² (avec a et b les coordonnées du centre et r le rayon)
Tu appliques ca aux 3 couples de coordonnées dont tu disposes et tu résouts.
(il faut vérifier au préalable que les 3 points ne soient pas alignés)
Par contre je ne comprend pas vraiment ton histoire de "n points" ?
Si on te donne moins de 3 points, il y a une infinité de solutions
Si on te donne plus de 3 points, c'est un problème sur-contraint!
-
En fait :
J'ai une forme géométrique delimité par n points. Qui defini un pseudo cercle.
Il faut que je trouve le cercle C qui s'inscrit dans cette forme géométrique.
Je cherche a faire une subroutine qui lit les coordonnées des point de ma forme géométrique de depart et qui me calcule le cercle inscrit. En général, ma forme est composé de trois cercles qui se chevauchent (comme un pop corn en gros.)
-
Si ce ne sont que des cercles que tu cherches, alors il suffit de :
1. Trouver la coordonnée centrale du cercle (par exemple en réalisant une moyenne sur les coordonnées)
2. A chaque point y associer un cercle dont le rayon sera la distance séparant le point central de chaque coordonnées
3. Moyenner les rayons ainsi obtenu pour obtenir le rayon moyen
4. Calculer l'incertitude associée au rayon (celle que tu voudras)
Ainsi tu auras normalement le cercle fittant à peut près au mieux tes points tout en ayant les barres d'erreur associées.
Note : pour que cela marche bien, il ne faut pas que la dispersion de tes points autour de tes différents cercles soit trop importante