%!PS-Adobe-2.0 %%Title: Blue Book Program 14, on page 187 %%Creator: Adobe Systems Incorporated %%CreationDate: Thu Dec 28 18:14:18 PST 1989 %%EndComments /PieDict 24 dict def PieDict begin /DrawSlice { /grayshade exch def /endangle exch def /startangle exch def /thelabel exch def newpath 0 0 moveto 0 0 radius startangle endangle arc closepath 1.415 setmiterlimit gsave grayshade setgray fill grestore stroke gsave startangle endangle add 2 div rotate radius 0 translate newpath 0 0 moveto labelps .8 mul 0 lineto stroke labelps 0 translate 0 0 transform grestore itransform /y exch def /x exch def x y moveto x 0 lt { thelabel stringwidth pop neg 0 rmoveto } if y 0 lt { 0 labelps neg rmoveto }if thelabel show } def /findgray { /i exch def /n exch def i 2 mod 0 eq { i 2 div n 2 div round add n div } { i 1 add 2 div n div } ifelse } def end /DrawPieChart { PieDict begin /radius exch def /ycenter exch def /xcenter exch def /PieArray exch def /labelps exch def /titleps exch def /title exch def gsave xcenter ycenter translate /Helvetica findfont titleps scalefont setfont title stringwidth pop 2 div neg radius neg titleps 3 mul sub moveto title show /Helvetica findfont labelps scalefont setfont /numslices PieArray length def /slicecnt 0 def /curangle 0 def PieArray { /slicearray exch def slicearray aload pop /percent exch def /label exch def /perangle percent 360 mul def /slicecnt slicecnt 1 add def label curangle curangle perangle add numslices slicecnt findgray DrawSlice /curangle curangle perangle add def } forall grestore end } def (January Pie Sales) 24 12 [ [(Blueberry) .12 ] [(Cherry) .30 ] [(Apple) .26 ] [(Boston Cream) .16 ] [(Other) .04 ] [(Vanilla Cream) .12 ] ] 306 396 140 DrawPieChart showpage % But what does it do?