Ce message est dedie a Golf
Bon, je te garantis rien et en plus je ne peux pas tout ecrire ici.
En fait, si j'ai bien compris, les donnees de ton probleme sont les coordonnees des 3 sommets du triangle A, B et C, donc on a :
A(Xa,Ya,Za)
B(Xb,Yb,Zb)
C(Xc,Yc,Zc)
Pour trouver l'origine du cercle circonscrit, comme l'a dit El_ChiCo, il faut calculer l'intersection de deux plans mediateurs avec le plan du triangle.
D'abord, je calcule l'equation de deux vecteurs qui portent les cotes du triangle :
AB(Xb-Xa,Yb-Ya,Zb-Za)
AC(Xc-Xa,Yc-Ya,Zc-Za)
Par definition, chaque cote du triangle est normal a son plan mediateur. Or, on sait que si la normale à un plan a pour vecteur directeur
u(u,v,w), alors l'equation du plan est du style :
ux+vy+wz+t=0 ou t est encore inconnu puisqu'il existe une infinite de plans normaux au vecteur
u.
Dans la suite, je ne m'interesse qu'au cote [AB], mais il suffira de generaliser.
L'equation du plan mediateur de [AB] est donc du style :
(Xb-Xa)x+(Yb-Ya)y+(Zb-Za)z+t = 0
Pour connaitre l'equation du plan mediateur qui nous interesse, et donc determiner t, il suffit d'ecrire que le centre du cote [AB] appartient a ce plan. Les coordonnees du centre du cote [AB] sont simplement obtenues en appliquant le vecteur
AB/2 a partir des coordonnees de A. Si j'appelle D le centre de [AB], j'ai alors
D((Xa+Xb)/2,(Ya+Yb)/2,(Za+Zb)/2)
Comme D appatient au plan mediateur, j'insere ses coordonnees dans l'equation generale du plan et j'obtiens la valeur de t :
(Xb-Xa)(Xb+Xa)x/2+(Yb-Ya)(Yb+Ya)y/2+(Zb-Za)(Zb+Za)z/2+t = 0
Donc, on a :
t = 1/2(Xa²-Xb²+Ya²-Yb²+Za²-Zb²)
et l'equation exacte du plan mediateur de [AB] est connue. On refait la meme chose pour le cote [AC]et voila la premier partie achevee.
Pour l'equation du plan du triangle, simple, il suffit de dire que les sommets A,B et C appartiennent a ce plan.
Donc, dans l'equation generale :
ux+vy+wz+t = 0, remplacer x, y, et z par les coordonnees des 3 sommets, et resoudre le systeme d'equation en posant un des coefficients (u par exemple) egal a 1.
Comme le centre du cercle circonscrit (appelons le O) est le point d'intersection des deux plans mediateurs et du plan du triangle, ses coordonnees (Xo,Yo,Zo) doivent verifier le systeme constitue des equations de ces 3 plans. Et Hop, on fait rerourner la moulinette de resolution d'un systeme
On peut ensuite calculer les coordonnees du vecteur
AO par exemple :
AO(Xo-Xa,Yo-Ya,Zo-Za)
et obtenir la valeur du rayon du cercle circonscrit qui est simplement la norme de ce vecteur :
r² = (Xo-Xa)²+(Yo-Ya)²+(Zo-Za)²
L'equation du cercle sera alors du style :
(x-Xo)²+(y-Yo)²+(z-Zo)² = (Xo-Xa)²+(Yo-Ya)²+(Zo-Za)²
Il ne reste plus qu'a ecrire un programme base sur les equations ci-dessus et capable de resoudre un syteme d'equations a 3 inconnues. Ca devrait le faire.
Ah oui, et puis il faudra aussi m'envoyer 40% de tes recettes