1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
% casadopessoal.mp
% L. Nobre G.
% 2011
prologues := 1;
numeric u, raio, cc, cp, espa, cpc;
u = 50mm;
raio = 0.4u;
espa = u-2*raio;
cpc = u;
cc = 2.16u;
cp =1.6u;
color pgreen, cblue;
pgreen = (139,194,52)/255;
cblue = (12,84,130)/255;
picture C, P;
def boxpath( expr w, h, r ) =
((w,0)---(w,h-r)...(w-r,h)---(r-w,h)...(-w,h-r)---(-w,r-h)...(r-w,-h)---(w-r,-h)...(w,r-h)---cycle)
enddef;
def boxdraw( expr W, H, R, coox, cooy, col ) =
fill boxpath( W/2, H/2, R ) shifted (coox,cooy) withcolor col
enddef;
beginfig(2);
numeric altur;
altur = 2*(cp+espa)+raio;
boxdraw(u,cp,raio,-0.5*(cc+espa),0.5*(cp-altur),pgreen);
boxdraw(cc,u,raio,0,cp+0.5*(espa-altur),pgreen);
boxdraw(u,cp,raio,-0.5*(cc+espa),0.5*(altur-cp)-espa-raio,pgreen);
boxdraw(cc,u,raio,0,0.5*(altur-u),pgreen);
boxdraw(u,cp,raio,0.5*(cc+espa),0.5*(altur-cp)-espa-raio,pgreen);
P = currentpicture;
endfig;
beginfig(1);
boxdraw(u,altur-2*(raio+espa),raio,-0.5*(cc+espa),0,cblue);
boxdraw(cc,u,raio,0,0.5*(u-altur),cblue);
boxdraw(u,cpc,raio,0.5*(cc+espa),0.5*(altur-cpc)-espa-raio,cblue);
boxdraw(cc,u,raio,0,0.5*(altur-u),cblue);
boxdraw(u,cpc,raio,0.5*(cc+espa),0.5*(cpc-altur)+espa+raio,cblue);
C = currentpicture;
endfig;
beginfig(3);
draw C shifted (-raio-0.5*(cc+3*espa),0);
draw P shifted (raio+0.5*(cc+3*espa),0);
endfig;
end.
|