%%%% %%%% This file belongs to the MFTOEPS package. %%%% % --- % POLYGONS.MF % --- vardef regular_polygon(expr n) = % |n| is the number of vertices; the diameter of the circumscribed circle % is equal to 1, its center is in the origin (up % first vertex for i:=1 upto n-1: -- (up rotated (i*(360/n))) % next vertices endfor -- cycle) scaled .5 enddef; vardef flex_polygon(expr n,a,b) = % |n| is the number of vertices, |a|, |b| are the angles (at vertices) % between a tangent to a ``flex side'' and the corresponding secant save zz; pair zz[ ]; % array of vertices for i:=0 upto n-1: zz[i]:=up rotated (i*(360/n)); endfor (zz[0] {(zz[1]-zz[0]) rotated a} for i:=1 upto n-1: .. {(zz[i]-zz[i-1]) rotated b} zz[i] {(zz[(i+1) mod n]-zz[i]) rotated a} endfor .. {(zz[0]-zz[n-1]) rotated b} cycle) scaled .5 enddef; endinput