|
|
1.1 ! root 1: % ! 2: % Version 3.3.1 prologue for matrix display files. ! 3: % ! 4: ! 5: /#copies 1 store ! 6: /aspectratio 1 def ! 7: /font /Helvetica def ! 8: /formsperpage 1 def ! 9: /landscape false def ! 10: /magnification 1 def ! 11: /margin 10 def ! 12: /orientation 0 def ! 13: /rotation 1 def ! 14: /size 9 def ! 15: /statspace 1.6 def ! 16: /ticklength .06 def ! 17: /tickspacing 10 def ! 18: /xoffset 0 def ! 19: /yoffset 0 def ! 20: ! 21: /useclippath true def ! 22: /pagebbox [0 0 612 792] def ! 23: ! 24: /inch {72 mul} bind def ! 25: /min {2 copy gt {exch} if pop} bind def ! 26: ! 27: /setup { ! 28: counttomark 2 idiv {def} repeat pop ! 29: ! 30: landscape {/orientation 90 orientation add def} if ! 31: ! 32: pagedimensions ! 33: height width lt { ! 34: /statspace statspace height width div mul def ! 35: /size size height width div mul def ! 36: /ticklength ticklength height width div mul def ! 37: } if ! 38: /height height margin sub statspace inch sub ticklength inch sub size 6 mul sub def ! 39: /width width margin sub ticklength inch sub def ! 40: xcenter ycenter translate ! 41: orientation rotation mul rotate ! 42: xoffset inch yoffset inch translate ! 43: 0 height 2 div height width min 2 div sub translate ! 44: 0 statspace inch 2 div translate ! 45: magnification dup aspectratio mul scale ! 46: ! 47: 0 setlinewidth ! 48: } def ! 49: ! 50: /pagedimensions { ! 51: useclippath { ! 52: /pagebbox [clippath pathbbox newpath] def ! 53: } if ! 54: pagebbox aload pop ! 55: 4 -1 roll exch 4 1 roll 4 copy ! 56: landscape {4 2 roll} if ! 57: sub /width exch def ! 58: sub /height exch def ! 59: add 2 div /xcenter exch def ! 60: add 2 div /ycenter exch def ! 61: userdict /gotpagebbox true put ! 62: } def ! 63: ! 64: /pagesetup {/page exch def} bind def ! 65: ! 66: /bitmap { ! 67: /scanlines exch def ! 68: /scanlength exch def ! 69: ! 70: /picstr scanlength string def ! 71: ! 72: gsave ! 73: height scanlines div width scanlength div min ! 74: /scaling exch def ! 75: scaling scaling scale ! 76: ! 77: scanlength neg 2 div scanlines neg 2 div translate ! 78: scanlength scanlines scale ! 79: getbitmap ! 80: grestore ! 81: } bind def ! 82: ! 83: /getbitmap { ! 84: scanlength scanlines 8 [scanlength 0 0 scanlines neg 0 scanlines] { ! 85: 0 { ! 86: currentfile token pop dup ! 87: 0 eq {pop pop exit} if ! 88: /charcount exch def ! 89: picstr 1 index charcount getinterval ! 90: /repl exch def ! 91: currentfile repl readhexstring pop pop ! 92: charcount add ! 93: currentfile token pop { ! 94: picstr 1 index repl putinterval ! 95: charcount add ! 96: } repeat ! 97: } loop ! 98: picstr ! 99: } image ! 100: } bind def ! 101: ! 102: /labelmatrix { ! 103: /matrixlimits exch def ! 104: /matrixname exch def ! 105: ! 106: gsave ! 107: scaling scaling scale ! 108: font findfont size scaling div scalefont setfont ! 109: scanlength neg 2 div scanlines 2 div translate ! 110: ! 111: 0 scanlines size 1.5 mul scaling div add neg moveto ! 112: matrixname show ! 113: ! 114: scanlength scanlines size 1.5 mul scaling div add neg moveto ! 115: matrixlimits stringwidth pop neg 0 rmoveto ! 116: matrixlimits show ! 117: ! 118: newpath ! 119: 0 0 moveto ! 120: scanlength 0 rlineto ! 121: 0 scanlines neg rlineto ! 122: scanlength neg 0 rlineto ! 123: closepath stroke ! 124: ! 125: scanlength tickspacing idiv 1 add tickspacing 0 ticks ! 126: scanlines tickspacing idiv 1 add 0 tickspacing neg ticks ! 127: grestore ! 128: } bind def ! 129: ! 130: /ticks { ! 131: /dy exch def ! 132: /dx exch def ! 133: ! 134: /tl ticklength inch scaling div def ! 135: newpath ! 136: 0 0 moveto ! 137: { ! 138: gsave dx 0 eq {tl neg 0} {0 tl} ifelse rlineto stroke grestore ! 139: dx dy rmoveto ! 140: } repeat ! 141: } bind def ! 142: ! 143: /legend { ! 144: /regions exch def ! 145: /total exch def ! 146: ! 147: gsave ! 148: width height min 2 div neg dup size 2 mul sub translate ! 149: 0 statspace inch neg translate ! 150: ! 151: gsave ! 152: regions { ! 153: gsave ! 154: total div statspace inch size 2 mul sub mul size 2 mul add ! 155: width height min regions div exch scale ! 156: 1 1 8 [1 0 0 1 0 0] 5 -1 roll image ! 157: grestore ! 158: width height min regions div 0 translate ! 159: } repeat ! 160: grestore ! 161: ! 162: width height min size 1.5 mul neg translate ! 163: font findfont size scalefont setfont ! 164: dup dup add 1 add width height min exch div /interval exch def ! 165: { ! 166: interval neg 0 translate ! 167: interval 2 div neg 0 translate ! 168: dup stringwidth pop 2 div neg 0 moveto show ! 169: interval 2 div neg 0 translate ! 170: } repeat ! 171: grestore ! 172: } bind def ! 173: ! 174: /done {/lastpage where {pop lastpage} if} def
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.