input geometriesyr16;

vardef hachurerectangle(expr pas,aa,bb)=
  pair AA,BB,CC,DD,EE;
  AA=aa;
  BB=(xpart(bb),ypart(aa));
  CC=bb;
  DD-CC=AA-BB;
  EE=rotation(AA,DD,-90);
  picture result;
  result=image(
    trace polygone(AA,BB,CC,DD);
    marque_p:="plein";
    pointe(AA,BB,CC,DD);
    for k=0 upto round(abs(CC-EE)/pas):
      trace segment(EE+pas*k*(1,0),AA+pas*k*(1,0)) cutbefore segment(AA,DD) cutafter segment(AA,BB)
      cutafter segment(BB,CC) withcolor orange;
    endfor;
    );
  result
enddef;

figure(0,0,10u,10u);
trace hachurerectangle(2mm,u*(1,1),u*(5,3));
trace hachurerectangle(5mm,u*(4,4),u*(8,8));
fin;
end