input geometriesyr12;
figure(-4u,-4u,4u,4u);
u:=0.62cm;
z0=(0,0)*u;
z1=(0,3)*u;
z2=(0,-3)*u;
z3=(3,0)*u;z4=(-3,0)*u;
path cercle, ellipse;
cercle = z1..z3..z2..z4..cycle;
ellipse=(cercle yscaled 0.4) shifted z0;
label.urt(btex $N$ etex,z1);
label.lrt(btex $S$ etex,z2);
dotlabel.lrt(btex $O$ etex,z0);
draw (ellipse rotated 90)  dashed evenly;
draw cercle;
draw subpath ((length ellipse)/4,0.75*(length ellipse)) of ellipse;
draw subpath (0.75*(length ellipse),length ellipse) of ellipse dashed evenly;
draw subpath (0,(length ellipse)/4) of ellipse dashed evenly;
draw z1 + 0.1(z1-z2)-- z1; draw z2--z2 + 0.1(z2-z1);
draw z1--z2  dashed evenly;
draw point 0.24 of ellipse -- point 2.24of ellipse dashed evenly withcolor red;
z5 = (z0--point 0.24 of ellipse) intersectionpoint ellipse;
z6 = (z0--point 2.24 of ellipse) intersectionpoint ellipse;
dotlabel.urt(btex $N_1$ etex,z5);
label.bot(btex $r$ etex, 0.5[point 0.3 of (ellipse rotated 90),z0]);
dotlabel.llft(btex $S_1$ etex,z6);
draw (point 0.3 of (ellipse rotated 90))-- z0 dashed evenly withcolor red;
dotlabel.ulft(btex $A$ etex,point 0.3 of (ellipse rotated 90));
fin;
figure(0,0,10u,10u);
u:=1cm;
z0=(3,3)*u;
dotlabel.urt(btex $O$ etex,z0);
z1=(3.5,1)*u;
label.lrt(btex $S$ etex,z1);
z2=(2.5,5)*u;
label.urt(btex $N$ etex,z2);
path contour, ellipse,p,q,r,s,coupe;
contour=(fullcircle scaled 4.1231cm);
ellipse=(contour yscaled 0.25) rotated 14;
coupe=(contour scaled 0.88 yscaled 0.15) rotated 14;
p=(0.5,4)*u--(0.5,4)*u + 0.45*((6,5.5)*u-(0.5,4)*u);
s=(6,5.5)*u--(0.5,4)*u + 0.45*((6,5.5)*u-(0.5,4)*u);
r=contour shifted z0;
draw z0--point 0 of ellipse shifted z0 dashed evenly;
label.bot(btex $r$ etex,0.5[z0,point 0 of ellipse shifted z0]);
q=(0.5,4)*u--(0,2.5)*u--(5.5,4)*u--(6,5.5)*u;
draw contour shifted z0;
draw (subpath (0.5*(length ellipse),length ellipse) of ellipse) shifted z0;
draw (subpath (0,0.5*(length ellipse)) of ellipse) shifted z0 dashed evenly;
draw q;
draw z1--z2 dashed evenly;
draw z1--z1 + 0.08(z1-z2);
draw z2--z2+0.08(z2-z1);
dotlabel.rt(btex $H$ etex,z0+unitvector(z2-z1)*u);
dotlabel.ulft(btex $M$ etex,point 4 of (coupe shifted(z0+unitvector(z2-z1)*u)));
draw point 4 of (coupe shifted(z0+ unitvector(z2-z1)*u))--z0 dashed evenly;
draw point 4 of (coupe shifted(z0+ unitvector(z2-z1)*u))--z0+ unitvector(z2-z1)*u dashed evenly;
draw (subpath (0.5*(length coupe),length coupe) of coupe) shifted (z0+ unitvector(z2-z1)*u);
label.urt(btex $\cal P$ etex,(0,2.5)*u);
z6= point 4 of (coupe shifted(z0+ unitvector(z2-z1)*u));
z7= z0+ unitvector(z2-z1)*u;
draw (subpath (0,0.5*(length coupe)) of coupe) shifted (z0+ unitvector(z2-z1)*u) dashed evenly;
draw codeperp(z6,z7,z0,5);
draw (0.5,4)*u--(p intersectionpoint r);draw (p intersectionpoint r)--(s intersectionpoint r) dashed evenly;
draw (s intersectionpoint r)--(6,5.5)*u;
fin;
figure(-2u,-2u,7u,6u);
z0=(0,0)*u;
label.bot(btex $E$ etex,z0);
z1=(-1,1)*u;label.llft(btex $H$ etex,z1);
z2=(-1,3)*u;label.ulft(btex $D$ etex,z2);
z3=(0,2)*u; label.top(btex $A$ etex,z3);
z4=z0 shifted (2.5u,0);label.lrt(btex $K$ etex,z4);
z5=z1 shifted (2.5u,0);label.bot(btex $L$ etex,z5);
z6=z2 shifted (2.5u,0);label.ulft(btex $I$ etex,z6);
z7=z3 shifted (2.5u,0);label.lrt(btex $J$ etex,z7);
draw codeperp(z5,z4,z7,5);draw codeperp(z6,z7,z4,5);draw codeperp(z5,z6,z7,5);draw codeperp(z4,z5,z6,5);
z8 = z0 shifted (6u,0);z9 = z1 shifted (6u,0);z10 = z2 shifted (6u,0);z11 = z3 shifted (6u,0);
draw z0--z1--z2--z3--cycle; draw z0--z4;draw z1--z5 dashed evenly; draw z2--z6; draw z3--z7;
draw z4--z7--z6; draw z5--z6 dashed evenly; draw z4--z5 dashed evenly; draw z8--z9--z10 dashed evenly;draw z10--z11--z8;
z12=(1,3)*u;z13=(1,4.5)*u;z14=(3,2.5)*u;z15=(3,-1)*u;z16=(2,0)*u;
draw z12--z13--z14--z15--z16;draw z10 --((z13--z14) intersectionpoint(z10--z12));
draw z9--z5 dashed evenly; draw z8--((z8--z0) intersectionpoint(z14--z15));
draw z11--((z11--z3) intersectionpoint(z14--z15));labeloffset:=0.6cm;
label.lrt(btex $\cal P$ etex,z13 shifted (-0.35u,0));
labeloffset:=3bp;
fin;
figure(-2u,-2u,7u,6u);
z0=(0,0)*u;label.bot(btex $E$ etex,z0);
z1=(-1,1)*u;label.ulft(btex $H$ etex,z1);
z2=(-1,3)*u;label.ulft(btex $D$ etex,z2);
z3=(0,2)*u; label.top(btex $A$ etex,z3);
z4=z0 shifted (3.5u,0);label.lrt(btex $K$ etex,z4);
z5=z1 shifted (1.5u,0);label.bot(btex $L$ etex,z5);
z6= z2 shifted(1.5u,0);label.ulft(btex $I$ etex,z6);
z7=z3 shifted (3.5u,0);label.lrt(btex $J$ etex,z7);
z8 = z0 shifted (6u,0);z9 = z1 shifted (6u,0);z10 = z2 shifted (6u,0);z11 = z3 shifted (6u,0);
draw z0--z1--z2--z3--cycle;draw z0--z4;draw z1--z5 dashed evenly; draw z2--z6; draw z3--z7;
draw z4--z7--z6; draw z5--z6 dashed evenly; draw z4--z5 dashed evenly;draw z10--z11--z8;
draw codeperp(z5,z4,z7,5);draw codeperp(z6,z7,z4,5);draw codeperp(z5,z6,z7,5);draw codeperp(z4,z5,z6,5);
z12=(-0.75,0.75)*u;z13=(-1.5,1)*u;z14=(-1.5,4.5)*u;z15=(5.25,2.25)*u;z16=(5.25,-1.25)*u;z17=(1.5,0)*u;
z20=z15 - 0.1(z15-z14);z21=z16 - 0.1(z15-z14);
draw z12--z13--z14--z20--z21--z17;draw z10--((z14--z15) intersectionpoint(z10--z2));
 draw z10 --((z14--z15) intersectionpoint(z10--z9)) dashed evenly;
