Cercle 1 : centre
M1 = <0.35,0,0>, rayon r1= 0.22.
Cercle 2 : a le centre sur l'axe des y, et
touche à l'extérieur du cercle 1 dans le point S. |
Problème 1 :
Cercle 2 a le rayon r2 = 0.30.
Où sur l'axe des y (hauteur y2) est le centre du cercle 2 ?
(M2 = <0,y2=?,0>)
Problème 2:
Cercle 2 a le centre M2 = <0,0.40,0>.
Qu'est-ce que la longueur du rayon r2 du cercle 2, si il touche le cercle 1 au point plus près?
Problème 3:
Qu'est-ce qu'il a comme coordonnées du point S ?
Problème 4:
Qu'est-ce qu'il a comme angles à M1 et M2
à l'intérieur du triangle(0,M1,M2) ?
|
Le triangle(O,M1,M2) est un triangle rectangle !
Pour cela utilisons ici le théorème de Pythagore :
// Problème 1 : //--------------------------
Nous connaissons deux côtés du triangle(O,M1,M2) :
d(0,M1) = x1 et d(M1,M2) = r1+r2.
y2 = sqrt( (r1+r2)2 - x12)
M2 = <0,y2,0>.
// Problème 2 : //--------------------------
Parce que
r1+r2 = d(M1,M2) = sqrt(x12 + y22),
nous obtenons
d(M1,M2) = sqrt( x12 - y22 )
et r2 = d(M1,M2) - r1.
// Problème 3 : //--------------------------
Il y a ici une proportionnalité simple :
xS1/xM1 = r2/ (r1+r2) et
yS/yM2 = r1/ (r1+r2),
par conséquent : xS = xM1 · r2/ (r1+r2)
  yS = yM2 · r1/ (r1+r2).
// Problème 4 : //--------------------------
Par les fonctions trigonométriques inverses
par ex. de tan(x) :
Angle(M1) = atan ( y2/ x1),
Angle(M2) = 90 - Angle(M1).
|
|
Cercles touchants rendu avec POV-Ray
Note: Pour eviter chaque collision avec des noms incorporé et des mots réservés de POV-Ray,
il est très recommandé de utiliser seulement des mots que commencent avec des capitals (lettres majuscules)
pour tous les noms des variables declarés par le utilisateur, par ex.
on prend "R1" au lieu de "r1"
et "Y2" au lieu de "yM2".
#local R1= 0.22;
#local R2= 0.30;
#local M1 = <0.35,0,0>
#local Y2 = sqrt( pow(R1+R2, 2) - pow(M1.x, 2));
#local M2 = <0,Y2,0>; |
Problème 1 en POV-Ray
#local R1= 0.22;
#local M1 = <0.35,0,0>
#local M2 = <0.40,0,0>
#local R2 = sqrt( pow(M1.x,2)-pow(M2.y,2)) - R1;
|
Problème 2 en POV-Ray
#local XS = M1.x * R2/(R1+R2);
#local YS = M2.y * R1/(R1+R2);
#local S = <XS,YS,0>
#local Angle_M1 = degrees( atan( M2.y / M1.x) );
#local Angle_M2 = 90 - Angle_M1; |
Problème 3 et 4 en POV-Ray
|