%prologues:=2;
input constantes;
input geometriepoint;

beginfig(1);
  affixe.H(u*(1,1))o;
  affixe.E(u*(3,0))so;
  affixe.A(u*(3,1.5))so;
  affixe.F(u*(7,0.15))e;
  affixe.D(z.H shifted(z.A-z.E))o;
  affixe.B(z.F shifted(z.A-z.E))e;
  affixe.G(z.F shifted(z.H-z.E))s;
  affixe.C(z.G shifted(z.A-z.E))ne;
  affixe.I(1/2[z.H,z.F])s;
  affixe.S(z.I shifted(0,5u))n;
  affixe.O(z.I shifted(z.A-z.E))no;
  draw z.H--z.E--z.F--z.B--z.S--z.D--cycle;
  draw z.D--z.A--z.S;
  draw z.E--z.A--z.B;
  draw z.D--z.C--z.S dashed evenly;
  draw z.H--z.G--z.C--z.B dashed evenly;
  draw z.H--z.F--z.G--z.E dashed evenly;
  draw z.A--z.C dashed evenly;
  draw z.D--z.B dashed evenly;
  draw z.S--z.I dashed evenly;
endfig;
beginfig(2);
  unit=0.25*cm;
  z0=(0,0);
  affixe.O(z0)o;
  %label.bot(btex $O$ etex,z0);%centre de la sphère
  z1=(0,9*unit);
  affixe.I(z1)o;
  path cb;
  cb=cercle(O,12*unit);
  path cc;%cercle pour l'ellipse
  %cc=fullcircle scaled (2*(12+-+9)*unit);
  cc=cercle(O,(12+-+9)*unit);
  path cd;%ellipse
  cd=cc yscaled 0.15 shifted z1;
  path ce;
  ce=cb yscaled 0.15 shifted z0;
  numeric a;%longueur de l'ellipse
  a=length cd;
  draw subpath(0,(a/2)) of ce dashed evenly;
  draw subpath((a/2),a) of ce;
  draw cd;
  %draw cb;
  %draw fullcircle scaled (8*unit);
  z2=point (0) of cd;
  affixe.M(z2)ne;
  affixe.B(2[z.M,z.I]);
  draw arcicercle(M,B,O);
  %label.lrt(btex $A$ etex,z2);
  %label.llft(btex $({\cal C})$ etex,point (3*a/5) of cd);
  z3=cd intersectionpoint (z.O--z.I);
  draw z3--z0--z2 dashed evenly;
  draw z3--z1--z2;
  draw codeperp(M,I,O,5);
  affixe.J((0,-12*unit));
  cotation(I,J,13*unit,2mm, btex $h$ etex);
endfig;
end
  
  