%%Choix
%verbatimtex
%&Latex
%\documentclass{article}
%\usepackage[frenchb]{babel}
%\usepackage[latin1]{inputenc}
%\begin{document}
%etex
%%%%%%%%%
prologues:=2;
input constantes;
input geometrie31;
pair p[],q[],r[],s[],t[];
p0=u*(10,10);%O
p1=u*(15,10);%y
p2=u*(10,15);%z
p3=u*(12,12);%x
path cadre;
cadre=(0,5u)--(20u,5u)--(20u,20u)--(0,20u)--cycle;
path cerclebase;
cerclebase=cercle(p0,abs(p0-p1));
path bas[],haut[];
picture combo[];
for k=0 step 0.05 until 1:
beginfig(k*100);
draw cadre;
q[100*k]=point(k*length cerclebase) of cerclebase;
r[100*k]=q[100*k] rotatedabout(p0,90);
q[100*k+1]=projet(q[100*k],p0,p1);
r[100*k+1]=projet(r[100*k],p0,p1);
s[100*k]=1/2[p0,parallele(q[100*k+1],p0,p3,10) intersectionpoint parallele(q[100*k],p2,p3,10)];
t[100*k]=1/2[p0,parallele(r[100*k+1],p0,p3,10) intersectionpoint parallele(r[100*k],p2,p3,10)];
if k=0:
l[100*k]=abs(p0-((p0--p2) intersectionpoint parallele(s[100*k],p2,p3,10)));
fi%s[100*k]-symc(t[100*k],p0));
haut[100*k]=(s[100*k] shifted(0,l0))--(t[100*k] shifted(0,l0))--(symc(s[100*k],p0) shifted (0,l0))--(symc(t[100*k],p0) shifted (0,l0))--cycle;%haut
draw haut[100*k];
if (100*k<20) or ((100*k>90) and (100*k<100)):
draw symc(s[100*k],p0)--symc(t[100*k],p0)--s[100*k];
draw symc(s[100*k],p0)--t[100*k]--s[100*k] dashed evenly;%bas
draw t[100*k]--(t[100*k] shifted (0,l0)) dashed evenly;%arête verticale1
draw s[100*k]--(s[100*k] shifted (0,l0));%arête verticale5
draw symc(s[100*k],p0)--(symc(s[100*k],p0) shifted (0,l0));%Arête verticale4
draw symc(t[100*k],p0)--(symc(t[100*k],p0) shifted (0,l0));%Arête fixe p0--p2
fi
if ((100*k>15) and (100*k<45)):
draw t[100*k]--symc(s[100*k],p0)--symc(t[100*k],p0);
draw symc(t[100*k],p0)--s[100*k]--t[100*k] dashed evenly;
draw t[100*k]--(t[100*k] shifted (0,l0));%arête verticale1
draw s[100*k]--(s[100*k] shifted (0,l0)) dashed evenly;%arête verticale5
draw symc(s[100*k],p0)--(symc(s[100*k],p0) shifted (0,l0));%Arête verticale4
draw symc(t[100*k],p0)--(symc(t[100*k],p0) shifted (0,l0));%Arête fixe p0--p2
fi
if ((100*k>40) and (100*k<70)):
draw symc(s[100*k],p0)--symc(t[100*k],p0)--s[100*k] dashed evenly;
draw symc(s[100*k],p0)--t[100*k]--s[100*k];
draw t[100*k]--(t[100*k] shifted (0,l0));%arête verticale1
draw s[100*k]--(s[100*k] shifted (0,l0));%arête verticale5
draw symc(s[100*k],p0)--(symc(s[100*k],p0) shifted (0,l0));%Arête verticale4
draw symc(t[100*k],p0)--(symc(t[100*k],p0) shifted (0,l0)) dashed evenly;%Arête fixe p0--p2
fi
if ((100*k>65) and (100*k<95)):
draw t[100*k]--symc(s[100*k],p0)--symc(t[100*k],p0) dashed evenly;
draw symc(t[100*k],p0)--s[100*k]--t[100*k];
draw t[100*k]--(t[100*k] shifted (0,l0));%arête verticale1
draw s[100*k]--(s[100*k] shifted (0,l0));%arête verticale5
draw symc(s[100*k],p0)--(symc(s[100*k],p0) shifted (0,l0)) dashed evenly;%Arête verticale4
draw symc(t[100*k],p0)--(symc(t[100*k],p0) shifted (0,l0));%Arête fixe p0--p2
fi
draw 1.5[p0,p2]--1.5[p2,p0] dashed dashpattern(on 12bp off 6bp on 3bp off 6bp) withcolor red;
path rep,repe;
rep=cercle(p0,0.5mm);
fill rep withcolor red;
repe=rep shifted (0,l0);
fill repe withcolor red;
endfig;
endfor
end
|