prologues:=2; input constantes; input geometriepoint; picture anim[],anims[],ensemble; path piece[],pieces[]; vues:=5; %Animation gauche beginfig(1); affixe.B(u*(6,11)); affixe.A(u*(8,15)); affixe.C(u*(12,11)); aorthocentre.H(A,B,C); affixe.D(z.A rotatedabout(z.B,90)); affixe.E(z.B rotatedabout(z.A,-90)); affixe.F(z.C rotatedabout(z.A,90)); affixe.G(z.A rotatedabout(z.C,-90)); affixe.I(z.B rotatedabout(z.C,90)); affixe.J(z.C rotatedabout(z.B,-90)); affixe.K(projet(C,E,D)); affixe.L(projet(B,F,G)); affixe.M(projet(A,I,J)); affixe.N(projet(C,A,B)); affixe.O(projet(B,A,C)); affixe.P(projet(A,B,C)); draw triangle(A,B,C); draw z.B--z.D--z.E--z.A--z.F--z.G--z.C--z.I--z.J--cycle; draw codeperp(A,P,B,5); draw codeperp(A,M,I,5); draw codeperp(B,O,C,5); draw codeperp(B,L,G,5); draw codeperp(C,N,A,5); draw codeperp(C,K,D,5); draw codeperp(A,E,D,5); draw codeperp(E,D,B,5); draw codeperp(D,B,A,5); draw codesegments(B,A,A,E,2); draw codeperp(B,J,I,5); draw codeperp(J,I,C,5); draw codeperp(I,C,B,5); draw codesegments(C,B,B,J,3); draw codeperp(C,G,F,5); draw codeperp(G,F,A,5); draw codeperp(F,A,C,5); draw codesegments(A,C,C,G,4); draw segment(A,M); draw segment(C,K); draw segment(B,L); label.llft(btex $B$ etex,z.B); label.top(btex $A$ etex,z.A); label.lrt(btex $C$ etex,z.C); label.top(btex $E$ etex,z.E); label.llft(btex $D$ etex,z.D); label.top(btex $F$ etex,z.F); label.rt(btex $G$ etex,z.G); label.lrt(btex $I$ etex,z.I); label.llft(btex $J$ etex,z.J); label.ulft(btex $K$ etex,z.K); label.urt(btex $L$ etex,z.L); label.bot(btex $M$ etex,z.M); label.top(btex $O$ etex,z.O); label.lrt(btex $P$ etex,z.P); labeloffset:=6bp; label.lrt(btex $H$ etex,z.H); label.top(btex $N$ etex,z.N); labeloffset:=3bp; ensemble=currentpicture; currentpicture:=nullpicture; for vue=0 upto vues: piece[vue]=z.B--z.D--(z.K shifted((vue/vues)*(z.C-z.N)))--(z.N shifted((vue/vues)*(z.C-z.N)))--cycle; pieces[vue]=z.C--z.G--(z.L shifted((vue/vues)*(z.B-z.O)))--(z.O shifted((vue/vues)*(z.B-z.O)))--cycle; fill piece[vue] withcolor jaune; draw piece[vue]; anim[vue]=currentpicture; currentpicture:=nullpicture; fill pieces[vue] withcolor vert; draw pieces[vue]; anims[vue]=currentpicture; currentpicture:=nullpicture; endfor for vue=1 upto vues: piece[vues+vue]=z.J--z.B--(z.A shifted((vue/vues)*(z.P-z.A)))--((z.A shifted (z.J-z.B)) shifted((vue/vues)*(z.P-z.A)))--cycle; pieces[vues+vue]=z.I--z.C--(z.A shifted((vue/vues)*(z.P-z.A)))--((z.A shifted (z.J-z.B)) shifted((vue/vues)*(z.P-z.A)))--cycle; fill piece[vues+vue] withcolor jaune; draw piece[vues+vue]; anim[vues+vue]=currentpicture; currentpicture:=nullpicture; fill pieces[vues+vue] withcolor vert; draw pieces[vues+vue]; anims[vues+vue]=currentpicture; currentpicture:=nullpicture; endfor draw ensemble; endfig; for vue=0 upto vues: beginfig(vue+2); draw anim[vue]; draw ensemble; endfig; endfor; for vue=1 upto vues: beginfig(7+vue); affixe.A(u*(8,15)); affixe.B(u*(6,11)); affixe.C(u*(12,11)); affixe.D(z.A rotatedabout(z.B,90)); draw anim[5] rotatedabout(z.B,(vue/vues)*(-90)); affixe.Z.[vue](z.D rotatedabout(z.B,(vue/vues)*(-90))); affixe.Y.[vue](z.C rotatedabout(z.B,(vue/vues)*(-90))); draw arccercle(Z.[vue],D,B) dashed evenly; draw arccercle(Y.[vue],C,B) dashed evenly; draw ensemble; endfig; endfor for vue=1 upto vues: beginfig(12+vue); draw anim[vues+vue]; draw ensemble; endfig; endfor; %Animation droite for vue=0 upto vues: beginfig(vue+18); fill piece[10] withcolor jaune; draw anims[vue]; draw ensemble; endfig; endfor; for vue=1 upto vues: beginfig(23+vue); fill piece[10] withcolor jaune; affixe.A(u*(8,15)); affixe.B(u*(6,11)); affixe.C(u*(12,11)); affixe.G(z.A rotatedabout(z.C,-90)); draw anims[5] rotatedabout(z.C,(vue/vues)*(90)); affixe.X.[vue](z.G rotatedabout(z.C,(vue/vues)*(90))); affixe.W.[vue](z.B rotatedabout(z.C,(vue/vues)*(90))); draw arccercle(G,X.[vue],C) dashed evenly; draw arccercle(B,W.[vue],C) dashed evenly; draw ensemble; endfig; endfor for vue=1 upto vues: beginfig(28+vue); fill piece[10] withcolor jaune; draw anims[vues+vue]; draw ensemble; endfig; endfor; end