Download Learning METAPOST by Doing
Transcript
Learning MetaPost by doing
VOORJAAR 2005
linejoin := rounded; linecap := squared; draw z15--z16--z17;
linejoin := beveled; linecap := butt;
draw z18--z19--z20;
linejoin := beveled; linecap := rounded; draw z21--z22--z23;
linejoin := beveled; linecap := squared; draw z24--z25--z26;
%
drawoptions();
for i=0 upto 26: dotlabel.bot(decimal(i), z[i]); endfor;
labeloffset := 25pt; label.bot("linejoin=mitered", z1);
labeloffset := 40pt; label.bot("linecap=butt",
z1);
labeloffset := 25pt; label.bot("linejoin=mitered", z4);
labeloffset := 40pt; label.bot("linecap=rounded", z4);
labeloffset := 25pt; label.bot("linejoin=mitered", z7);
labeloffset := 40pt; label.bot("linecap=squared", z7);
%
labeloffset := 25pt; label.bot("linejoin=rounded", z10);
labeloffset := 40pt; label.bot("linecap=butt",
z10);
labeloffset := 25pt; label.bot("linejoin=rounded", z13);
labeloffset := 40pt; label.bot("linecap=rounded", z13);
labeloffset := 25pt; label.bot("linejoin=rounded", z16);
labeloffset := 40pt; label.bot("linecap=squared", z16);
%
labeloffset := 25pt; label.bot("linejoin=beveled", z19);
labeloffset := 40pt; label.bot("linecap=butt",
z19);
labeloffset := 25pt; label.bot("linejoin=beveled", z22);
labeloffset := 40pt; label.bot("linecap=rounded", z22);
labeloffset := 25pt; label.bot("linejoin=beveled", z25);
labeloffset := 40pt; label.bot("linecap=squared", z25);
%
endfig;
end;
By setting the variable miterlimit, you can influence the mitering of joints. The
next example demonstrates that the value of this variable acts as a trigger, i.e. when
the value of miterlimit gets smaller than some threshhold value, then the mitered
join is replaced by a beveled value.
beginfig(1);
for i=0 upto 2:
z[3i]=(150i,0); z[3i+1]=(150i+50,-50); z[3i+2]=(150i+100,0);
endfor;
drawoptions(withpen pencircle scaled 24pt);
labeloffset:= 25pt;
linejoin := mitered; linecap:=butt;
for i=0 upto 2:
miterlimit := i;
draw z[3i]--z[3i+1]--z[3i+2];
label.bot("miterlimit=" & decimal(miterlimit), z[3i+1]);
endfor;
endfig;
end;
29