[comp.lang.postscript] just for grins

robert@pyr.gatech.EDU (Robert Viduya) (07/19/88)

Here's a little picture I've hacked up.  The code needs a bit of
cleaning up 'cuz I just grabbed procs from here and there and threw them
in as I needed them.  It doesn't follow Adobe's structuring conventions,
but it wouldn't be too difficult to make it do so.

It uses one non-standard PostScript font:  ZapfChancery-MediumItalic. 
Works fine on a LaserWriter Plus and the IINTX.  It might need some
hacking if your PostScript printer doesn't support ZapfChancery-MediumItalic.

The original concept came from a scrap of paper found on the street.  I
make no claims on it.

Watch out for the .signature at the end.



--- cut here ---
/in {72 mul} bind def
/center {
    /width exch def
    /str exch def
    width str stringwidth pop sub 2 div 0 rmoveto
    str show
} bind def
/circletext {
    circtextdict begin
	/radius exch def
	/centerangle exch def
	/ptsize exch def
	/str exch def
	/xradius radius ptsize 3 div sub def
	gsave
	    centerangle str findhalfangle sub rotate
	    str {
		/charcode exch def
		( ) dup 0 charcode put placechar
	    } forall
	grestore
    end
} bind def
/circtextdict 16 dict def
circtextdict begin
    /findhalfangle {
	stringwidth pop 2 div
	2 xradius mul pi mul div 360 mul
    } bind def
    /placechar {
	/char exch def
	/halfangle char findhalfangle def
	gsave
	    halfangle rotate
	    radius 0 translate
	    90 rotate
	    char stringwidth pop 2 div neg 0 moveto
	    char show
	grestore
	halfangle 2 mul rotate
    } bind def
    /pi 3.1415923 def
end

90 rotate
0 -8.5 in translate
0.5 in 0.5 in translate

% do the void
0 setgray
newpath
0 in 0 in moveto
10 in 0 in lineto
10 in 7.5 in lineto
0 in 7.5 in lineto
0 in 0 in lineto
closepath
fill
/Helvetica findfont 24 scalefont setfont
0 .1 1.1 {
    dup dup
    7 div 4 exch add in exch
    7 div 0.5 exch sub in
    moveto
    setgray
    (The Void) show
} for

% do the metaphysical realm
0.2 setgray
newpath
1 in 3.75 in moveto
1.0 in 4.5 in 1.7 in 4.6 in 2.0 in 5.0 in curveto
2.3 in 5.4 in 2.6 in 6.4 in 3.0 in 6.0 in curveto
3.4 in 5.6 in 3.7 in 6.5 in 4.0 in 6.3 in curveto
4.3 in 6.1 in 4.5 in 6.5 in 5.0 in 6.5 in curveto
5.3 in 6.5 in 5.6 in 6.1 in 6.0 in 6.0 in curveto
6.8 in 5.8 in 6.5 in 5.5 in 7.0 in 5.4 in curveto
7.5 in 5.3 in 7.2 in 4.8 in 8.0 in 4.8 in curveto
8.4 in 4.8 in 9.0 in 4.1 in 9.0 in 3.75 in curveto
9.0 in 3.0 in 8.4 in 2.9 in 8.0 in 2.6 in curveto
7.2 in 2.0 in 7.5 in 3.0 in 7.0 in 2.0 in curveto
6.7 in 1.4 in 6.2 in 1.8 in 6.0 in 1.5 in curveto
5.8 in 1.2 in 5.4 in 1.0 in 5.0 in 1.0 in curveto
4.3 in 1.0 in 4.8 in 1.4 in 4.0 in 1.4 in curveto
3.6 in 1.4 in 3.2 in 1.1 in 3.0 in 1.5 in curveto
2.7 in 2.1 in 2.2 in 2.8 in 2.0 in 2.4 in curveto
1.8 in 2.0 in 1.0 in 3.0 in 1.0 in 3.75 in curveto
closepath
fill
0.8 setgray
/ZapfChancery-MediumItalic findfont 30 scalefont setfont
gsave
    5 in 4.3 in translate
    (Metaphysical Realm) 30 270 2.5 in circletext
grestore
% 0 in 2.2 in moveto (Metaphysical Realm) 10 in center

% do the scientific domain
0.7 setgray
3 in 5 in moveto
7 in 5 in lineto
7 in 3 in lineto
3 in 3 in lineto
3 in 5 in lineto
closepath
fill
0 setgray
/Courier-Bold findfont 24 scalefont setfont
0 in 3.8 in moveto (Scientific Domain) 10 in center

% do "You were/are here."
1 setgray
7.5 in 6 in moveto
9.0 in 6 in lineto
9.0 in 6.5 in lineto
7.5 in 6.5 in lineto
7.5 in 6 in lineto
closepath
fill
0 setgray
/Times-Italic findfont 10 scalefont setfont
7.5 in 6.2 in moveto (You were here.) 1.5 in center
2 setlinewidth
1 setgray
8.2 in 6 in moveto
6.8 in 4.6 in lineto
stroke
6.8 in 4.6 in moveto
7.0 in 4.7 in lineto
stroke
6.8 in 4.6 in moveto
6.9 in 4.8 in lineto
stroke
6.5 in 4.3 in moveto
6.7 in 4.5 in lineto
stroke
6.5 in 4.5 in moveto
6.7 in 4.3 in lineto
stroke

% done
showpage

--- cut here ---


-- 
Robert Viduya						  robert@pyr.gatech.edu
Office of Computing Services
Georgia Institute of Technology					 (404) 894-6296
Atlanta, Georgia	30332-0275