177 lines · 3.8 KB · Text
RawDownload
%% Version 3.3.2 prologue for matrix display files.% /#copies 1 store/aspectratio 1 def/font /Helvetica def/formsperpage 1 def/landscape false def/magnification 1 def/margin 10 def/orientation 0 def/rotation 1 def/size 9 def/statspace 1.6 def/ticklength .06 def/tickspacing 10 def/xoffset 0 def/yoffset 0 def /useclippath true def/pagebbox [0 0 612 792] def /inch {72 mul} bind def/min {2 copy gt {exch} if pop} bind def /show {show} bind def		% so later references don't bind/stringwidth {stringwidth} bind def /setup {	counttomark 2 idiv {def} repeat pop 	landscape {/orientation 90 orientation add def} if 	pagedimensions	height width lt {		/statspace statspace height width div mul def		/size size height width div mul def		/ticklength ticklength height width div mul def	} if	/height height margin sub statspace inch sub ticklength inch sub size 6 mul sub def	/width width margin sub ticklength inch sub def	xcenter ycenter translate	orientation rotation mul rotate	xoffset inch yoffset inch translate	0 height 2 div height width min 2 div sub translate	0 statspace inch 2 div translate	magnification dup aspectratio mul scale 	0 setlinewidth} def /pagedimensions {	useclippath {		/pagebbox [clippath pathbbox newpath] def	} if	pagebbox aload pop	4 -1 roll exch 4 1 roll 4 copy	landscape {4 2 roll} if	sub /width exch def	sub /height exch def	add 2 div /xcenter exch def	add 2 div /ycenter exch def	userdict /gotpagebbox true put} def /pagesetup {/page exch def} bind def /bitmap {	/scanlines exch def	/scanlength exch def 	/picstr scanlength string def 	gsave	height scanlines div width scanlength div min	/scaling exch def	scaling scaling scale 	scanlength neg 2 div scanlines neg 2 div translate	scanlength scanlines scale	getbitmap	grestore} bind def /getbitmap {	scanlength scanlines 8 [scanlength 0 0 scanlines neg 0 scanlines] {		0 {			currentfile token pop dup			0 eq {pop pop exit} if			/charcount exch def			picstr 1 index charcount getinterval			/repl exch def			currentfile repl readhexstring pop pop			charcount add			currentfile token pop {				picstr 1 index repl putinterval				charcount add			} repeat		} loop		picstr	} image} bind def /labelmatrix {	/matrixlimits exch def	/matrixname exch def 	gsave	scaling scaling scale	font findfont size scaling div scalefont setfont	scanlength neg 2 div scanlines 2 div translate 	0 scanlines size 1.5 mul scaling div add neg moveto	matrixname show 	scanlength scanlines size 1.5 mul scaling div add neg moveto	matrixlimits stringwidth pop neg 0 rmoveto	matrixlimits show 	newpath	0 0 moveto	scanlength 0 rlineto	0 scanlines neg rlineto	scanlength neg 0 rlineto	closepath stroke 	scanlength tickspacing idiv 1 add tickspacing 0 ticks	scanlines tickspacing idiv 1 add 0 tickspacing neg ticks	grestore} bind def /ticks {	/dy exch def	/dx exch def 	/tl ticklength inch scaling div def	newpath	0 0 moveto	{		gsave dx 0 eq {tl neg 0} {0 tl} ifelse rlineto stroke grestore		dx dy rmoveto	} repeat} bind def /legend {	/regions exch def	/total exch def 	gsave	width height min 2 div neg dup size 2 mul sub translate	0 statspace inch neg translate 	gsave	regions {		gsave		total div statspace inch size 2 mul sub mul size 2 mul add		width height min regions div exch scale		1 1 8 [1 0 0 1 0 0] 5 -1 roll image		grestore		width height min regions div 0 translate	} repeat	grestore 	width height min size 1.5 mul neg translate	font findfont size scalefont setfont	dup dup add 1 add width height min exch div /interval exch def	{    		interval neg 0 translate		interval 2 div neg 0 translate    		dup stringwidth pop 2 div neg 0 moveto show		interval 2 div neg 0 translate	} repeat	grestore} bind def /done {/lastpage where {pop lastpage} if} def