draw z11--((z20--z21) intersectionpoint(z11--z3));
draw z8 --((z20--z21) intersectionpoint(z0--z8));
draw z8--z9--z10 dashed evenly; draw z9--((z20--z21) intersectionpoint(z9--z1)) dashed evenly;
labeloffset:=0.3cm;
label.lrt(btex $\cal P$ etex,z14);
fin;
figure(-4u,-3u,6u,6u);
z0=(0,0)*u;
path c;
c=(fullcircle scaled 4cm)yscaled 0.375;
z1=(-4,-1)*u;z2=(-2.75,1)*u; z3=(3.75,1)*u;z4=(2.5,-1)*u;
draw z2--z1--z4--z3; draw  (subpath (0,0.5*(length c)) of c)dashed evenly;
draw (subpath(0.5*(length c),length c) of c)  ;z6=(0,4u);
draw point 0 of c -- point 0 of (c shifted z6);label.urt(btex $\cal P$etex,z1 shifted (0.2u,0));
draw point 0.5*(length c) of c -- point 0.5*(length c) of (c shifted z6);
path d,e; d=point 0.5*(length c) of c -- point 0.5*(length c) of (c shifted z6);
e=point 0 of c -- point 0 of (c shifted z6);
z5=(0,-2u);draw z2-- ((z2--z3)intersectionpoint d);
draw z3--((z3--z2) intersectionpoint e);z20=(-2.5,5.4)*u;z21=(-0.5,3.5)*u;z12=(0,-7.5u);z24=z21 shifted z12;
draw z20; draw z24;
draw z6-- ((((subpath(0.5*(length c),length c) of (c shifted z5)))intersectionpoint(z5+0.2(z5-z6)--z6))--z6) dashed evenly; draw z6--z6+0.2(z6-z5);
draw(((subpath(0.5*(length c),length c) of (c shifted z5)))intersectionpoint(z5+0.2(z5-z6)--z6)) --z5+0.2(z5-z6);
draw (c shifted z6);draw (subpath(0.5*(length c),length c) of c)  shifted z5;
draw (subpath(0,0.5*(length c)) of c) shifted z5 dashed evenly;
draw ((z1--z4) intersectionpoint (point 0.5*(length c) of c -- point 0.5*(length c) of (c shifted z5)))-- point 0.5*(length c) of (c shifted z5);
draw ((z1--z4) intersectionpoint (point 0 of c -- point 0 of (c shifted z5)))-- point 0 of (c shifted z5);
draw z0-- point 0.9*(length c)of c dashed evenly; label.top(btex$R$etex,0.5[z0,point 0.9*(length c)of c]);
draw z6--point 0.9*(length c)of (c shifted z6) dashed evenly; label.top(btex$R$etex,0.5[z6,point 0.9*(length c)of (c shifted z6)]);
fin;
figure(-3u,-4u,6u,6u);
z0=(0,0)*u;
path c,ch,cb;
c=(fullcircle scaled 4cm)yscaled 0.375;
ch=subpath (0,0.5*(length c)) of c;cb=subpath(0.5*(length c),length c) of c;
z1=(-2.5,5.4)*u;z2=(-0.5,3.5)*u;z12=(0,-7.5u);z5=(0,-2u);z6=(0,4u);
z3=z1 shifted z12; z4=z2 shifted z12;label.ulft(btex $\cal P$ etex,z4 shifted (0,0.5u));
draw z1--z3--z4--z2--cycle;draw (ch shifted z6)  cutafter (z1--z2);
draw (cb shifted z6) cutbefore (z2--z4);
 draw subpath (0,0.35*(length cb)) of (cb shifted z6);draw subpath (0.9*(length ch),length ch) of (ch shifted z6);
