géométrie/c++

géométrie/c++ - C++ - Programmation

Marsh Posté le 25-11-2007 à 14:55:53    

bonjour,  
 
bon alors voilà j'ai une petite partie de programme à faire en c++ et il se trouve que je suis un peu attardé quand il s'agit de programmation.
 
En fait ce que je cherche à faire c'est de trouver le centre d'une sphere à partir de l'aquisition de plusieur points équidistant au centre de cette sphère.
 
Je travaille en fait avec un programme 3D qui acquérit la position de capteur infrarouge. Donc physiquement ce qu'il se passe, c'est que j'ai une tige qui possède à une extrémité un capteur infrarouge et rien à l'autre extrémité, je fais tourner cette tige un peu n'importe comment en gardant l'extrémité nue de la tige fixe. J'obtiens ainsi l'aquisition de plusieurs points qui déterminent le surface de ma sphère dont je dois trouver le centre.
 
Mon programme s'occupe déjà de l'acquisition sans souci, ce que je cherche mnt c'est comment trouver ce fameux centre, enfin j'ai bien une petite idée d'un point de vue analytique mais s'il y a des algorithmes c++ tout fait qlqpart ça m'arrangerait lol

Reply

Marsh Posté le 25-11-2007 à 14:55:53   

Reply

Marsh Posté le 25-11-2007 à 21:27:45    

Ben si tu vois comment résoudre analytiquement, tu as la moitié du travail de fait, non ?
Moi, là, de tête je vois pas trop.
Intuitivement, je dirais qu'il faut au moins 4 points sur la surface pour déterminer la sphère de façon unique, et donc il faut résoudre le système:
 
(xi-xc)^2 + (yi-yc)^2 + (zi-zc)^2 = R^2
pour i = 1...4


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 26-11-2007 à 12:11:18    

Oui c'est ce à quoi j'avais pensé aussi.
 
Merci ;)
 
Si qqun à autre chose à proposer je suis tjs preneur :-p

Reply

Marsh Posté le 26-11-2007 à 12:40:14    

Il faut s'assurer avant de faire le calcul que les 4 points ne sont pas sur le même plan, sinon tu as une infinité de solutions si je ne m'abuse (en tout cas, au moins deux, puisque le centre peut être par symétrie de chaque côté du plan)
 
Et pour obtenir un centre précis, parmis toutes tes mesures, cherches les 4 points les plus éloignés les uns des autres possibles.


Message édité par MagicBuzz le 26-11-2007 à 12:40:53
Reply

Marsh Posté le 26-11-2007 à 14:22:41    

Pour la solution analytique, je pense qu'il faut remarquer que un couple de points de la sphère plus le centre forment un triangle isocèle.

Message cité 1 fois
Message édité par el muchacho le 26-11-2007 à 14:23:39

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 26-11-2007 à 14:31:00    

el muchacho a écrit :

Pour la solution analytique, je pense qu'il faut remarquer que un couple de points de la sphère plus le centre forment un triangle isocèle.


Donc le centre est a l'intersection des medianes entre AB et BC (ou AC), A, B, C se trouvant sur le cercle?
EDIT: ah ben non, c'est sur une sphere il faut donc un autre point!


Message édité par breizhbugs le 26-11-2007 à 14:32:35
Reply

Marsh Posté le 26-11-2007 à 15:01:34    

Logiquement, lorsque tu as 4 points.
 
Tu prends tes points deux à deux.
Tu cherche le plan médian à chacun de tes deux segments.
Du trouves alors une droite sur laquelle les deux plants se rencontrent (si c'est pas le cas, faut trouver d'autres points, t'es dans un cas à la con, genre les  :D)
 
Le centre du cercle sera la point O de cette droite où AO = BO = CO = DO normalement :)
 
En toute logique, si tu cherches aussi les plans médians des deux autres segments formés par tes 4 points, le centre sera le point d'intersection de tes 4 plans.


Message édité par MagicBuzz le 26-11-2007 à 15:02:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed