%!PS-Adobe-2.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This Postscript is Copyright (c) 2002, Peter J Billam % % c/o P J B Computing, GPO Box 669, Hobart TAS 7001, Australia % % % % Permission is granted to any individual or institution to use, copy, % % modify or redistribute this software, so long as it is not resold for % % profit, and provided this notice is retained. Neither Peter Billam % % nor P J B Computing make any representations about the suitability % % of this software for any purpose. It is provided "as is", without any % % express or implied warranty. http://www.pjb.com.au % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % pattern for a truncated tetragon, with four hexagons and three triangles % the angles of the hexagons are bloated to 140 and of the triangles to 80 % %%EndComments %%BeginProlog % universal constants /mm { 72 mul 25.4 div } bind def /pi 3.14159 def /radians { 180 mul pi div } bind def /degrees { 180 div pi mul } bind def /awl { currentpoint gsave newpath 1.5 0 360 arc fill grestore } def /sin10 10 sin def /cos10 10 cos def /tan10 sin10 cos10 div def % begin configuration /D 65 mm def /clearance 2.5 mm def /holespacing 4.0 mm def % display and layout stuff /dx D 0.3 mul def /xinst 70 mm def /yinst 15 mm def /stagger 0.05 def % end configuration % derived stuff /a D 0.3 mul def % by experiment /a_by_2 a 0.5 mul def /r a_by_2 sin10 div def /n r 20 degrees mul holespacing div round def % points per arc /d_theta 20 n div def /side { % usage: angle_in_degrees side /angle exch def % scissor line currentpoint exch r angle 80 add cos mul add exch r angle 80 add sin mul add r clearance add angle 260 add angle 280 add newpath arc currentpoint stroke moveto % awl dots % gsave 0 r d_over_2 add cos_theta mul translate % /t d_phi theta radians sub def % /i 2 def { % r t sin mul r t cos mul -1 mul moveto awl % i n ge { exit } if % /t t d_phi add def % /i i 1 add def % } loop % grestore } bind def /hexagon { gsave a_by_2 a 30 cos mul -1 mul rmoveto awl 60 side 120 side 180 side 240 side 300 side 0 side grestore } bind def /triangle { gsave a_by_2 a_by_2 60 sin 60 cos div mul -1 mul rmoveto awl 0 side 120 side 240 side grestore } bind def %%EndProlog %%Page: 1 1 %%BeginPageSetup %%EndPageSetup % print instructions ... /Times-Roman findfont 10 scalefont setfont xinst yinst 12 mm add moveto (Truncated tetrahedral juggling ball) show xinst yinst 6 mm add moveto (approx 55mm diam, 115 grams) show xinst yinst moveto (see http://www.pjb.com.au/jug) show 105 mm 150 mm moveto hexagon dx stagger mul dx translate triangle dx stagger mul -1.0 mul dx translate hexagon dx stagger mul dx translate triangle showpage %%EOF