aboutsummaryrefslogtreecommitdiff
path: root/src/doc/ps/2DOptPtC.ps
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/doc/ps/2DOptPtC.ps
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/doc/ps/2DOptPtC.ps')
-rw-r--r--src/doc/ps/2DOptPtC.ps363
1 files changed, 363 insertions, 0 deletions
diff --git a/src/doc/ps/2DOptPtC.ps b/src/doc/ps/2DOptPtC.ps
new file mode 100644
index 00000000..d91c9911
--- /dev/null
+++ b/src/doc/ps/2DOptPtC.ps
@@ -0,0 +1,363 @@
+%!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 129 0 129 psDrawLine
+ globalGC1 127 259 127 0 psDrawLine
+ globalGC1 11 128 3 3 0 360 12 129 psFillArc
+ globalGC1 12 129 12 129 psDrawLine
+ globalGC1 11 128 3 3 0 360 12 129 psFillArc
+ globalGC1 17 144 12 129 psDrawLine
+ globalGC1 16 143 3 3 0 360 17 144 psFillArc
+ globalGC1 22 159 17 144 psDrawLine
+ globalGC1 21 158 3 3 0 360 22 159 psFillArc
+ globalGC1 27 173 22 159 psDrawLine
+ globalGC1 26 172 3 3 0 360 27 173 psFillArc
+ globalGC1 32 187 27 173 psDrawLine
+ globalGC1 31 186 3 3 0 360 32 187 psFillArc
+ globalGC1 36 199 32 187 psDrawLine
+ globalGC1 35 198 3 3 0 360 36 199 psFillArc
+ globalGC1 41 210 36 199 psDrawLine
+ globalGC1 40 209 3 3 0 360 41 210 psFillArc
+ globalGC1 46 220 41 210 psDrawLine
+ globalGC1 45 219 3 3 0 360 46 220 psFillArc
+ globalGC1 51 229 46 220 psDrawLine
+ globalGC1 50 228 3 3 0 360 51 229 psFillArc
+ globalGC1 56 235 51 229 psDrawLine
+ globalGC1 55 234 3 3 0 360 56 235 psFillArc
+ globalGC1 60 240 56 235 psDrawLine
+ globalGC1 59 239 3 3 0 360 60 240 psFillArc
+ globalGC1 63 242 60 240 psDrawLine
+ globalGC1 62 241 3 3 0 360 63 242 psFillArc
+ globalGC1 65 243 63 242 psDrawLine
+ globalGC1 64 242 3 3 0 360 65 243 psFillArc
+ globalGC1 68 244 65 243 psDrawLine
+ globalGC1 67 243 3 3 0 360 68 244 psFillArc
+ globalGC1 70 244 68 244 psDrawLine
+ globalGC1 69 243 3 3 0 360 70 244 psFillArc
+ globalGC1 72 244 70 244 psDrawLine
+ globalGC1 71 243 3 3 0 360 72 244 psFillArc
+ globalGC1 75 243 72 244 psDrawLine
+ globalGC1 74 242 3 3 0 360 75 243 psFillArc
+ globalGC1 77 242 75 243 psDrawLine
+ globalGC1 76 241 3 3 0 360 77 242 psFillArc
+ globalGC1 80 240 77 242 psDrawLine
+ globalGC1 79 239 3 3 0 360 80 240 psFillArc
+ globalGC1 84 235 80 240 psDrawLine
+ globalGC1 83 234 3 3 0 360 84 235 psFillArc
+ globalGC1 89 229 84 235 psDrawLine
+ globalGC1 88 228 3 3 0 360 89 229 psFillArc
+ globalGC1 94 220 89 229 psDrawLine
+ globalGC1 93 219 3 3 0 360 94 220 psFillArc
+ globalGC1 99 210 94 220 psDrawLine
+ globalGC1 98 209 3 3 0 360 99 210 psFillArc
+ globalGC1 104 199 99 210 psDrawLine
+ globalGC1 103 198 3 3 0 360 104 199 psFillArc
+ globalGC1 108 187 104 199 psDrawLine
+ globalGC1 107 186 3 3 0 360 108 187 psFillArc
+ globalGC1 113 173 108 187 psDrawLine
+ globalGC1 112 172 3 3 0 360 113 173 psFillArc
+ globalGC1 118 159 113 173 psDrawLine
+ globalGC1 117 158 3 3 0 360 118 159 psFillArc
+ globalGC1 123 144 118 159 psDrawLine
+ globalGC1 122 143 3 3 0 360 123 144 psFillArc
+ globalGC1 127 129 123 144 psDrawLine
+ globalGC1 126 128 3 3 0 360 127 129 psFillArc
+ globalGC1 132 114 127 129 psDrawLine
+ globalGC1 131 113 3 3 0 360 132 114 psFillArc
+ globalGC1 137 99 132 114 psDrawLine
+ globalGC1 136 98 3 3 0 360 137 99 psFillArc
+ globalGC1 142 85 137 99 psDrawLine
+ globalGC1 141 84 3 3 0 360 142 85 psFillArc
+ globalGC1 147 71 142 85 psDrawLine
+ globalGC1 146 70 3 3 0 360 147 71 psFillArc
+ globalGC1 151 59 147 71 psDrawLine
+ globalGC1 150 58 3 3 0 360 151 59 psFillArc
+ globalGC1 156 48 151 59 psDrawLine
+ globalGC1 155 47 3 3 0 360 156 48 psFillArc
+ globalGC1 161 38 156 48 psDrawLine
+ globalGC1 160 37 3 3 0 360 161 38 psFillArc
+ globalGC1 166 29 161 38 psDrawLine
+ globalGC1 165 28 3 3 0 360 166 29 psFillArc
+ globalGC1 171 23 166 29 psDrawLine
+ globalGC1 170 22 3 3 0 360 171 23 psFillArc
+ globalGC1 175 18 171 23 psDrawLine
+ globalGC1 174 17 3 3 0 360 175 18 psFillArc
+ globalGC1 178 16 175 18 psDrawLine
+ globalGC1 177 15 3 3 0 360 178 16 psFillArc
+ globalGC1 180 15 178 16 psDrawLine
+ globalGC1 179 14 3 3 0 360 180 15 psFillArc
+ globalGC1 183 14 180 15 psDrawLine
+ globalGC1 182 13 3 3 0 360 183 14 psFillArc
+ globalGC1 185 14 183 14 psDrawLine
+ globalGC1 184 13 3 3 0 360 185 14 psFillArc
+ globalGC1 187 14 185 14 psDrawLine
+ globalGC1 186 13 3 3 0 360 187 14 psFillArc
+ globalGC1 190 15 187 14 psDrawLine
+ globalGC1 189 14 3 3 0 360 190 15 psFillArc
+ globalGC1 192 16 190 15 psDrawLine
+ globalGC1 191 15 3 3 0 360 192 16 psFillArc
+ globalGC1 195 18 192 16 psDrawLine
+ globalGC1 194 17 3 3 0 360 195 18 psFillArc
+ globalGC1 199 23 195 18 psDrawLine
+ globalGC1 198 22 3 3 0 360 199 23 psFillArc
+ globalGC1 204 29 199 23 psDrawLine
+ globalGC1 203 28 3 3 0 360 204 29 psFillArc
+ globalGC1 209 38 204 29 psDrawLine
+ globalGC1 208 37 3 3 0 360 209 38 psFillArc
+ globalGC1 214 48 209 38 psDrawLine
+ globalGC1 213 47 3 3 0 360 214 48 psFillArc
+ globalGC1 219 59 214 48 psDrawLine
+ globalGC1 218 58 3 3 0 360 219 59 psFillArc
+ globalGC1 223 71 219 59 psDrawLine
+ globalGC1 222 70 3 3 0 360 223 71 psFillArc
+ globalGC1 228 85 223 71 psDrawLine
+ globalGC1 227 84 3 3 0 360 228 85 psFillArc
+ globalGC1 233 99 228 85 psDrawLine
+ globalGC1 232 98 3 3 0 360 233 99 psFillArc
+ globalGC1 238 114 233 99 psDrawLine
+ globalGC1 237 113 3 3 0 360 238 114 psFillArc
+ globalGC1 243 129 238 114 psDrawLine
+ globalGC1 242 128 3 3 0 360 243 129 psFillArc
+
+ grestore % restore graphics state
+
+
+ cleartomark %% clearing operand stack
+
+end %% pops mainDict from dictionary stack
+
+showpage
+
+%-------------------------- end --------------------------%