input constantes;
input geometriepoint;
beginfig(1);
  affixe.B(u*(1,1));
  affixe.C(u*(5,1));
  affixe.A(u*(1,4));
  affixe.O(1/2[z.A,z.C]);
  path lun[];
  path cc[];
  cc1=cercledia(A,B);
  lun1=z.A--(subpath(0.25*length cc1,0.75*length cc1) of cc1)--z.B--cycle;
  cc2=cercledia(B,C);
  lun2=z.B--(subpath(0.5*length cc2,length cc2) of cc2)--z.C--cycle;
  lun3=z.C--arccercle(C,A,O)--z.A--cycle;
  draw hachure(60,0.3,0);
  clip currentpicture to lun1;
  picture lune[];
  lune1=currentpicture;
  currentpicture:=nullpicture;
  draw hachure(60,0.3,0);
  clip currentpicture to lun2;
  lune2=currentpicture;
  currentpicture:=nullpicture;
  affixe.B(u*(1,1))so;
  affixe.C(u*(5,1))se;
  affixe.A(u*(1,4))no;
  draw triangle(A,B,C);
  draw codeperp(A,B,C,5);
  draw lun1;
  draw lun2;
  draw lune1;
  draw lune2;
  fill lun3 withcolor 0.9*white;
  draw lun3;
endfig;
beginfig(2);
  affixe.A(u*(1,1));
  affixe.B(u*(5,1));
  affixe.C(u*(1,-4));
  affixe.O(1/2[z.B,z.C]);
  path lunu[];
  path cd[];
  cd1=cercledia(A,B);
  cd2=cercledia(A,C);
  cd3=cercledia(B,C);
  %lunu1=z.A--(subpath(0.25*length cd2,0.75*length cd2) of cd2)--z.C--arcicercle(C,A,O)--cycle;
  lunu1=z.A--arccercle(A,C,O)--z.C--(subpath(0.75*length cd2,0.25*length cd2) of cd2)--cycle;
  %lunu2=z.B--(subpath(0,0.5*length cd1) of cd1)--z.A--arcicercle(A,B,O)--cycle;
  lunu2=z.B--arccercle(B,A,O)--z.A--(subpath(0.5*length cd1,0) of cd1)--cycle;
  draw hachure(60,0.5,1);
  clip currentpicture to lunu1;
  picture lunul;
  lunul=currentpicture;
  currentpicture:=nullpicture;
  affixe.A(u*(1,1))no;
  affixe.B(u*(5,1))ne;
  affixe.C(u*(1,-4))s;
  affixe.O(1/2[z.B,z.C]);
  draw triangle(A,B,C);
  draw codeperp(B,A,C,5);
  draw lunu1;
  draw lunul;
  fill lunu2 withcolor 0.9*white;
  draw lunu2;
endfig;
end
  