%! %%BoundingBox: 0 0 790.4 416 %%Title: (StarsAndStrips.eps) %%Creator: Julian D. A. Wiseman, contact details at jdawiseman.com %%CreationDate: (21st March 2008) %%EndComments % Measurements taken from % http://en.wikipedia.org/wiki/Flag_of_the_United_States % http://www.law.cornell.edu/uscode/uscode04/usc_sec_04_00000001----000-notes.html 11 dict begin /Hoist 416 def % defines size of flag. 416 makes flag length 790.4 pt = 10.97777", and is divisible by 13. /Fly Hoist 1.9 mul def /UnionFly Fly 0.4 mul def /StarDiameter 0.0616 Hoist mul def /OuterRadius StarDiameter 2 div def /InnerRadius 3 5 sqrt sub 2 div OuterRadius mul def /Red {191 255 div 10 255 div 48 255 div setrgbcolor} def % 191 10 48 /Blue {0 40 255 div 104 255 div setrgbcolor} def % 0 40 104 % Next line to be commented out in eps, but not in ps % << /PageSize [Fly Hoist] /ImagingBBox null >> setpagedevice % Red stripes Red 0 2 12 { dup Hoist mul 13 div exch 5 lt {0 exch Fly} {UnionFly exch Fly UnionFly sub} ifelse Hoist 13 div rectfill } for % Union less Stars (hence Union goes counter-clockwise; stars go clockwise) % Union 0 Hoist 6 mul 13 div moveto UnionFly Hoist 6 mul 13 div lineto UnionFly Hoist lineto 0 Hoist lineto closepath % Stars 1 1 2 { /s exch def s 2 9 { 10 div 7 mul 6 add Hoist mul 13 div /y exch def s 2 11 { UnionFly mul 12 div /x exch def x y OuterRadius add moveto 036 sin InnerRadius mul x add 036 cos InnerRadius mul y add lineto 072 sin OuterRadius mul x add 072 cos OuterRadius mul y add lineto 108 sin InnerRadius mul x add 108 cos InnerRadius mul y add lineto 144 sin OuterRadius mul x add 144 cos OuterRadius mul y add lineto x y InnerRadius sub lineto 216 sin OuterRadius mul x add 216 cos OuterRadius mul y add lineto 252 sin InnerRadius mul x add 252 cos InnerRadius mul y add lineto 288 sin OuterRadius mul x add 288 cos OuterRadius mul y add lineto 324 sin InnerRadius mul x add 324 cos InnerRadius mul y add lineto closepath } for % x } for % y } for % s Blue fill end showpage