Fichier fig021.mp (figure 1) — Modifié le 28 Mars 2008 à 22 h 09

fig021.mp (figure 1)
Source

input geometriesyr16;

typerepre:="persp";

figureespace(-5u,-5u,5u,5u);
Initialisation(10,0,10,35);
color M,M',Cent;
path CL,CF,Sect,plansec;
CL=cercles((0,0,0),(0,2,0),(0,0,0),(0,1,0),(1,0,0));
CF=cercles((0,0,0),(0,0,2),(0,0,0),(0,1,0),(0,0,1));
M=(0,2*cosd(-130),2*sind(-130));
Cent=ProjectionsurPlan(M,(0,0,0),(0,2*cosd(120),2*sind(120)),(1,0,0));
M'=(-1,greenpart(Cent),bluepart(Cent));
Sect=cercles(Cent,M,Cent,M,M');
plansec=polygone(M'+2*(M'-Cent)+1.5*(M-Cent),M+3*(Cent-M')+0.5*(M-Cent),
  Cent+1.5*(Cent-M)+3*(Cent-M'),M'+2*(M'-Cent)+1.5*(Cent-M));
%partie supérieure
trace plansec cutafter CF;
trace segment(M'+2*(M'-Cent)+1.5*(M-Cent),M'+2*(M'-Cent)+1.5*(Cent-M)) cutafter reverse(CF);
trace plansec cutbefore CF dashed evenly;
trace CF cutbefore demidroite(Cent,symetrie(M,Cent)) cutafter segment(M,M);
remplis Sect withcolor 1.1*gris;
trace subpath(0,length Sect/2) of Sect dashed evenly;
trace subpath(length Sect/2,length Sect) of Sect;
trace polygone(Cent,M,(0,0,0)) dashed evenly;
trace codeperp((0,0,0),Cent,M,5);
marque_p:="plein";
pointe(M,(0,0,0),Cent,M');
marque_p:="non";
label.top(btex $O$ etex,Projette((0,0,0)));
label.bot(btex $I$ etex,Projette(Cent));
label.llft(btex $M$ etex,Projette(M));
%partie inférieure
picture sectiondecalee;
sectiondecalee=image(
  trace CF cutafter demidroite(Cent,symetrie(M,Cent));
  trace CF cutbefore segment(M,M);
  trace Sect;
  trace hachurage(Sect,60,0.2,0);
  );
trace sectiondecalee shifted(3*(Projette(Cent)-Projette((0,0,0))));
drawarrow segment(M+2*Cent,Cent+3*Cent);
label.lft(btex Section etex,Projette(M+2*Cent));
finespace;

end