draw (cb shifted z5) cutbefore (z2--z4);
draw subpath (0,0.35*(length cb)) of (cb shifted z5);draw subpath (0.9*(length ch),length ch) of (ch shifted z5);
draw subpath (0,0.9*(length ch)) of (ch shifted z5)dashed evenly;
draw point 0 of c shifted z5--point 0 of ch shifted z6;
draw point 0.5*(length c) of (c shifted z5)--point 0.5*(length c) of (c shifted z6);
draw point 0.9*(length ch) of (ch shifted z6) -- point 0.35*(length cb)  of cb shifted z6;
draw point 0.35*(length cb)  of cb shifted z6--point 0.35*(length cb)  of cb shifted z5;
draw point 0.9*(length ch) of (ch shifted z5) -- point 0.35*(length cb)  of (cb shifted z5) dashed evenly;
draw point 0.9*(length ch) of (ch shifted z5) -- point 0.9*(length ch) of (ch shifted z6) dashed evenly;
z13=point  0.9*(length ch) of (ch shifted z6);z14= point 0.35*(length cb)  of cb shifted z6;
z15=point 0.9*(length ch) of (ch shifted z5);z16 = point 0.35*(length cb)  of (cb shifted z5);
draw codeperp(z15,z13,z14,5); draw codeperp(z13,z14,z16,5); draw codeperp(z14,z16,z15,5); draw codeperp(z16,z15,z13,5);
draw z6-- ((((subpath(0.5*(length c),length c) of (c shifted z5)))intersectionpoint(z5+0.2(z5-z6)--z6))--z6) dashed evenly; draw z6--z6+0.2(z6-z5);
draw(((subpath(0.5*(length c),length c) of (c shifted z5)))intersectionpoint(z5+0.2(z5-z6)--z6)) --z5+0.2(z5-z6);
draw z5-- point 0.9*(length c)of (c shifted z5) dashed evenly; label.top(btex$R$etex,0.5[z5,point 0.9*(length c)of (c shifted z5)]);
draw z6--point 0.9*(length c)of (c shifted z6) dashed evenly; label.top(btex$R$etex,0.5[z6,point 0.9*(length c)of (c shifted z6)]);
fin;
u:=5mm;
figure(-5u,-3u,6u,8u);
labeloffset:=1.5bp;
z5=(0,7)*u;
z0=(0,0)*u;z1=(4.5,2)*u;z2=(1.5,-2)*u;z3=(-4.5,-2)*u;z4=(-1.5,2)*u;
draw z1--z2--z3 ;draw z3--z4--z1 dashed evenly; z6=0.6[z3,z5];
z7=whatever [z6,z6+2(z2-z3)]=whatever[z2,z5];z8=whatever[z7,z7+2(z1-z2)]=whatever[z1,z5];
z9=whatever[z8,z8+2(z3-z2)]=whatever[z4,z5];
draw z6-- z7--z8; draw z8--z9--z6 dashed evenly;
draw z6--z5--z7;draw z5--z9 dashed evenly;draw z5--z8 ;
z10=z6-0.4(z8-z6); z11=z7+0.4(z7-z9);z12=z8+0.4(z8-z6);draw z10--z11--z12;z13=z9+0.4(z9-z7);
draw z12--(z12--z12+0.5(z13-z12)) intersectionpoint (z1--z5);
draw z13--(z13--z13+0.5(z12-z13)) intersectionpoint (z3--z5);
draw z13--z10;draw z3--(z3--z6)intersectionpoint (z10--z11);
draw z2--(z2--z7)intersectionpoint (z10--z11);
draw z1--(z1--z8)intersectionpoint (z11--z12);
draw z4--z9 dashed evenly;draw z6--z8 dashed evenly; draw z7--z9 dashed evenly;
draw z2--z4 dashed evenly; draw z1--z3 dashed evenly;
z15=whatever[z7,z9]=whatever[z6,z8];
draw codeperp(z3,z0,z15,5); draw codeperp(z6,z15,z5,5);
label.urt(btex $\cal P$ etex,z10 shifted(0.2u,0.1u));
draw z0--z5 dashed evenly;
fin;
figure(-6u,-2u,6u,6u);
z0=(0,0)*u;
path c,cb,ch; c=(fullcircle scaled 4cm)yscaled 0.3;
ch=subpath (0,0.5*(length c)) of c;cb=subpath(0.5*(length c),length c) of c;
z1=(0,5u);
draw ch dashed evenly; draw cb;draw z0--z1 dashed evenly;
draw (ch scaled 0.6) shifted (0,2u) dashed evenly;draw (cb scaled 0.6) shifted (0,2u);
draw z1--point 0 of ((c scaled 0.6)shifted (0,2u));draw z1--point 0.5*(length c) of ((c scaled 0.6)shifted (0,2u));
z2=point 0.625*(length c) of ((c scaled 0.6)shifted (0,2u));
z3=point 0.125*(length c) of ((c scaled 0.6)shifted (0,2u));
z4=point 0.875*(length c) of ((c scaled 0.6)shifted (0,2u));
z5=point 0.375*(length c) of ((c scaled 0.6)shifted (0,2u));
draw z5+0.5(z5-z4)--z2+0.7(z2-z3)--z4+0.5(z4-z5)--z3+0.7(z3-z2);
draw (z3+0.7(z3-z2)) -- ((z3+0.7(z3-z2)--z5+0.5(z5-z4))intersectionpoint (z1--point 0 of ((c scaled 0.6)shifted (0,2u))));
draw (z5+0.5(z5-z4))-- ((z3+0.7(z3-z2)--z5+0.5(z5-z4))intersectionpoint (z1--point 0.5*(length c) of ((c scaled 0.6)shifted (0,2u))));
z6=whatever[z2,z3]=whatever[z4,z5];
draw z6--point 0.5*(length c) of (c scaled 0.6)shifted (0,2u);
draw z6--point 0 of (c scaled 0.6) shifted (0,2u) dashed evenly;
draw point 0 of c--z0 dashed evenly;
draw z0--z1 dashed evenly;
draw z0--point 0.5*(length c) of c;
label.urt(btex $\cal P$ etex,z2+0.6(z2-z3));
draw point 0 of c--(point 0 of (c scaled 0.6)shifted (0,2u)--point 0 of c)intersectionpoint (z4+0.5(z4-z5)--z2+0.7(z2-z3));
draw point 0.5*(length c) of c--(point 0.5*(length c) of (c scaled 0.6)shifted (0,2u)--point 0.5*(length c) of c) intersectionpoint (z4+0.5(z4-z5)--z2+0.7(z2-z3));
fin;
u:=1cm;
figure(-6u,-10u,6u,10u);
z0=(0,0)*u;label.lrt(btex $O$ etex,z0);
  path c,cb,ch;
  c=(fullcircle scaled 4cm)yscaled 0.3;
  ch=subpath (0,0.5*(length c)) of c;cb=subpath(0.5*(length c),length c) of c;
  z1=(0,5u);label.top(btex $S$ etex,z1);
  draw ch dashed evenly; draw cb;draw z0--z1 dashed evenly;
  draw (ch scaled 0.6) shifted (0,2u) dashed evenly;draw (cb scaled 0.6) shifted (0,2u);
  draw z1--point 0 of ((c scaled 0.6)shifted (0,2u));draw z1--point 0.5*(length c) of ((c scaled 0.6)shifted (0,2u));
  z2=point 0.625*(length c) of ((c scaled 0.6)shifted (0,2u));
  z3=point 0.125*(length c) of ((c scaled 0.6)shifted (0,2u));
  z4=point 0.875*(length c) of ((c scaled 0.6)shifted (0,2u));
  z5=point 0.375*(length c) of ((c scaled 0.6)shifted (0,2u));
  draw z5+0.5(z5-z4)--z2+0.7(z2-z3)--z4+0.5(z4-z5)--z3+0.7(z3-z2);
  draw (z3+0.7(z3-z2)) -- ((z3+0.7(z3-z2)--z5+0.5(z5-z4))intersectionpoint (z1--point 0 of ((c scaled 0.6)shifted (0,2u))));
  draw (z5+0.5(z5-z4))-- ((z3+0.7(z3-z2)--z5+0.5(z5-z4))intersectionpoint (z1--point 0.5*(length c) of ((c scaled 0.6)shifted (0,2u))));
  z6=whatever[z2,z3]=whatever[z4,z5];label.urt(btex $O'$ etex,z6);
  draw z6--point 0.5*(length c) of (c scaled 0.6)shifted (0,2u);
  draw z6--point 0 of (c scaled 0.6) shifted (0,2u) dashed evenly;
  draw point 0 of c--z0 dashed evenly;
  draw z0--z1 dashed evenly;
  draw z0--point 0.5*(length c) of c;
  label.lft(btex $A'$ etex,point 0.5*(length c) of (c scaled 0.6)shifted (0,2u));
  label.lft(btex $A$ etex,point 0.5*(length c) of c);
  label.rt(btex $B'$ etex,point 0 of (c scaled 0.6)shifted (0,2u));
  label.rt(btex $B$ etex,point 0 of c);
  draw codeperp(z1,z6,point 0.5*(length c) of (c scaled 0.6)shifted (0,2u),5);
  draw codeperp(z1,z0,point 0.5*(length c) of c,5);
  label.urt(btex $\cal P$ etex,z2+0.6(z2-z3));
  draw point 0 of c--(point 0 of (c scaled 0.6)shifted (0,2u)--point 0 of c)intersectionpoint (z4+0.5(z4-z5)--z2+0.7(z2-z3));
  draw point 0.5*(length c) of c--(point 0.5*(length c) of (c scaled 0.6)shifted (0,2u)--point 0.5*(length c) of c) intersectionpoint (z4+0.5(z4-z5)--z2+0.7(z2-z3));
  fin;
  u:=5mm;
figure(-10u,-10u,10u,10u);
  labeloffset:=1.5bp;z5=(0,7)*u;
  z0=(0,0)*u;z1=(4.5,2)*u;z2=(1.5,-2)*u;z3=(-4.5,-2)*u;z4=(-1.5,2)*u;
  draw z1--z2--z3 ;draw z3--z4--z1 dashed evenly; z6=0.6[z3,z5];
  z7=whatever [z6,z6+2(z2-z3)]=whatever[z2,z5];z8=whatever[z7,z7+2(z1-z2)]=whatever[z1,z5];
  z9=whatever[z8,z8+2(z3-z2)]=whatever[z4,z5];
  draw z6-- z7--z8; draw z8--z9--z6 dashed evenly;
  draw z6--z5--z7;draw z5--z9 dashed evenly;draw z5--z8;
  z10=z6-0.4(z8-z6); z11=z7+0.4(z7-z9);z12=z8+0.4(z8-z6);draw z10--z11--z12;z13=z9+0.4(z9-z7);
  draw z12--(z12--z12+0.5(z13-z12)) intersectionpoint (z1--z5);
  draw z13--(z13--z13+0.5(z12-z13)) intersectionpoint (z3--z5);
  draw z13--z10;draw z3--(z3--z6)intersectionpoint (z10--z11);
  draw z2--(z2--z7)intersectionpoint (z10--z11);
  draw z1--(z1--z8)intersectionpoint (z11--z12);
  draw z4--z9 dashed evenly;draw z6--z8 dashed evenly; draw z7--z9 dashed evenly;
  draw z2--z4 dashed evenly; draw z1--z3 dashed evenly;
  z15=whatever[z7,z9]=whatever[z6,z8];
  draw codeperp(z3,z0,z15,8); draw codeperp(z6,z15,z5,8);
  label.urt(btex $\cal P$ etex,z10 shifted(0.2u,0.1u));label.bot(btex $O$ etex,z0);
  label.llft(btex $A$ etex,z3);label.lrt(btex $B$ etex,z2);label.rt(btex $C$ etex,z1);
  label.bot(btex $O'$ etex,z15);label.top(btex $S$ etex,z5);label.llft(btex $A'$ etex,z6);
  label.lrt(btex $B'$ etex,z7);label.rt(btex $C'$ etex,z8);label.lft(btex $D'$ etex,z9);
  label.llft(btex $D$ etex,z4);draw z0--z5 dashed evenly;
fin;
end