summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps')
-rw-r--r--Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps1423
1 files changed, 0 insertions, 1423 deletions
diff --git a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps b/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps
deleted file mode 100644
index 8e69bb05ea6..00000000000
--- a/Master/texmf-dist/doc/generic/pst-eucl/Examples/triangle.ps
+++ /dev/null
@@ -1,1423 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips(k) 5.95b Copyright 2005 Radical Eye Software
-%%Title: triangle.dvi
-%%Pages: 1
-%%PageOrder: Ascend
-%%BoundingBox: 0 0 595 842
-%%DocumentFonts: CMMI10 CMR10
-%%DocumentPaperSizes: a4
-%%EndComments
-%DVIPSWebPage: (www.radicaleye.com)
-%DVIPSCommandLine: dvips triangle.dvi
-%DVIPSParameters: dpi=600
-%DVIPSSource: TeX output 2005.10.05:2257
-%%BeginProcSet: tex.pro 0 0
-%!
-/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
-N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
-mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
-0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
-landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
-mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
-matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
-exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
-statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
-N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
-/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
-/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
-array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
-df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
-definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
-}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
-B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
-1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S
-/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy
-setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask
-restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
-/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
-}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
-bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
-mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
-SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
-userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
-1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
-index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
-/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
-/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
-(LaserWriter 16/600)]{A length product length le{A length product exch 0
-exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
-end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
-grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
-imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
-exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
-fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
-delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
-B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
-p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
-rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
-
-%%EndProcSet
-%%BeginProcSet: pstricks.pro 0 0
-%!
-% PostScript prologue for pstricks.tex.
-% Version 1.00, 2005/09/18
-% For distribution, see pstricks.tex.
-%
-/tx@Dict 200 dict def tx@Dict begin
-/ADict 25 dict def
-/CM { matrix currentmatrix } bind def
-/SLW /setlinewidth load def
-/CLW /currentlinewidth load def
-/CP /currentpoint load def
-/ED { exch def } bind def
-/L /lineto load def
-/T /translate load def
-/TMatrix { } def
-/RAngle { 0 } def
-/Atan { /atan load stopped { pop pop 0 } if } def
-/ATAN1 {neg -1 atan 180 sub } def % atan(x) (only one parameter)
-/Div { dup 0 eq { pop } { div } ifelse } def % control the division
-/NET { neg exch neg exch T } def % change coordinate system to the negative one
-/Pyth { dup mul exch dup mul add sqrt } def % Pythagoras, epects 2 parameter
-/PtoC { 2 copy cos mul 3 1 roll sin mul } def % Polar to Cartesian
-%----------------- hv added 20050516 ---------------
-/Pi 3.14159265359 def
-/TwoPi 6.28318530718 def
-/Euler 2.71828182846 def
-/RadtoDeg { 180 mul Pi div } def % convert from radian to degrees
-/DegtoRad { Pi mul 180 div } def % viceversa
-%----------------- hv end---------------------------
-/PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def } def
-/PathLength { flattenpath /z 0 def
- { /y1 ED /x1 ED /y2 y1 def /x2 x1 def
- }{ /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ }
- /pathforall load stopped { pop pop pop pop } if z } def
-/STP { .996264 dup scale } def
-/STV { SDict begin normalscale end STP } def
-%
-%%-------------- DG begin patch 15 ---------------%%
-%/DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
-%PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y
-%mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul
-%/y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]
-%0 } ifelse setdash stroke } def
-/DashLine {
- dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def PathLength } ifelse
- /b ED /x1 ED /y1 ED /x ED /y ED
- /z y x add y1 add x1 add def
- /Coef b a .5 sub 2 mul y mul sub z Div round
- z mul a .5 sub 2 mul y mul add b exch Div def
- /y y Coef mul def
- /x x Coef mul def
- /y1 y1 Coef mul def
- /x1 x1 Coef mul def
- x1 0 gt y1 0 gt or x 0 gt or y 0 gt and
- { [ y x y1 x1 ] 1 a sub y mul }
- { [ 1 0 ] 0 } ifelse
- setdash stroke
-} def
-%%-------------- DG end patch 15 ---------------%%
-/DotLine {
- /b PathLength def
- /a ED /z ED /y CLW def
- /z y z add def
- a 0 gt {
- /b b a div def
- }{
- a 0 eq {
- /b b y sub def
- }{ a -3 eq {
- /b b y add def } if
- } ifelse
- } ifelse
- [ 0 b b z Div round Div dup 0 le { pop 1 } if ]
- a 0 gt { 0 }{ y 2 div a -2 gt { neg }if } ifelse
- setdash 1 setlinecap stroke
-} def
-%
-/LineFill { % hv ------------ patch 7 -------------
- gsave
- abs /hatchWidthInc ED
- abs /hatchSepInc ED
- abs CLW add /a ED
- a 0 dtransform round exch round exch
- 2 copy idtransform
- exch Atan rotate
- idtransform pop /a ED
- .25 .25 itransform pathbbox
- /y2 ED
- a Div ceiling cvi /x2 ED /y1 ED
- a Div cvi /x1 ED /y2 y2 y1 sub def
- clip
- newpath
- 2 setlinecap
- systemdict
- /setstrokeadjust known { true setstrokeadjust } if
- x2 x1 sub 1 add {
- x1 a mul y1 moveto 0 y2 rlineto stroke
- /x1 x1 1 add
- hatchWidthInc 0 gt { CLW add } if
- def
- hatchSepInc 0 gt hatchWidthInc 0 gt or {
- /a a hatchSepInc add def
- CLW hatchWidthInc add SLW
- } if
- } repeat
- grestore
- pop pop } def
-%
-%gsave abs CLW add /a ED a 0 dtransform round exch round exch
-%2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
-%% DG/SR modification begin - Dec. 12, 1997 - Patch 2
-%%itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
-%itransform pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
-%% DG/SR modification end
-%Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict
-%/setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1
-%% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
-%% a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
-%% def
-%a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore
-%pop pop } def
-%% DG/SR modification end
-%
-/BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg
-exch 3 index sub exch Atan rotate newpath } def
-/EndArrow { @mtrx setmatrix CP grestore end } def
-/Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1
-scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill
-grestore } def
-/Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0
-CLW moveto } def
-/Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2
-div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0
-CLW moveto } def
-/RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW
-2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0
-curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto }
-def
-/SD { 0 360 arc fill } def
-/EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS
-CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def
-/Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
-/closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
-load } if ] cvx newpath 3 1 roll T exec } def
-/NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch
-cvi def } def
-/NArray { % holds the coordinates and on top of stack the showpoints boolean
- /f ED
- counttomark 2 div dup cvi /n ED
- n eq not { exch pop } if
- f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse
-} def
-/Line {
- NArray n 0 eq not
- { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub def
- n { Lineto } repeat
- CP 4 2 roll ArrowB L pop pop
- } if
-} def
-/Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 }
- ifelse { pop } repeat a } def
-/CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
- and { pop pop /n n 1 sub def } if } def
-/Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop }
- repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1
- ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1
- moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto
- Lineto pop pop closepath } ifelse } def
-/Diamond {
- /mtrx CM def
- T rotate
- /h ED
- /w ED
- dup 0 eq { pop } { CLW mul neg
- /d ED
- /a w h Atan def
- /h d a sin Div h add def
- /w d a cos Div w add def } ifelse
- mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2 div
- /ArrowA { moveto } def
- /ArrowB { } def
- false Line
- closepath mtrx setmatrix } def
-% DG modification begin - Jan. 15, 1997
-%/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
-%pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
-%div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
-%d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
-%setmatrix } def
-/Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup
-CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
-div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0
-d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
-% DG/SR modification begin - Jun. 1, 1998 - Patch 3 (from Michael Vulis)
-% setmatrix } def
-setmatrix pop } def
-% DG/SR modification end
-/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
-def } def
-/CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
-def } def
-/CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
-def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp
-mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos
-abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def
-/y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul
-m mul neg def } def
-/IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if }
-ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def }
-def
-/BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
-/NC { CC x1 y1 x2 y2 x y curveto } def
-/EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
-/BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
-/NAC { x2 y2 x y curveto CC x1 y1 } def
-/EAC { x2 y2 x y ArrowB curveto pop pop } def
-/OpenCurve {
- NArray n 3 lt
- { n { pop pop } repeat }
- { BOC /n n 3 sub def n { NC } repeat EOC } ifelse
-} def
-/AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload
-/Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop
-pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def
-/ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt {
-CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC }
-repeat closepath pop pop } ifelse } def
-/SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
-/ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
-/SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore }
-def
-/FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix
-rotate matrix concatmatrix exch findfont exch makefont setfont } def
-/Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto
-x1 y1 lineto closepath } def
-/OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1
-y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div
-exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse
-/b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto
-x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath }
-ifelse } def
-/Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add
-/y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq {
-pop pop Rect } { OvalFrame } ifelse } def
-/BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop
-} if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ]
-aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def
-/OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6
-2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto }
-ifelse } def
-/ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv {
-6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def
-/BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1
-sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore }
-def
-/Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1
-sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA
-x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0
-y0 x0 2 mul x1 sub y1 ] def } def
-/Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 }
-if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if
-/dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div
-round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div
-round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub
-0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def
-/Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def }
-if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def }
-{ /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
-exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n
-div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1
-dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt {
-dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt {
-pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup
-stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
-{z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i
-w add def } repeat grestore gsave n 0 gt
-% DG/SR modification begin - Nov. 7, 1997 - Patch 1
-%{ 1 setlinecap [ 0 dx n div ] dy n div 2 div setdash }
-{ 1 setlinecap [ 0 dx n div ] dx n div 2 div setdash }
-% DG/SR modification end
-{ 2 setlinecap } ifelse /i y1 def /f x1 dx mul
-n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n
-div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop
-1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs
-dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt
-{z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g
-exch t L stroke /i i h add def } repeat grestore } def
-/ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0
-1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add
-exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
-mul neg d } def
-/Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
-%
-/ArcAdjust {
-% given a target length (targetLength) and an initial angle (angle0) [in the stack],
-% let M(angle0)=(rx*cos(angle0),ry*sin(angle0))=(x0,y0).
-% This computes an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t)).
-% NOTE: this an absolute angle, it does not have to be added or substracted to angle0
-% contrary to TvZ's code.
-% To achieve, this, one iterates the following process: start with some angle t,
-% compute the point M' at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)].
-% Now take t' (= new angle) so that (0,0) M(t') and M' are aligned.
-%
-% Another difference with TvZ's code is that we need d (=add/sub) to be defined.
-% the value of d = add/sub is used to know on which side we have to move.
-% It is only used in the initialisation of the angle before the iteration.
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Input stack: 1: target length 2: initial angle
-% variables used : rx, ry, d (=add/sub)
-%
- /targetLength ED /angle0 ED
- /x0 rx angle0 cos mul def
- /y0 ry angle0 sin mul def
-% we are looking for an angle t such that (x0,y0) is at distance targetLength from the point M(t)=(rx*cos(t),ry*sin(t)))
-%initialisation of angle (using 1st order approx = TvZ's code)
- targetLength 57.2958 mul
- angle0 sin rx mul dup mul
- angle0 cos ry mul dup mul
- add sqrt div
-% if initialisation angle is two large (more than 90 degrees) set it to 90 degrees
-% (if the ellipse is very curved at the point where we draw the arrow, the value can be much more than 360 degrees !)
-% this should avoid going on the wrong side (more than 180 degrees) or go near
-% a bad attractive point (at 180 degrees)
- dup 90 ge { pop 90 } if
- angle0 exch d
-% maximum number of times to iterate the iterative procedure:
- 30
-% iterative procedure: takes an angle t on top of stack, computes a better angle (an put it on top of stack)
- { dup
-% compute distance D between (x0,y0) and M(t)
- dup cos rx mul x0 sub dup mul exch sin ry mul y0 sub dup mul add sqrt
-% if D almost equals targetLength, we stop
- dup targetLength sub abs 1e-5 le { pop exit } if
-% stack now contains D t
-% compute the point M(t') at distance targetLength of (x0,y0) on the semi-line [(x0,y0) M(t)]:
-% M(t')= ( (x(t)-x0)*targetLength/d+x0 , (y(t)-y0)*targetLength/d+y0 )
- exch dup cos rx mul x0 sub exch sin ry mul y0 sub
-% stack contains: y(t)-y0, x(t)-x0, d
- 2 index Div targetLength mul y0 add ry Div exch
- 2 index Div targetLength mul x0 add rx Div
-% stack contains x(t')/rx , y(t')/ry , d
-% now compute t', and remove D from stack
- atan exch pop
- } repeat
-% we don't look at what happened... in particular, if targetLength is greater than the diameter of the ellipse...
-% the final angle will be around /angle0 + 180. maybe we should treat this pathological case...
-%after iteration, stack contains an angle t such that M(t) is the tail of the arrow
-% to give back the result as a an angle relative to angle0 we could add the following line:
-% angle0 sub 0 exch d
-%
-} def
-%
-/EllipticArcArrow {
- /d ED % add/sub
- /b ED % arrow procedure
- /a1 ED % angle
- gsave
- newpath
- 0 -1000 moveto
- clip % Set clippath far from arrow.
- newpath
- 0 1 0 0 b % Draw arrow to determine length.
- grestore
-% Length of arrow is on top of stack. Next 3 numbers are junk.
-%
- a1 exch ArcAdjust % Angular position of base of arrow.
- /a2 ED
- pop pop pop
- a2 cos rx mul x add
- a2 sin ry mul y add
- a1 cos rx mul x add
- a1 sin ry mul y add
-% Now arrow tip coor and base coor are on stack.
- b pop pop pop pop % Draw arrow, and discard coordinates.
- a2 CLW 8 div
-% change value of d (test it by looking if `` 1 1 d '' gives 2 or not )
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse
- ArcAdjust
-% resets original value of d
- 1 1 d 2 eq { /d { sub } def } { /d { add } def } ifelse % Adjust angle to give overlap.
-} def
-%%------------------ tvz/DG/hv (2004-05-10) end -------------------%%
-%
-/Rot { CP CP translate 3 -1 roll neg rotate NET } def
-/RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 }
-def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle
-dup a add ] cvx def } def
-/RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ]
-cvx def } def
-/PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
-/PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
-/PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
-/Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s
-abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b
-div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } {
-h1 abs h sub dup s mul abs } ifelse } def
-/UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s
-mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q
-{ x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add
-exch } def
-/BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible
-/IfVisible true def } if } { IfVisible { Invisible /IfVisible false def
-} if } ifelse } def
-/InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
-/Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit
-neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def
-/IfVisible true def } def
-end
-% END pstricks.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-dots.pro 0 0
-%!PS-Adobe-2.0
-%%Title: Dot Font for PSTricks
-%%Creator: Timothy Van Zandt <tvz@Princeton.EDU>
-%%Creation Date: May 7, 1993
-%% Version 97 patch 1, 99/12/16
-%% Modified by Etienne Riga <etienne.riga@skynet.be> - Dec. 16, 1999
-%% to add /Diamond, /SolidDiamond and /BoldDiamond
-10 dict dup begin
- /FontType 3 def
- /FontMatrix [ .001 0 0 .001 0 0 ] def
- /FontBBox [ 0 0 0 0 ] def
- /Encoding 256 array def
- 0 1 255 { Encoding exch /.notdef put } for
- Encoding
- dup (b) 0 get /Bullet put
- dup (c) 0 get /Circle put
- dup (C) 0 get /BoldCircle put
- dup (u) 0 get /SolidTriangle put
- dup (t) 0 get /Triangle put
- dup (T) 0 get /BoldTriangle put
- dup (r) 0 get /SolidSquare put
- dup (s) 0 get /Square put
- dup (S) 0 get /BoldSquare put
- dup (q) 0 get /SolidPentagon put
- dup (p) 0 get /Pentagon put
- dup (P) 0 get /BoldPentagon put
-% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
- dup (l) 0 get /SolidDiamond put
- dup (d) 0 get /Diamond put
- (D) 0 get /BoldDiamond put
-% DG/SR modification end
- /Metrics 13 dict def
- Metrics begin
- /Bullet 1000 def
- /Circle 1000 def
- /BoldCircle 1000 def
- /SolidTriangle 1344 def
- /Triangle 1344 def
- /BoldTriangle 1344 def
- /SolidSquare 886 def
- /Square 886 def
- /BoldSquare 886 def
- /SolidPentagon 1093.2 def
- /Pentagon 1093.2 def
- /BoldPentagon 1093.2 def
-% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
- /SolidDiamond 1008 def
- /Diamond 1008 def
- /BoldDiamond 1008 def
-% DG/SR modification end
- /.notdef 0 def
- end
- /BBoxes 13 dict def
- BBoxes begin
- /Circle { -550 -550 550 550 } def
- /BoldCircle /Circle load def
- /Bullet /Circle load def
- /Triangle { -571.5 -330 571.5 660 } def
- /BoldTriangle /Triangle load def
- /SolidTriangle /Triangle load def
- /Square { -450 -450 450 450 } def
- /BoldSquare /Square load def
- /SolidSquare /Square load def
- /Pentagon { -546.6 -465 546.6 574.7 } def
- /BoldPentagon /Pentagon load def
- /SolidPentagon /Pentagon load def
-% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
- /Diamond { -428.5 -742.5 428.5 742.5 } def
- /BoldDiamond /Diamond load def
- /SolidDiamond /Diamond load def
-% DG/SR modification end
- /.notdef { 0 0 0 0 } def
- end
- /CharProcs 20 dict def
- CharProcs begin
- /Adjust {
- 2 copy dtransform floor .5 add exch floor .5 add exch idtransform
- 3 -1 roll div 3 1 roll exch div exch scale
- } def
- /CirclePath { 0 0 500 0 360 arc closepath } def
- /Bullet { 500 500 Adjust CirclePath fill } def
- /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath
- eofill } def
- /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath
- eofill } def
- /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def
- /TrianglePath { 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto
- closepath } def
- /SolidTriangle { TrianglePath fill } def
- /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def
- /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def
- /SquarePath { -450 450 moveto 450 450 lineto 450 -450 lineto
- -450 -450 lineto closepath } def
- /SolidSquare { SquarePath fill } def
- /Square { SquarePath .89 .89 scale SquarePath eofill } def
- /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def
- /PentagonPath {
- -337.8 -465 moveto
- 337.8 -465 lineto
- 546.6 177.6 lineto
- 0 574.7 lineto
- -546.6 177.6 lineto
- closepath
- } def
- /SolidPentagon { PentagonPath fill } def
- /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def
- /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def
-% DG/SR modification begin - Dec. 16, 1999 - From Etienne Riga
- /DiamondPath { 0 742.5 moveto -428.5 0 lineto 0 -742.5 lineto
- 428.5 0 lineto closepath } def
- /SolidDiamond { DiamondPath fill } def
- /Diamond { DiamondPath .85 .85 scale DiamondPath eofill } def
- /BoldDiamond { DiamondPath .7 .7 scale DiamondPath eofill } def
-% DG/SR modification end
- /.notdef { } def
- end
- /BuildGlyph {
- exch
- begin
- Metrics 1 index get exec 0
- BBoxes 3 index get exec
- setcachedevice
- CharProcs begin load exec end
- end
- } def
- /BuildChar {
- 1 index /Encoding get exch get
- 1 index /BuildGlyph get exec
- } bind def
-end
-/PSTricksDotFont exch definefont pop
-%END pst-dots.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-node.pro 0 0
-%!
-% PostScript prologue for pst-node.tex.
-% Version 97 patch 1, 97/05/09.
-% For distribution, see pstricks.tex.
-%
-/tx@NodeDict 400 dict def tx@NodeDict begin
-tx@Dict begin /T /translate load def end
-/NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def }
-if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end
-grestore } def
-/InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def
-} def
-/InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch
-Sin mul } def } def
-/GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def
-} ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def }
-ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx
-dup Sin mul Cos Div } ifelse } def
-/InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub
-/u ED /NodePos { GetRnodePos } def } def
-/DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup
-Cos mul exch Sin mul } def
-/TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h
-mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul
-} ifelse } def
-/InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d
-ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d
-sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan
-sin def /NodePos { TriNodePos } def } def
-/OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos
-hh mul Atan dup cos ww mul exch sin hh mul } def
-/GetCenter { begin X Y NodeMtrx transform CM itransform end } def
-/XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist
-Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg }
-{ 0 Dist Sin mul } ifelse } ifelse Do } def
-/GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform
-exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx
-dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop
-XYPos } ifelse } def
-/AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1
-roll sin mul sub exch } ifelse } def
-/GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA
-AddOffset yA add /yA1 ED xA add /xA1 ED } def
-/GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB
-AddOffset yB add /yB1 ED xB add /xB1 ED } def
-/GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA
-AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED
-ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED
-} ifelse } def
-/GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB
-AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED
-ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED
-} ifelse } def
-/InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED
-/NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b
-known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA
-ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def
-/LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub
-mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def
-/LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt
-{ pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop
-} repeat LPutLine cleartomark } def
-/BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED
-/t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3
-mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx
-sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul
-add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add
-y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul
-mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def
-/HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def
-} def
-/HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def
-/HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit
-} { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd
-} def
-/VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def
-} def
-/VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def
-/NAngle yyB yyA sub xxB xxA sub Atan def } def
-/VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def
-/VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def
-} ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check {
-exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark
-VPosEnd } def
-/HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2
-roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx
-def grestore exec /LPutVar /SaveLPutVar load def } def
-/NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def
-GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos {
-LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos {
-LPutVar VPutLine } def LPutVar } def
-/NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop
-end } def
-/NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub
-Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan
-/AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1
-yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos {
-LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
-ifelse } def
-/NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1
-roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA
-GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict
-begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ]
-cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
-} HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def
-/NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
-def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx
-itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2
-yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1
-yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def
-/HPutPos { HPutLines } def /VPutPos { VPutLines } def } def
-/NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2
-yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
-/y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1
-tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ]
-cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
-/NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def
-xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx
-transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def }
-{ /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB
-0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict
-begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx
-def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
-/NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if
-xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end
-/LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
-LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
-def
-/NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
-GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin
-false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
-LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
-def
-/NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
-def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2
-mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3
-mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2
-xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false
-Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ]
-cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
-VPutLines } def } def
-% DG/SR modification begin - May 9, 1997 - Patch 1
-%/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
-%r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
-%exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
-%mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
-/NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r
-r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
-exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
-mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
-% DG/SR modification end
-} def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add
-AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r
-Div def /y ED /x ED } def
-/NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB
-180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos
-mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def
-/LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy
-add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos
-{ xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar
-tx@Dict begin false Polygon end } def
-/NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan
-def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2
-mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def
-/x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div
-def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def
-GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul
-sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0
-eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn }
-{ x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def
-0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2
-roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0
-0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2
-roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat }
-ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos
-{ LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le {
-r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC }
-{ t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add
-add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub
-mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t
-sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse
-y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos {
-LPutPos } def } def
-/Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB
-sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1
-ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB
-w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
-{ LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop }
-{ pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
-def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
-/ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
-/LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg
-exch X sub neg exch moveto setmatrix CP grestore } def
-/LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0
-def } ifelse LPutCoor } def
-/HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg }
-if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop }
-ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED }
-def
-/VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if
-r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop }
-ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED }
-def
-end
-% END pst-node.pro
-
-%%EndProcSet
-%%BeginProcSet: pst-eucl.pro 0 0
-%!
-% PostScript prologue for pst-eucl.tex.
-% Version 2001, 2001/12/09
-% For distribution, see pstricks.tex.
-%
-/tx@EcldDict 400 dict def tx@EcldDict begin
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% Pi
-/Pi 3.14159265359 def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% e
-/E 2.718281828459045 def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x -> true (if |x| < 1E-10)
-/ZeroEq { abs 1E-10 lt } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x1 y1 x2 y2 -> a b c (ax+by+c=0)
-/EqDr {
- 4 copy 3 -1 roll sub 7 1 roll exch sub 5 1 roll 4 -1 roll
- mul 3 1 roll mul exch sub } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% orthogonal projection of M1 onto (OM2)
-%% x1 y1 x2 y2 -> x3 y3
-/Project {
- 2 copy dup mul exch dup mul add 5 1 roll 2 copy 5 -1 roll mul exch
- 5 -1 roll mul add 4 -1 roll div dup 4 -1 roll mul exch 3 -1 roll mul
-} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a b c (ax2+bx+c=0) -> x1 y1
-/SolvTrin {
- /c exch def /b exch def /a exch def
- b dup mul a c mul 4 mul sub dup 0 lt
- { pop 0 0 } %% no solutions
- {sqrt dup b neg add a 2 mul div exch b add neg 2 a mul div }
- ifelse } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x1 y1 x2 y2 -> Dist
-/ABDist { 3 -1 roll sub dup mul 3 1 roll sub dup mul add sqrt } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x1 y1 x2 y2 -> x1-x2 y1-y2
-/ABVect { 3 -1 roll exch sub 3 1 roll sub exch } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x1 y1 x2 y2 x3 y3 x4 y4 -> x y
-/InterLines {
- EqDr /D1c exch def /D1b exch def /D1a exch def
- EqDr /D2c exch def /D2b exch def /D2a exch def
- D1a D2b mul D1b D2a mul sub dup ZeroEq
- { pop pop pop 0 0 }
- {
- /Det exch def
- D1b D2c mul D1c D2b mul sub Det div
- D1a D2c mul D2a D1c mul sub Det div
- }
- ifelse } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% a b c R -> x1 y1 x2 y2
-/InterLineCircle {
- /CR exch def /Dc exch def /Db exch def /Da exch def
- Db Da dup ZeroEq { pop Dc dup ZeroEq { pop 1 } if } if div abs
- 0.0005 lt { InterLineCirclebnull } { InterLineCircleGal }
- ifelse
- %%dup 3 index lt { 4 2 roll } if
- } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% case where the line is parallel to (oy)
-/InterLineCirclebnull {
- Dc Da div neg dup dup mul CR dup mul exch sub dup
- 0 lt
- { pop pop 0 0 0 0 } { sqrt dup 3 1 roll exch dup 4 1 roll exch neg }
- ifelse } def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% general case
-/InterLineCircleGal {
- Da dup mul Db dup mul add -2 Dc mul Da mul Dc dup mul CR dup mul Db dup
- mul mul sub SolvTrin dup neg exch Da Db div mul Dc Db
- div exch sub 3 -1 roll
- dup neg exch Da Db div mul Dc Db div exch sub
-} bind def
-/Glbx 0 def /Glby 0 def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% R R' OO' -> x1 y1 x2 y2
-/InterCircles {
- /OOP exch def /CRP exch def /CR exch def
- OOP dup mul CRP dup mul sub CR dup mul add OOP div 2 div
- dup dup mul CR dup mul exch sub dup
- 0 lt { pop pop 0 0 0 0 } { sqrt 2 copy neg } ifelse
-} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x y theta -> x' y' (rotation of theta)
-/Rotate {
- dup sin /sintheta exch def cos /costheta exch def /y exch def /x exch def
- x costheta mul y sintheta mul sub
- y costheta mul x sintheta mul add
-} def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% N -> x y
-/GetNode {
- tx@NodeDict begin
- tx@NodeDict 1 index known { load GetCenter } { pop 0 0 } ifelse
- end
-} bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x -> ch(x)
-/ch { dup Ex exch neg Ex add 2 div } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x -> sh(x)
-/sh { dup Ex exch neg Ex sub 2 div } bind def
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% x -> e^(x)
-/Ex { E exch exp } bind def
-end
-% END ps-euclide.pro
-
-%%EndProcSet
-%%BeginProcSet: texps.pro 0 0
-%!
-TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2
-index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
-exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0
-ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{
-pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get
-div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type
-/nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end
-definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup
-sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll
-mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[
-exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if}
-forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def
-end
-
-%%EndProcSet
-%%BeginProcSet: special.pro 0 0
-%!
-TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
-/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
-/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
-/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
-/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
-X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
-/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
-/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
-{userdict/md get type/dicttype eq{userdict begin md length 10 add md
-maxlength ge{/md md dup length 20 add dict copy def}if end md begin
-/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
-atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
-itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
-transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
-curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
-pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
-if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
--1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
-get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
-yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
-neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
-noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
-90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
-neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
-1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
-2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
--1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
-TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
-Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
-}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
-save N userdict maxlength dict begin/magscale true def normalscale
-currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
-/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
-psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
-psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
-TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def
-@MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll
-newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto
-closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N
-/@beginspecial{SDict begin/SpecialSave save N gsave normalscale
-currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N}
-N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs
-neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate
-rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse
-scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg
-lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx
-ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N
-/setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{
-pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave
-restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B
-/rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1
-setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY
-moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix
-matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc
-savematrix setmatrix}N end
-
-%%EndProcSet
-%%BeginFont: CMR10
-%!PS-AdobeFont-1.1: CMR10 1.00B
-%%CreationDate: 1992 Feb 19 19:54:52
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.00B) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMR10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle 0 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMR10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 49 /one put
-readonly def
-/FontBBox{-251 -250 1009 969}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891
-016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171
-9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F
-D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758
-469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8
-2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4
-87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F
-D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0
-92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C
-295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75
-409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C
-4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF
-2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E
-0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E
-B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008
-24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B
-43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF
-D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575
-5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC
-96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3
-7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3C8578EF9A20A0E06E
-4F7ADDAF0E7D1E182D115BF1AD931977325AD391E72E2B13CC108E3726C11099
-E2000623188AAAC9F3E233EB253BDD8B0A4759A66A113E066238B0086AC1B634
-5ABFF90E4B5ED3FA69C22541981B2BFC9710AEF6B50A8BB53431C7B4D380D721
-639E005D6B4688EE16BFF48443E7C9E5FB5BC5883E271CB0342893C0BBC0A879
-B7220832FB50103F72F8B5D98CF223DB1D0EE09EE454D9496C392F12478835E1
-762DF62F2BCF601F3355828AB3963623C4B9BDBBC761B9DE9EDE67C74277FECB
-B3AAEE9240011A2BC34C4879B3673E7EEB374A3FB8ED01FB5FB85AFBC1F7299A
-8371255D51560E1946A50092C8E48F3BF180229FF21A1A79020E4BEB512EABF1
-02AA111461557961E3B891E4FC323C61D497CCCE9D2586EB93DE4D6FB682B960
-B36D5C4AB832F0F8D8CFBA86753A9A919B814D506A80B2A8399C9396D9C94C4B
-74FD9890373C583561A49FBED4F520EFC18DBA2E1BFE377A7B11B3684EFA80F5
-E9122A94423BC3A5B27D8A4FC17EE6DD29
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-%%BeginFont: CMMI10
-%!PS-AdobeFont-1.1: CMMI10 1.100
-%%CreationDate: 1996 Jul 23 07:53:57
-% Copyright (C) 1997 American Mathematical Society. All Rights Reserved.
-11 dict begin
-/FontInfo 7 dict dup begin
-/version (1.100) readonly def
-/Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def
-/FullName (CMMI10) readonly def
-/FamilyName (Computer Modern) readonly def
-/Weight (Medium) readonly def
-/ItalicAngle -14.04 def
-/isFixedPitch false def
-end readonly def
-/FontName /CMMI10 def
-/PaintType 0 def
-/FontType 1 def
-/FontMatrix [0.001 0 0 0.001 0 0] readonly def
-/Encoding 256 array
-0 1 255 {1 index exch /.notdef put} for
-dup 65 /A put
-dup 66 /B put
-dup 67 /C put
-dup 68 /D put
-readonly def
-/FontBBox{-32 -250 1048 750}readonly def
-currentdict end
-currentfile eexec
-D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE
-3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B
-532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470
-B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B
-986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE
-D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958
-9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321
-990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E
-6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB
-DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721
-59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823
-D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF
-8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808
-6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9
-1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE
-03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909
-95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1
-74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2
-3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8
-47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19
-AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8
-42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8
-40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837
-B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53
-9560176671A33FC55340CD04C2DE46FD812FC2711A85D778F691ED261C6E4CC8
-83D1C2D972559E1FF9342B428DD3C5C2FB88B68D19E3784E9E517C0F8FCCD25C
-CB0ADAD7857DDF51CAEE898B5DBC00B9A7FD8A4BEDB26AAACCDA563B112F3E26
-50C1F6B1900BD478E0CBBEFFF13CC3D9B16F254D9EB2733B2B49D439DE6A54A8
-68DB85E0A7F7F007E39A39F929F747B013920F848917433987A6B0F823923AC2
-B22D97AA5D4378DCECF5601F6CE78B5E6867D17DCD42AB76DD58883F03C5D8B0
-B6DC4CD14BE55FB8CE16F6A3583FCE7A6B5705406EDD911C656C73E0116FA869
-6DD716DF9EB842D2C1870BBEC58AE344B8034C6F7DB10B2C1C9B20B842085408
-B0F14CEB23E547AEAA968F0104C96B9D96C922A0EE3635C998B75C64C45A6402
-3BAD86772B7DDDBB4A0D09037815FF3B905500DE32EFB97F7DEBF660DAF37A33
-4DB103A1124DA59B0267EFFDC6C9973747F95038DB72CE0AF4FFCCECEB20C71F
-2E03B82AC8034BB4DEC02FF448024362736B322A57D0626036FC820288AD9D54
-17E1B493512EDD3BAD2283D06F36365E02DFACA42B38C9BC783BB60777B1E4FC
-DE4E5AAB49E0370CCAF61C1378FE6D544F83BE6B054FE95E8BFA83FF9729C5E8
-CA3164CBF45BD6C2B9B28FA366336E5A1E284DE3EA7E18DF14C30F5E4C993AA6
-510174F9FC7943AF5B14997493AA46A7E32E85B05F50AACB93577255EC2D7D98
-644E90F6871A48DFFE92F79056DE4C257A4E0B33B61026F083AA239E1C0E7376
-8C53AC6EECCB11A752AA8451D714983A0810A64626440EFF140C7560809B063B
-8EDE3AB67214110CFD47EBE42950518F56D5B36F69CEFC2C37043D6D9822DCE1
-029423A1C873D5E04A9267A294AB230C0834076C5F9DEA602FF900CDE323F633
-5B8BD1D7F76D8D2CF9586CD073B9E11C04777860A7963629FAED4134B79593E0
-A0F71A5FD98BEDA1B539D496ECED78EE53FD80C713103C569CE94B76768D2A58
-C440C4843D8CDBFBD342C9976118E8EC642A0C9CFF52B558049FB5964580E6B0
-D9D8C34DD4429D5F40BC39F348F4AC56D8DBCBFBDCDD5345D5D747EAB8CE7D62
-001753FBAAA1EBFDA7B44DD4F37C564FB9D17A26EE442DAA42A5C2261CBDD33F
-0AC8064908E25A6D1E554DD1BD99D8243FE4E866EDBF81A782ABF55CBCBF3632
-2167CC4831F8AF19DDBF65F836C4DCC19779F145C14A1E55BAEBA0801F407595
-711AC192605805925F59ABC27FF0644EF979269096A62A01F35ECC1EF977FE68
-7701549F
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-0000000000000000000000000000000000000000000000000000000000000000
-cleartomark
-%%EndFont
-TeXDict begin 39139632 55387786 1000 600 600 (triangle.dvi)
-@start /Fa 206[42 49[{}1 83.022 /CMR10 rf /Fb 187[69
-59 63 62 65[{}4 83.022 /CMMI10 rf end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 600dpi
-TeXDict begin
-%%PaperSize: A4
- end
-%%EndSetup
-%%Page: 1 1
-TeXDict begin 1 0 bop 994 794 a
- tx@Dict begin tx@NodeDict begin {-35.56592 -35.56592 } false /N@A
-10 {InitPnode } NewNode end end
- 994 794 a @beginspecial
-@setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add
-2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot
-{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict
-begin tx@NodeDict /N@A known { /N@A load GetCenter } { 0 0 } ifelse
-end Dot end
-
-@endspecial 994 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { 10.00002
-45. /N@A load 0 GetEdge 0.0 45. AddOffset /N@A load GetCenter 3 -1
-roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin
-end
- 994 794 a 994 794
-a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 994 794 a 963 823 a Fb(A)994 794 y
- tx@Dict begin RotEnd end
- 994 794 a 994 794
-a
- tx@Dict begin PutEnd end
- 994 794 a 994 794 a
- tx@Dict begin tx@NodeDict begin {-35.56592 35.56592 } false /N@B 10
-{InitPnode } NewNode end end
- 994 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add
-2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot
-{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict
-begin tx@NodeDict /N@B known { /N@B load GetCenter } { 0 0 } ifelse
-end Dot end
-
-
-@endspecial 994 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@B known { 10.00002
-45. /N@B load 0 GetEdge 0.0 45. AddOffset /N@B load GetCenter 3 -1
-roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin
-end
- 994 794 a 994 794 a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 994 794 a
-960 823 a Fb(B)994 794 y
- tx@Dict begin RotEnd end
- 994 794 a 994 794 a
- tx@Dict begin PutEnd end
- 994 794
-a 994 794 a
- tx@Dict begin tx@NodeDict begin {35.56592 35.56592 } false /N@C 10
-{InitPnode } NewNode end end
- 994 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add
-2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot
-{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict
-begin tx@NodeDict /N@C known { /N@C load GetCenter } { 0 0 } ifelse
-end Dot end
-
-@endspecial
-994 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@C known { 10.00002
-45. /N@C load 0 GetEdge 0.0 45. AddOffset /N@C load GetCenter 3 -1
-roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin
-end
- 994 794 a 994 794 a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 994 794 a 961 823 a Fb(C)994
-794 y
- tx@Dict begin RotEnd end
- 994 794 a 994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 994 794 a
- tx@Dict begin tx@NodeDict begin {35.56592 -35.56592 } false /N@D 10
-{InitPnode } NewNode end end
- 994 794
-a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /DS 2.0 2. CLW mul add
-2 div def /PSTricksDotFont 0. [1.0 0.0 0.0 1.0 0.0 0.0] FontDot /Dot
-{ moveto gsave 1. 1. scale (b) show grestore } bind def tx@NodeDict
-begin tx@NodeDict /N@D known { /N@D load GetCenter } { 0 0 } ifelse
-end Dot end
-
-@endspecial 994 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { 10.00002
-45. /N@D load 0 GetEdge 0.0 45. AddOffset /N@D load GetCenter 3 -1
-roll add 3 1 roll add exch } { CP } ifelse end } PutCoor PutBegin
-end
- 994
-794 a 994 794 a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 994 794 a 958 823 a Fb(D)994 794 y
- tx@Dict begin RotEnd end
- 994
-794 a 994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 994 794 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
-} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0
-0.0 0 0 /N@A /N@B InitNC { NCLine } if end gsave 0.8 SLW 0. setgray
-0 setlinecap stroke grestore grestore end
- 994 794 a 994 794
-a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
-} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0
-0.0 0 0 /N@B /N@C InitNC { NCLine } if end gsave 0.8 SLW 0. setgray
-0 setlinecap stroke grestore grestore end
- 994 794 a 994 794 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
-} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0
-0.0 0 0 /N@C /N@D InitNC { NCLine } if end gsave 0.8 SLW 0. setgray
-0 setlinecap stroke grestore grestore end
- 994 794 a 994 794 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
-} def /ArrowB { } def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0
-0.0 0 0 /N@D /N@A InitNC { NCLine } if end gsave 0.8 SLW 0. setgray
-0 setlinecap stroke grestore grestore end
- 994 794 a 994
-794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@B known { /N@B load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 994 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray [ tx@EcldDict begin
-/N@A GetNode exch Atan end .4 exch PtoC 28.45274 mul exch 28.45274
-mul exch tx@EcldDict begin /N@C GetNode exch Atan /N@A GetNode exch
-Atan end 2 copy sub abs 91 gt { 2 copy lt { exch 360 add exch } { 360
-add } ifelse } if add 2 div 2 sqrt .4 mul exch PtoC 28.45274 mul exch
-28.45274 mul exch tx@EcldDict begin /N@C GetNode exch Atan end .4 exch
-PtoC 28.45274 mul exch 28.45274 mul exch 0.0 0.0 /Lineto /lineto load
-def false Polygon gsave 0.8 SLW 0. setgray 0 setlinecap stroke grestore
-end
-
-@endspecial
-994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 994 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@C known { /N@C load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 994 794 a @beginspecial
-@setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray [ tx@EcldDict begin
-/N@B GetNode exch Atan end 1 exch PtoC 28.45274 mul exch 28.45274 mul
-exch tx@EcldDict begin /N@D GetNode exch Atan /N@B GetNode exch Atan
-end 2 copy sub abs 91 gt { 2 copy lt { exch 360 add exch } { 360 add
-} ifelse } if add 2 div 2 sqrt 1 mul exch PtoC 28.45274 mul exch 28.45274
-mul exch tx@EcldDict begin /N@D GetNode exch Atan end 1 exch PtoC 28.45274
-mul exch 28.45274 mul exch 0.0 0.0 /Lineto /lineto load def false
-Polygon gsave 0.8 SLW 0. setgray 0 setlinecap stroke grestore end
-
-@endspecial 994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 994 794
-a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { /N@D load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 994 794 a 980 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@D known { /N@D load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 980 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
-/ArrowB { } def 0.0 0.0 /y ED /x ED /r 11.38092 def /c 57.2957 r Div
-def /angleA tx@NodeDict begin tx@NodeDict /N@C known { /N@C load GetCenter
-} { 0 0 } ifelse end exch Atan 0.0 c mul 2 div add def /angleB tx@NodeDict
-begin tx@NodeDict /N@A known { /N@A load GetCenter } { 0 0 } ifelse
-end exch Atan 0.0 c mul 2 div sub def x y r angleA angleB arc gsave
-0.8 SLW 0. setgray 0 setlinecap stroke grestore end
-
-
-@endspecial 980 794 a
- tx@Dict begin { tx@EcldDict begin /N@A GetNode exch Atan /N@C GetNode
-exch Atan end 2 copy lt { exch 360 sub exch } if add 2 div 0 add .4
-.5 mul exch PtoC 28.45274 mul exch 28.45274 mul exch } PutCoor PutBegin
- end
- 980 794 a 980 794 a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 980 794 a
-980 794 a
- tx@Dict begin CP CP translate 0.4 0.4 scale NET end
- 980 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.0 0.0 2.27626 SD
-end
-
-@endspecial
-980 794 a
- tx@Dict begin CP CP translate 1 0.4 div 1 0.4 div scale NET end
- 980 794 a 980 794 a
- tx@Dict begin RotEnd end
- 980 794 a 980 794 a
- tx@Dict begin PutEnd end
- 980
-794 a 980 794 a
- tx@Dict begin PutEnd end
- 980 794 a 994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 994 794
-a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { /N@A load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 994 794 a 980 794 a
- tx@Dict begin { tx@NodeDict begin tx@NodeDict /N@A known { /N@A load
-GetCenter } { 0 0 } ifelse end } PutCoor PutBegin end
- 980 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
-/ArrowB { } def 0.0 0.0 /y ED /x ED /r 11.38092 def /c 57.2957 r Div
-def /angleA tx@NodeDict begin tx@NodeDict /N@D known { /N@D load GetCenter
-} { 0 0 } ifelse end exch Atan 0.0 c mul 2 div add def /angleB tx@NodeDict
-begin tx@NodeDict /N@B known { /N@B load GetCenter } { 0 0 } ifelse
-end exch Atan 0.0 c mul 2 div sub def x y r angleA angleB arc gsave
-0.8 SLW 0. setgray 0 setlinecap stroke grestore end
-
-
-@endspecial 980 794 a
- tx@Dict begin { tx@EcldDict begin /N@B GetNode exch Atan /N@D GetNode
-exch Atan end 2 copy lt { exch 360 sub exch } if add 2 div 0 add .4
-.5 mul exch PtoC 28.45274 mul exch 28.45274 mul exch } PutCoor PutBegin
- end
- 980 794 a 980 794 a
- tx@Dict begin mark RAngle /a ED cleartomark a neg RotBegin end
- 980 794 a
-980 794 a
- tx@Dict begin CP CP translate 0.4 0.4 scale NET end
- 980 794 a @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.0 0.0 2.27626 SD
-end
-
-@endspecial
-980 794 a
- tx@Dict begin CP CP translate 1 0.4 div 1 0.4 div scale NET end
- 980 794 a 980 794 a
- tx@Dict begin RotEnd end
- 980 794 a 980 794 a
- tx@Dict begin PutEnd end
- 980
-794 a 980 794 a
- tx@Dict begin PutEnd end
- 980 794 a 994 794 a
- tx@Dict begin PutEnd end
- 994 794 a 1926 5255
-a Fa(1)p eop end
-%%Trailer
-
-userdict /end-hook known{end-hook}if
-%%EOF