%%[slideshow] \input slideshow; author("Christophe Poulain"); title("Animation de section de solides"); %%[navigation] \input navigation; couleurboutons:=(1,1,0.3); couleurfond:=(0,0,0.7); %% Choix de LaTeX verbatimtex %&latex \documentclass[a4paper]{article} \usepackage[latin1]{inputenc} \usepackage[frenchb]{babel} \begin{document} etex %%[geometrie] input geometrie2; %%[Image] picture cp; cp=thelabel(btex \sf C.POULAIN -- 2002 etex scaled 0.5,(0.90lawidth,0.03laheight)); footer(image(draw cp withcolor blue;)); %% -- navigation PDF & logos def navPDFlogos = init_navigation; navigation; internavigation; enddef; extra_endfig := extra_endfig & "navPDFlogos;"; % gs will need this prologues:=2; %fond d'écran noslides := 11; def doback = background := image(drawgradient((charcode/noslides)[white,white], (charcode/noslides)[white,white]);); enddef; doback; %cadre path cadre; cadre=(0.05lawidth,0.9laheight)--(0.95lawidth,0.9laheight)--(0.95lawidth,0.98laheight)--(0.05lawidth,0.98laheight)--cycle; draw cadre; %% -- instructions color C[]; C6=0.8white; vardef instruction(expr s) = fill cadre withcolor C6; label.rt(s,p100); enddef; %[Animation] nextfig; label(btex \Large\bf Différentes sections etex scaled 2,(.502lawidth,.688laheight)) withcolor 0.3white; blabel(btex \Large\bf Différentes sections etex scaled 2,(.50lawidth,.69laheight)); label(btex \Large\bf de solides. etex scaled 2,(.502lawidth,.548laheight)) withcolor 0.3white; blabel(btex \Large\bf de solides. etex scaled 2,(.5lawidth,.55laheight)); hyperdest("start"); endfig; u=1.5cm; pair p[],plan[]; p0=u*(4,1);%B p1=u*(9,1); p2=1/5[p0,p1]; p3=2/3[p0,p1];%C p5=u*(5.2,6);%D p6=1/4[p2,p5];%A p7=2/3[p6,milieu(p0,p3)];%Isobarycentre de la base plan0=p0 shifted (-u,-0.5u); plan1=p3 shifted (u,-0.5u); plan3=plan0 shifted (0.5u,1.95u); plan2=plan3 shifted (plan1-plan0); plan4=droite(plan2,plan3,10) intersectionpoint droite(p3,p5,10); plan5=droite(plan2,plan3,10) intersectionpoint droite(p0,p5,10); nextfig; draw plan0--plan1--plan2--plan4; draw plan4--plan5 dashed evenly; draw plan5--plan3--plan0; picture plandebase; plandebase=currentpicture; draw p0--p3--p5--cycle; draw p6--p0 dashed evenly; draw p6--p5 dashed evenly; draw p6--p3 dashed evenly; dotlabel.llft(btex $B$ etex,p0); dotlabel.ulft(btex $A$ etex,p6); dotlabel.lrt(btex $C$ etex,p3); dotlabel.top(btex $D$ etex,p5); endfig; discontinue; vues:=15; path section[]; pair g[],h[],i[]; for vue=1 upto vues : nextfig; pair G,H,K,bary,fleche; K=(vue/(vues+2))[p5,p3]-p5; g[vue]=p5 shifted K; h[vue]=para(g[vue],p0,p3,10) intersectionpoint (p5--p0); i[vue]=para(h[vue],p0,p6,10) intersectionpoint (p5--p6); bary=2/3[i[vue],milieu(g[vue],h[vue])]; G=((plan0--plan1) shifted (bary-p7)) intersectionpoint (p5--p3); H=((plan0--plan1) shifted (bary-p7)) intersectionpoint (p5--p0); fleche=bary shifted (u,1.15u); section[vue]=buildcycle(para(g[vue],p0,p3,10),para(h[vue],p0,p6,10),para(g[vue],p6,p3,10)); if vue=9: draw hachure(60,0.1) withcolor blue; clip currentpicture to section[vue]; draw p5--h[vue]--g[vue]--cycle; draw p5--i[vue] dashed evenly; draw section[vue]; dotlabel.top(btex $D$ etex,p5); picture coffre; coffre=currentpicture; currentpicture:=nullpicture; draw hachure(60,0.1) withcolor red; clip currentpicture to section[vue]; draw coffre rotatedabout(h[vue],120); draw h[vue]--p0--p3--g[vue];; draw p6--p0 dashed evenly; draw p6--i[vue] dashed evenly; draw p6--p3 dashed evenly; dotlabel.llft(btex $B$ etex,p0); dotlabel.ulft(btex $A$ etex,p6); dotlabel.lrt(btex $C$ etex,p3); draw section[vue]; draw plandebase; drawarrow fleche--bary withpen pencircle scaled 0.25bp;draw fleche--(fleche shifted (u,0)) withpen pencircle scaled 0.25bp; label.rt(btex Section de la pyramide ${\cal P}$ etex,(fleche shifted (u,0))); else: draw hachure(60,0.1) withcolor red; clip currentpicture to section[vue]; draw H--p0--p3--G; draw g[vue]--p5--h[vue]; draw g[vue]--G dashed evenly; draw h[vue]--H dashed evenly; draw p6--p0 dashed evenly; draw p6--p5 dashed evenly; draw p6--p3 dashed evenly; dotlabel.llft(btex $B$ etex,p0); dotlabel.ulft(btex $A$ etex,p6); dotlabel.lrt(btex $C$ etex,p3); dotlabel.top(btex $D$ etex,p5); draw section[vue]; draw plandebase; draw plandebase shifted (bary-p7) dashed dashpattern(on 12bp off 6bp on 3bp off 6bp) withcolor 0.4[red,blue]; drawarrow fleche--bary withpen pencircle scaled 0.25bp;draw fleche--(fleche shifted (u,0)) withpen pencircle scaled 0.25bp; label.rt(btex Section de la pyramide ${\cal P}$ etex,(fleche shifted (u,0))); fi endfig; endfor end