%!PS-Adobe-1.0 %%Creator:John Harding copr 2005 %%Title:Analemmatic Sundial %%DocumentFonts:Times-Roman %%BoundingBox:0 0 615 792 %%EndProlog %%Page:1 1 % /LAT 45.4 def %YOUR /WIDTH 9.0 def %DATA /MOTTO (Time Flies Like an Arrow)def %HERE /fnt 12 def /xmax 612 def /ymax 792 def /str 10 string def /SMA WIDTH 2 div 72 mul def /fntme{fnt mul /Times-Roman findfont exch scalefont setfont}def /cen{dup stringwidth pop -2 div fnt -3 div rmoveto}def /getpt{dup sin exch cos div LAT cos mul SMA mul 0 exch moveto}def /range{ %earliest sunrise/set LAT 64 ge{/lo -165 def /hi 180 def} {/T 0 def { 23.44 sin LAT sin mul 23.44 cos T cos LAT cos mul mul add %sinH dup dup mul neg 1 add sqrt div %tanH 0 le {exit}{/T T 15 add def}ifelse }loop /hi T def /lo T neg def }ifelse }def /lips{ lo 15 hi{/T exch def T sin SMA mul LAT sin T cos mul SMA mul moveto gsave currentpoint newpath fnt 1.9 div 0 360 arc stroke grestore T 15 div dup 0 le {12.0 add}if cvi str cvs cen show }for }def /F 1 def /cnt 0 def /zodi{-23.44 getpt currentpoint neg lineto stroke [-23.1 -21.67 -17.3 -14 -8 -2.9 4.25 8.5 15 18 22 23] { getpt F 20 mul 0 rlineto gsave stroke grestore -10 F mul fnt 2 div F mul rmoveto [(J)(D)(F)(N)(M)(O)(A)(S)(M)(A)(J)(J)]cnt get cen show /cnt cnt 1 add def /F F neg def }forall }def /motto{-35 getpt MOTTO cen show}def .1 setlinewidth xmax 2 div ymax 2 div translate 90 rotate 1 fntme range lips newpath 0 0 .5 0 360 arc stroke zodi 1.5 fntme motto grestore .7 fntme xmax 36 sub 72 moveto 90 rotate (Analemmatic sundial for latitude )show LAT str cvs show ( degrees -copr 2005 jh)show showpage %%Trailer