géométrie/c++ - C++ - Programmation
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
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
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.
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.
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!
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 )
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.
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