%!PS-Adobe-2.0 %%Title: Blue Book Program 5, on page 145 %%Creator: Adobe Systems Incorporated %%CreationDate: Thu Dec 28 13:19:30 PST 1989 %%EndComments /centerdash { /pattern exch def /pathlen pathlength def /patternlength 0 def pattern { patternlength add /patternlength exch def } forall pattern length 2 mod 0 ne { /patternlength patternlength 2 mul def } if /first pattern 0 get def /last patternlength first sub def /n pathlen last sub cvi patternlength idiv def /endpart pathlen patternlength n mul sub last sub 2 div def /offset first endpart sub def pattern offset setdash } def /pathlength { flattenpath /dist 0 def { /yfirst exch def /xfirst exch def /ymoveto yfirst def /xmoveto xfirst def } { /ynext exch def /xnext exch def /dist dist ynext yfirst sub dup mul xnext xfirst sub dup mul add sqrt add def /yfirst ynext def /xfirst xnext def } {} { /ynext ymoveto def /xnext xmoveto def /dist dist ynext yfirst sub dup mul xnext xfirst sub dup mul add sqrt add def /yfirst ynext def /xfirst xnext def } pathforall dist } def 5 setlinewidth newpath 72 500 moveto 378 500 lineto [30] centerdash stroke newpath 72 400 moveto 378 400 lineto [30 50] centerdash stroke newpath 72 300 moveto 378 300 lineto [30 10 5 10] centerdash stroke newpath 72 200 moveto 378 200 lineto [30 15 10] centerdash stroke newpath 225 390 300 240 300 arc [40 10] centerdash stroke showpage % But what does it do?