From ab8cc85adde879fb963c94d15675783f2cf4b183 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 14 Aug 2007 05:14:52 +0000 Subject: Initial population. --- src/doc/ps/23DPal.ps | 347 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 src/doc/ps/23DPal.ps (limited to 'src/doc/ps/23DPal.ps') diff --git a/src/doc/ps/23DPal.ps b/src/doc/ps/23DPal.ps new file mode 100644 index 00000000..e4dc23e8 --- /dev/null +++ b/src/doc/ps/23DPal.ps @@ -0,0 +1,347 @@ +%!IBM Personal Pageprinter (4216) Adapter Program V1.0 +%%DocumentFonts: Times-Roman +%%Creator: Axiom +%%CreationDate: today +%%Pages: 1 +%%processing (hard) limit: 250 pts or 500 values for the operand stack. +%%EndComments + +%------------------------------- prologue -------------------------------% +%-------------------------- support procedures --------------------------% + +%--------- first create user dictionary with 100 entries max ------------% +% (number can be changed to accomodate definitions) % + +100 dict begin %% using 100 entries in top level dictionary + +/FontHeight 12 def + +/inch + { 72 mul } + def + +% yVal and hVal are necessary because the Xwindow display origin +% is at the upper left corner, while the postscript display +% origin is at the lower left hand corner. + +/yVal %% get Y value -- make upper left corner origin + { maxY sub abs } %% maxY is viewWindow height + def + +/hVal %% get H value -- used for displaying title text + { maxH sub abs } %% maxH is viewWindow height+titleWindow height + def + +% loads in the font + +/loadFont + { /Times-Roman findfont FontHeight scalefont setfont } + def + +% draws a rectangle with input operand: +% height +% width +% notice that this function does not "draw" or ink the rectangle. +/drawRect + { 1 index 1 add 0 rlineto %% draw first side + 0 exch 1 add neg rlineto %% draw second side + 1 add neg 0 rlineto %% draw third side + closepath } %% draw fourth side + def + +% create a rectangle with input operand in the view window: +% y +% x +% height +% width +% notice that this function does not "draw" or ink the rectangle. +/rectangle + { yVal moveto %% set currentpoint for line + drawRect } %% draws the rectangle + def + +% These are global variables that every draw procedure uses +% THe operand should be as follows: +% viewWindow width +% viewWindow height +% title height +/setDim + { /maxX exch def %% width of display + /maxY exch def %% height of display + /titleH exch def %% height of title + /maxH maxY titleH add def %% height of display + title + } def + +%-------------------------- major procedures --------------------------% + +/title %% draws a rectangle around the title of picture + { gsave + newpath + moveto %% lower left of title + titleH 1 add 0 exch rlineto %% draw first side + 1 add 0 rlineto %% draw second side + 1 add neg 0 exch rlineto + begin installGC stroke end %% draw third side + grestore } + def + +/drawFrame %% draw display frame + { gsave + newpath + maxX maxY 0 0 rectangle + begin installGC stroke end + grestore } + def + +% updates the foreground color of existing graphics-context dictionary: +% foreground color +% dictionary name +/setForeground + { /FGcolor exch put } + def + +% updates the background color of existing graphics-context dictionary: +% background color +% dictionary name +/setBackground + { /BGcolor exch put } + def + +% updates the line width, line style, cap style, join style of +% existing graphics-context dictionary: +% dictionary name +% join style +% cap style +% line width +/setLineAttributes + { begin + /JoinStyle exch def + /CapStyle exch def + /LineWidth exch def + end } + def + +% creates a graphics context dictionary with the following information: +% /dictionary name +% foreground color +% background color +% line width +% cap style +% join style +% this creates different graphical contexts for different drawing functions. +/makeDict + { 5 dict 2 copy def begin pop %% with dict name on top of stack + /FGcolor exch def %% define drawing attributes + /BGcolor exch def %% not heavily used + /LineWidth exch def + /CapStyle exch def + /JoinStyle exch def + end } + def + +% makes the current dictionary attributes effective +% this function takes the values in the current dictionary to set the context +% these are the values currently being used: foreground, cap, join, and width +/installGC + { + FGcolor currentgray ne + {FGcolor setgray} if %% foreground color + CapStyle currentlinecap ne + {CapStyle setlinecap} if %% cap style + JoinStyle currentlinejoin ne + {JoinStyle setlinejoin} if %% join style + LineWidth currentlinewidth ne + {LineWidth setlinewidth} if } %% line width + def + +% operand stack configuration in order to use psDrawLine: +% psDrawLine +% y0 +% x0 +% y1 +% x1 +% graphics-context dictionary +% this draws a line from (x0, y0) to (x1, y1). + +/psDrawLine + { gsave + newpath + yVal moveto + yVal lineto + begin installGC stroke end + grestore } + def + +% operand stack configuration in order to use psFillArc: +% psFillArc +% y center of rectangle +% x center of rectangle +% angle2 +% angle1 +% width +% height +% y +% x +% graphics-context dictionary +% this draws and fills an arc whose origin is at x, y, and whose width +% and height specifies the rectangle which encases the arc. +% Origin is at upper left corner of rectangle. +% This function uses "scale" to make cricles and ellipses. +/psFillArc + { gsave + newpath + yVal moveto + /sfactor 4 index 4 index div def + 1 sfactor scale + 6 5 roll %% x on top of stack + 3 index 2 div add %% define x origin + 6 5 roll %% y on top of stack + 6 5 roll %% h on top of stack + 2 div add yVal sfactor div %% define y origin + 5 4 roll %% w on top of stack + 2 div %% define radius + 5 3 roll %% a1 a2 now on top + 1 index add + arcn %% draw clockwise arc + begin installGC fill end %% fills with foreground color + grestore } + def + +%-------------------------- script --------------------------% + +% 1 inch 1 inch translate + + mark %% mark bottom of our stack + + 0 0 1 + 1072693248 0 /globalGC1 makeDict + 0 0 1 + 1072693248 0 /globalGC2 makeDict + 0 0 1 + 1072693248 0 /trashGC makeDict + 0 0 1 + 1072693248 0 /globGC makeDict + 0 0 1 + 1072693248 0 /anotherGC makeDict + 0 0 1 + 1072693248 0 /graphGC makeDict + 0 0 1 + 1072693248 0 /unitGC makeDict + + gsave % save graphics state for clipping path + + 24 259 256 setDim + maxX maxY 0 0 rectangle clip % set clip path + + globalGC1 256 244 0 244 psDrawLine + globalGC1 128 259 128 0 psDrawLine + globalGC1 11 13 3 3 0 360 12 14 psFillArc + globalGC1 12 14 12 14 psDrawLine + globalGC1 11 13 3 3 0 360 12 14 psFillArc + globalGC1 17 33 12 14 psDrawLine + globalGC1 16 32 3 3 0 360 17 33 psFillArc + globalGC1 22 51 17 33 psDrawLine + globalGC1 21 50 3 3 0 360 22 51 psFillArc + globalGC1 27 68 22 51 psDrawLine + globalGC1 26 67 3 3 0 360 27 68 psFillArc + globalGC1 32 84 27 68 psDrawLine + globalGC1 31 83 3 3 0 360 32 84 psFillArc + globalGC1 36 100 32 84 psDrawLine + globalGC1 35 99 3 3 0 360 36 100 psFillArc + globalGC1 41 115 36 100 psDrawLine + globalGC1 40 114 3 3 0 360 41 115 psFillArc + globalGC1 46 129 41 115 psDrawLine + globalGC1 45 128 3 3 0 360 46 129 psFillArc + globalGC1 51 142 46 129 psDrawLine + globalGC1 50 141 3 3 0 360 51 142 psFillArc + globalGC1 56 154 51 142 psDrawLine + globalGC1 55 153 3 3 0 360 56 154 psFillArc + globalGC1 60 166 56 154 psDrawLine + globalGC1 59 165 3 3 0 360 60 166 psFillArc + globalGC1 65 177 60 166 psDrawLine + globalGC1 64 176 3 3 0 360 65 177 psFillArc + globalGC1 70 187 65 177 psDrawLine + globalGC1 69 186 3 3 0 360 70 187 psFillArc + globalGC1 75 196 70 187 psDrawLine + globalGC1 74 195 3 3 0 360 75 196 psFillArc + globalGC1 80 204 75 196 psDrawLine + globalGC1 79 203 3 3 0 360 80 204 psFillArc + globalGC1 84 212 80 204 psDrawLine + globalGC1 83 211 3 3 0 360 84 212 psFillArc + globalGC1 89 219 84 212 psDrawLine + globalGC1 88 218 3 3 0 360 89 219 psFillArc + globalGC1 94 225 89 219 psDrawLine + globalGC1 93 224 3 3 0 360 94 225 psFillArc + globalGC1 99 230 94 225 psDrawLine + globalGC1 98 229 3 3 0 360 99 230 psFillArc + globalGC1 104 234 99 230 psDrawLine + globalGC1 103 233 3 3 0 360 104 234 psFillArc + globalGC1 108 238 104 234 psDrawLine + globalGC1 107 237 3 3 0 360 108 238 psFillArc + globalGC1 113 241 108 238 psDrawLine + globalGC1 112 240 3 3 0 360 113 241 psFillArc + globalGC1 118 243 113 241 psDrawLine + globalGC1 117 242 3 3 0 360 118 243 psFillArc + globalGC1 123 244 118 243 psDrawLine + globalGC1 122 243 3 3 0 360 123 244 psFillArc + globalGC1 127 244 123 244 psDrawLine + globalGC1 126 243 3 3 0 360 127 244 psFillArc + globalGC1 132 244 127 244 psDrawLine + globalGC1 131 243 3 3 0 360 132 244 psFillArc + globalGC1 137 243 132 244 psDrawLine + globalGC1 136 242 3 3 0 360 137 243 psFillArc + globalGC1 142 241 137 243 psDrawLine + globalGC1 141 240 3 3 0 360 142 241 psFillArc + globalGC1 147 238 142 241 psDrawLine + globalGC1 146 237 3 3 0 360 147 238 psFillArc + globalGC1 151 234 147 238 psDrawLine + globalGC1 150 233 3 3 0 360 151 234 psFillArc + globalGC1 156 230 151 234 psDrawLine + globalGC1 155 229 3 3 0 360 156 230 psFillArc + globalGC1 161 225 156 230 psDrawLine + globalGC1 160 224 3 3 0 360 161 225 psFillArc + globalGC1 166 219 161 225 psDrawLine + globalGC1 165 218 3 3 0 360 166 219 psFillArc + globalGC1 171 212 166 219 psDrawLine + globalGC1 170 211 3 3 0 360 171 212 psFillArc + globalGC1 175 204 171 212 psDrawLine + globalGC1 174 203 3 3 0 360 175 204 psFillArc + globalGC1 180 196 175 204 psDrawLine + globalGC1 179 195 3 3 0 360 180 196 psFillArc + globalGC1 185 187 180 196 psDrawLine + globalGC1 184 186 3 3 0 360 185 187 psFillArc + globalGC1 190 177 185 187 psDrawLine + globalGC1 189 176 3 3 0 360 190 177 psFillArc + globalGC1 195 166 190 177 psDrawLine + globalGC1 194 165 3 3 0 360 195 166 psFillArc + globalGC1 199 154 195 166 psDrawLine + globalGC1 198 153 3 3 0 360 199 154 psFillArc + globalGC1 204 142 199 154 psDrawLine + globalGC1 203 141 3 3 0 360 204 142 psFillArc + globalGC1 209 129 204 142 psDrawLine + globalGC1 208 128 3 3 0 360 209 129 psFillArc + globalGC1 214 115 209 129 psDrawLine + globalGC1 213 114 3 3 0 360 214 115 psFillArc + globalGC1 219 100 214 115 psDrawLine + globalGC1 218 99 3 3 0 360 219 100 psFillArc + globalGC1 223 84 219 100 psDrawLine + globalGC1 222 83 3 3 0 360 223 84 psFillArc + globalGC1 228 68 223 84 psDrawLine + globalGC1 227 67 3 3 0 360 228 68 psFillArc + globalGC1 233 51 228 68 psDrawLine + globalGC1 232 50 3 3 0 360 233 51 psFillArc + globalGC1 238 33 233 51 psDrawLine + globalGC1 237 32 3 3 0 360 238 33 psFillArc + globalGC1 243 14 238 33 psDrawLine + globalGC1 242 13 3 3 0 360 243 14 psFillArc + + grestore % restore graphics state + + + cleartomark %% clearing operand stack + +end %% pops mainDict from dictionary stack + +showpage + +%-------------------------- end --------------------------% -- cgit v1.2.3