vardef Foo(expr w, h, lh) =
save pth; path pth;
save pthtwo; path pthtwo;
save pththree; path pththree;
save pic; picture pic;
pth = fullsquare xysized (w, h);
pthtwo = fullsquare xysized (2*lh, lh) shifted (-w/2, 2.5*lh);
pththree = fullsquare xysized (2*lh, lh) shifted (-w/2, lh);
fill pth withcolor green;
fill pthtwo withcolor yellow;
fill pththree withcolor yellow;
pic := image (
draw pth;
draw pthtwo;
draw pththree;
);
% setbounds pic to pth;
pic
enddef ;
\startMPpage
picture s ; s := Foo(8cm, 2cm, 0.25cm);
draw s;
drawdot center leftboundary s withpen pencircle scaled 2 withcolor green;
drawdot center rightboundary s withpen pencircle scaled 2 withcolor blue;
drawdot point .25 along topboundary s withpen pencircle scaled 2 withcolor yellow;
drawdot .25[llcorner s, lrcorner s] withpen pencircle scaled 2 withcolor magenta;
drawdot origin withpen pencircle scaled 4 withcolor red;
\stopMPpage