Merci Beaucoup pour toute vos reponses !!!!
Je vais pouvoir avancer, merci !
-------------------------------
Réponse au message :
-------------------------------
> Tu calcules un cube qui emglobe les points en calculant le
> min(xi), max(xi), min(yi), max(yi), min(zi), max(zi)
> {xi, yi, zi} sont chaque point:
> les 8 points du cubes sont donc:
> {min(xi), min(yi), min(zi)}
> {max(xi), min(yi), min(zi)}
> {min(xi), max(yi), min(zi)}
> {max(xi), max(yi), min(zi)}
> {min(xi), min(yi), max(zi)}
> {max(xi), min(yi), max(zi)}
> {min(xi), max(yi), max(zi)}
> {max(xi), max(yi), max(zi)}
>
> Les diagonales du cubes sont donc le diamètre de ta sphère
> centre: {(min(xi)+max(xi))/2, (min(yi)+max(yi))/2, (min(zi)+max(zi))/2}
> et le rayon est la moitié de la longueur d'une diagonale:
> sqrt((max(xi)-min(xi))²+(max(yi)-min(yi))²+(max(zi)-min(zi))²)/2
>
> Voici un exemple en C pour calculer:
>
> typedef struct {double x, y, y} point;
> typedef struct {point min, max} minmax;
> typedef struct {point centre; double rayon} sphere;
>
> // Calcule les minima et maxima
> void cal_minmax(point *nuage, int n, minmax *resultat)
> {
> int i;
>
> resultat->min= resultat->max= nuage[0];
> if( n > 1 )
> {
> for(i= 1; i < n; i++)
> {
> if( resultat->min.x > nuage[i].x )
> resultat->min.x= nuage[i].x;
> if( resultat->max.x < nuage[i].x )
> resultat->max.x= nuage[i].x;
>
> if( resultat->min.y > nuage[i].y )
> resultat->min.y= nuage[i].y;
> if( resultat->max.y < nuage[i].y )
> resultat->max.y= nuage[i].y;
>
> if( resultat->min.z > nuage[i].z )
> resultat->min.z= nuage[i].z;
> if( resultat->max.z < nuage[i].z )
> resultat->max.z= nuage[i].z;
> }
> }
> }
>
> // Calcule la sphère englobante
> void cal_sphere(point *nuage, int n, sphere *resultat)
> {
> minmax cube;
> point vect;
>
> cal_minmax(nuage, n, &cube);
>
> resultat->centre.x= (cube.max.x + cube.min.x) / 2;
> resultat->centre.y= (cube.max.y + cube.min.y) / 2;
> resultat->centre.z= (cube.max.z + cube.min.z) / 2;
>
> vect->x= cube.max.x - cube.min.x;
> vect->y= cube.max.y - cube.min.y;
> vect->z= cube.max.z - cube.min.z;
>
> resultat->rayon= sqrt((vect->x * vect->x) +
> (vect->y * vect->y) +
> (vect->z * vect->z)) / 2;
> }
>
>
Core Breaker 
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Moi aussi je sors de IUT info, et c'est vrai que les math c'est pas ca !
> >
> > Sinon, pour ta sphere, il faut (je propose) que tu fasse la moyenne des coordonéés des points, ca te donne le centre de la sphere
> > ex :
> > p1(3,5,2)
> > p2(10,2,0)
> > p3(3,9,2)
> > -->
> > psphere(5.33,5.33,1.33) -->origine
> >
> > pour le rayon, c'est la difference entre ton point le plus loin par rapport au centre de la sphere et le centre de la sphere.
> >
> > Je sais pas si c'est exact mais ca peut marcher
> >
> > Hart
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour
> > > Je dois realiser un programme qui analyse des formes du dos ; mais je reste bloque a une etape a cause de mes lacunes en maths, je m explique :
> > >
> > > Je dois dessiner a un moment des spheres qui englobent n points donnees ( des pR3 donc ).
> > > J ai besoin de son centre (3 coordonnees) et de son rayon, en fonction des n points que j aurai recupere d une maniere ou d une autre.
> > >
> > > Et evidemment je n ai AUCUNE idee de comment faire ( je sors de DUT info, les maths ne sont pas vraiment approfondies).
> > >
> > > Si l un d entre vous peut me mettre sur la voie, je lui en serait tres reconnaissant !
> > >
> > > Merci d avance.
> > >
> > > Greg.
> >
>