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/2DOptSc.ps | 436 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 436 insertions(+) create mode 100644 src/doc/ps/2DOptSc.ps (limited to 'src/doc/ps/2DOptSc.ps') diff --git a/src/doc/ps/2DOptSc.ps b/src/doc/ps/2DOptSc.ps new file mode 100644 index 00000000..9e81b7b0 --- /dev/null +++ b/src/doc/ps/2DOptSc.ps @@ -0,0 +1,436 @@ +%!PS-Adobe-2.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 psDrawIStr: +% psDrawIStr +% window type: title or window +% string +% y +% x +% graphics-context dictionary +% it draws a text string in foreground color on top of bounding box of +% string, which is in background color. + +/psDrawIStr + { gsave + newpath %% for rectangle + loadFont + + /window exch def %% get window type + + %% draw bounding box with background color + /str exch def %% get text string + str stringwidth pop 1 sub %% width + FontHeight 1 sub %% height + currentfont begin %% get font height + FontBBox + end + /ypos exch def pop %% define ypos + neg ypos add /offset exch def pop + /offset ypos offset div FontHeight mul def %% define offset + /h exch def /w exch def %% define h + /y0 exch def %% define y0 + /x0 exch def %% define x0 + w h x0 y0 offset sub + window (title) eq + {hVal moveto drawRect} %% draws in title window + {rectangle} ifelse %% draws in view window + begin + BGcolor setgray fill %% set background box color + + x0 y0 + window (title) eq + {hVal} %% print title text + {yVal} ifelse %% print window text + moveto str + FGcolor setgray show %% set text color + 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 + + 1.000000 1.000000 scale + + 24 303 300 setDim + maxX maxY 0 0 rectangle clip % set clip path + + globalGC1 300 151 0 151 psDrawLine + globalGC1 154 303 154 0 psDrawLine + unitGC 198 153 198 149 psDrawLine + unitGC 186 166 (1.00) (window) psDrawIStr + unitGC 242 153 242 149 psDrawLine + unitGC 230 166 (2.00) (window) psDrawIStr + unitGC 286 153 286 149 psDrawLine + unitGC 274 166 (3.00) (window) psDrawIStr + unitGC 108 153 108 149 psDrawLine + unitGC 93 166 (-1.00) (window) psDrawIStr + unitGC 62 153 62 149 psDrawLine + unitGC 47 166 (-2.00) (window) psDrawIStr + unitGC 16 153 16 149 psDrawLine + unitGC 1 166 (-3.00) (window) psDrawIStr + unitGC 156 106 152 106 psDrawLine + unitGC 118 111 (1.00) (window) psDrawIStr + unitGC 156 61 152 61 psDrawLine + unitGC 118 66 (2.00) (window) psDrawIStr + unitGC 156 16 152 16 psDrawLine + unitGC 118 21 (3.00) (window) psDrawIStr + unitGC 156 195 152 195 psDrawLine + unitGC 109 200 (-1.00) (window) psDrawIStr + unitGC 156 239 152 239 psDrawLine + unitGC 109 244 (-2.00) (window) psDrawIStr + unitGC 156 283 152 283 psDrawLine + unitGC 109 288 (-3.00) (window) psDrawIStr + globalGC1 13 150 3 3 0 360 14 151 psFillArc + globalGC1 14 151 14 151 psDrawLine + globalGC1 13 150 3 3 0 360 14 151 psFillArc + globalGC1 20 157 14 151 psDrawLine + globalGC1 19 156 3 3 0 360 20 157 psFillArc + globalGC1 26 162 20 157 psDrawLine + globalGC1 25 161 3 3 0 360 26 162 psFillArc + globalGC1 32 168 26 162 psDrawLine + globalGC1 31 167 3 3 0 360 32 168 psFillArc + globalGC1 37 173 32 168 psDrawLine + globalGC1 36 172 3 3 0 360 37 173 psFillArc + globalGC1 43 178 37 173 psDrawLine + globalGC1 42 177 3 3 0 360 43 178 psFillArc + globalGC1 49 182 43 178 psDrawLine + globalGC1 48 181 3 3 0 360 49 182 psFillArc + globalGC1 55 186 49 182 psDrawLine + globalGC1 54 185 3 3 0 360 55 186 psFillArc + globalGC1 61 189 55 186 psDrawLine + globalGC1 60 188 3 3 0 360 61 189 psFillArc + globalGC1 66 192 61 189 psDrawLine + globalGC1 65 191 3 3 0 360 66 192 psFillArc + globalGC1 72 194 66 192 psDrawLine + globalGC1 71 193 3 3 0 360 72 194 psFillArc + globalGC1 75 195 72 194 psDrawLine + globalGC1 74 194 3 3 0 360 75 195 psFillArc + globalGC1 78 195 75 195 psDrawLine + globalGC1 77 194 3 3 0 360 78 195 psFillArc + globalGC1 81 195 78 195 psDrawLine + globalGC1 80 194 3 3 0 360 81 195 psFillArc + globalGC1 84 195 81 195 psDrawLine + globalGC1 83 194 3 3 0 360 84 195 psFillArc + globalGC1 87 195 84 195 psDrawLine + globalGC1 86 194 3 3 0 360 87 195 psFillArc + globalGC1 90 195 87 195 psDrawLine + globalGC1 89 194 3 3 0 360 90 195 psFillArc + globalGC1 93 195 90 195 psDrawLine + globalGC1 92 194 3 3 0 360 93 195 psFillArc + globalGC1 96 194 93 195 psDrawLine + globalGC1 95 193 3 3 0 360 96 194 psFillArc + globalGC1 101 192 96 194 psDrawLine + globalGC1 100 191 3 3 0 360 101 192 psFillArc + globalGC1 107 189 101 192 psDrawLine + globalGC1 106 188 3 3 0 360 107 189 psFillArc + globalGC1 113 186 107 189 psDrawLine + globalGC1 112 185 3 3 0 360 113 186 psFillArc + globalGC1 119 182 113 186 psDrawLine + globalGC1 118 181 3 3 0 360 119 182 psFillArc + globalGC1 125 178 119 182 psDrawLine + globalGC1 124 177 3 3 0 360 125 178 psFillArc + globalGC1 130 173 125 178 psDrawLine + globalGC1 129 172 3 3 0 360 130 173 psFillArc + globalGC1 136 168 130 173 psDrawLine + globalGC1 135 167 3 3 0 360 136 168 psFillArc + globalGC1 142 162 136 168 psDrawLine + globalGC1 141 161 3 3 0 360 142 162 psFillArc + globalGC1 148 157 142 162 psDrawLine + globalGC1 147 156 3 3 0 360 148 157 psFillArc + globalGC1 154 151 148 157 psDrawLine + globalGC1 153 150 3 3 0 360 154 151 psFillArc + globalGC1 159 145 154 151 psDrawLine + globalGC1 158 144 3 3 0 360 159 145 psFillArc + globalGC1 165 139 159 145 psDrawLine + globalGC1 164 138 3 3 0 360 165 139 psFillArc + globalGC1 171 134 165 139 psDrawLine + globalGC1 170 133 3 3 0 360 171 134 psFillArc + globalGC1 177 129 171 134 psDrawLine + globalGC1 176 128 3 3 0 360 177 129 psFillArc + globalGC1 183 124 177 129 psDrawLine + globalGC1 182 123 3 3 0 360 183 124 psFillArc + globalGC1 189 120 183 124 psDrawLine + globalGC1 188 119 3 3 0 360 189 120 psFillArc + globalGC1 194 116 189 120 psDrawLine + globalGC1 193 115 3 3 0 360 194 116 psFillArc + globalGC1 200 113 194 116 psDrawLine + globalGC1 199 112 3 3 0 360 200 113 psFillArc + globalGC1 206 110 200 113 psDrawLine + globalGC1 205 109 3 3 0 360 206 110 psFillArc + globalGC1 212 108 206 110 psDrawLine + globalGC1 211 107 3 3 0 360 212 108 psFillArc + globalGC1 215 107 212 108 psDrawLine + globalGC1 214 106 3 3 0 360 215 107 psFillArc + globalGC1 218 107 215 107 psDrawLine + globalGC1 217 106 3 3 0 360 218 107 psFillArc + globalGC1 221 107 218 107 psDrawLine + globalGC1 220 106 3 3 0 360 221 107 psFillArc + globalGC1 223 107 221 107 psDrawLine + globalGC1 222 106 3 3 0 360 223 107 psFillArc + globalGC1 226 107 223 107 psDrawLine + globalGC1 225 106 3 3 0 360 226 107 psFillArc + globalGC1 229 107 226 107 psDrawLine + globalGC1 228 106 3 3 0 360 229 107 psFillArc + globalGC1 232 107 229 107 psDrawLine + globalGC1 231 106 3 3 0 360 232 107 psFillArc + globalGC1 235 108 232 107 psDrawLine + globalGC1 234 107 3 3 0 360 235 108 psFillArc + globalGC1 241 110 235 108 psDrawLine + globalGC1 240 109 3 3 0 360 241 110 psFillArc + globalGC1 247 113 241 110 psDrawLine + globalGC1 246 112 3 3 0 360 247 113 psFillArc + globalGC1 252 116 247 113 psDrawLine + globalGC1 251 115 3 3 0 360 252 116 psFillArc + globalGC1 258 120 252 116 psDrawLine + globalGC1 257 119 3 3 0 360 258 120 psFillArc + globalGC1 264 124 258 120 psDrawLine + globalGC1 263 123 3 3 0 360 264 124 psFillArc + globalGC1 270 129 264 124 psDrawLine + globalGC1 269 128 3 3 0 360 270 129 psFillArc + globalGC1 276 134 270 129 psDrawLine + globalGC1 275 133 3 3 0 360 276 134 psFillArc + globalGC1 282 139 276 134 psDrawLine + globalGC1 281 138 3 3 0 360 282 139 psFillArc + globalGC1 287 145 282 139 psDrawLine + globalGC1 286 144 3 3 0 360 287 145 psFillArc + globalGC1 293 151 287 145 psDrawLine + globalGC1 292 150 3 3 0 360 293 151 psFillArc + + grestore % restore graphics state + + + cleartomark %% clearing operand stack + +end %% pops mainDict from dictionary stack + +showpage + +%-------------------------- end --------------------------% -- cgit v1.2.3