71 lines
2.9 KiB
Prolog
71 lines
2.9 KiB
Prolog
|
|
%%BeginProlog
|
||
|
|
%
|
||
|
|
% PostScript prolog for output from magic plot
|
||
|
|
% Version: 1.0
|
||
|
|
% written by Tim Edwards 4/05/00 JHU Applied Physics Laboratory
|
||
|
|
%
|
||
|
|
%%BeginResource: procset MAGICproc 1.0 1
|
||
|
|
% supporting definitions
|
||
|
|
|
||
|
|
/MAGICsave save def
|
||
|
|
|
||
|
|
/bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 setgray } def
|
||
|
|
/ninit { /nChars matrix currentmatrix dup 0 get 0 eq {1} {0}
|
||
|
|
ifelse get abs 72 8.5 mul mul 64 div ceiling cvi def } def
|
||
|
|
/minit { 1 1 dtransform abs dup 1 exch div /onePix exch def
|
||
|
|
dup /resY exch def 1 exch div /iresY exch def
|
||
|
|
abs dup /resX exch def 1 exch div /iresX exch def
|
||
|
|
/bX 64 iresX mul def /bY 64 iresY mul def
|
||
|
|
/pattFont StipplePattern definefont pop
|
||
|
|
/patterns /pattFont findfont [iresX 64 mul 0 0 iresY 64 mul 0 0] makefont def
|
||
|
|
/ca nChars 1 add string def
|
||
|
|
} def
|
||
|
|
/StipplePattern 45 dict def
|
||
|
|
StipplePattern begin
|
||
|
|
/FontType 3 def
|
||
|
|
/FontMatrix [1 0 0 1 0 0] def
|
||
|
|
/FontBBox [0 0 1 1] def
|
||
|
|
/Encoding 256 array def
|
||
|
|
/PattName (P0) def
|
||
|
|
/tmpStr 1 string def
|
||
|
|
/NoPatt {<00>} def
|
||
|
|
0 1 255 { Encoding exch /NoPatt put } for
|
||
|
|
/BuildChar {
|
||
|
|
1 0 0 0 1 1 setcachedevice exch begin Encoding exch get load
|
||
|
|
64 64 true [64 0 0 64 0 0] 5 -1 roll imagemask end } def
|
||
|
|
end
|
||
|
|
/dp { StipplePattern begin dup 30 tmpStr cvrs PattName exch 1 exch
|
||
|
|
putinterval PattName cvn dup Encoding exch 4 -1 roll exch put exch
|
||
|
|
store end } def
|
||
|
|
/sf { findfont exch scalefont setfont } bind def
|
||
|
|
/sp { patterns setfont 2 setlinewidth } def
|
||
|
|
/lb { gsave translate 0 0 moveto /just exch def gsave dup true charpath
|
||
|
|
flattenpath pathbbox grestore exch 4 -1 roll exch sub 3 1 roll sub
|
||
|
|
just 4 and 0 gt {just 8 and 0 eq {0.5 mul} if}{pop 0} ifelse exch
|
||
|
|
just 1 and 0 gt {just 2 and 0 eq {0.5 mul} if}{pop 0} ifelse exch
|
||
|
|
rmoveto show grestore } def
|
||
|
|
/sl { 0 1 nChars { exch dup 3 1 roll ca 3 1 roll put } for pop } def
|
||
|
|
/sc { setcmykcolor } bind def
|
||
|
|
/l1 { onePix setlinewidth } def
|
||
|
|
/l2 { onePix 2 mul setlinewidth } def
|
||
|
|
/l3 { onePix 3 mul setlinewidth } def
|
||
|
|
/ml { moveto lineto stroke } bind def
|
||
|
|
/vl { moveto 0 exch rlineto stroke } bind def
|
||
|
|
/hl { moveto 0 rlineto stroke } bind def
|
||
|
|
/mr { rectstroke } bind def
|
||
|
|
/mx { 4 copy rectstroke 4 -1 roll 4 -1 roll 4 copy moveto rlineto stroke
|
||
|
|
3 -1 roll dup neg 4 1 roll add moveto rlineto stroke } bind def
|
||
|
|
/pl { gsave translate /d exch def 0 d neg moveto 0 d lineto stroke
|
||
|
|
d neg 0 moveto d 0 lineto stroke grestore } bind def
|
||
|
|
/bx { x resX mul cvi 63 not and dup iresX mul exch
|
||
|
|
w resX mul sub abs 63 add cvi 64 idiv /w exch def
|
||
|
|
y resY mul cvi 63 not and dup iresY mul exch
|
||
|
|
h resY mul sub abs 63 add cvi 64 idiv /h exch def
|
||
|
|
/ch ca 0 w getinterval def
|
||
|
|
moveto h { ch gsave show grestore 0 bY rmoveto } repeat grestore } def
|
||
|
|
/fb {/h exch def /w exch def /y exch def /x exch def gsave newpath
|
||
|
|
x y moveto w y lineto w h lineto x h lineto closepath clip bx } def
|
||
|
|
/tb {1 sub 3 1 roll gsave newpath moveto {lineto} repeat closepath clip pathbbox
|
||
|
|
/h exch def /w exch def /y exch def /x exch def bx } def
|
||
|
|
|