📄 vmatrep.eps
字号:
CTM currentmatrix pop /yStart exch def /xStart exch def /yEnd exch def /xEnd exch def /linewidth exch def MAV /ArrowType get length 0 eq xStart xEnd ne yStart yEnd ne and and {xStart yStart moveto xEnd yEnd lineto UseClip xStart yStart moveto xEnd yEnd lineto} {xStart yStart moveto xEnd yEnd lineto} ifelse linewidth setlinewidth SD strokepath CheckPath {LC PF ArrowType} if grestore}{pop pop pop pop pop} ifelse} bind def%% Line takes the following arguments:%% linewidth xEnd yEnd xStart yStart%%BeginProcSet : ZeroLine/ZeroLine { gsave newpath MAV /ArrowType get length 0 ne { /UseClip {} def 0 792 translate 1 -1 scale pop pop pop pop pop CTM currentmatrix pop ArrowType } if grestore} bind def/CompensateForStroke { sin currentlinewidth mul exch cos currentlinewidth mul dup 0 translate 4 -1 roll exch 2.0 mul sub 3 1 roll 2.0 mul sub} bind def/arrowdict 10 dict defarrowdict begin /SwallowTail { newpath 0.0 0.0 moveto 1.0 -.5 lineto .666 0.0 lineto 1.0 .5 lineto closepath } bind def /Triangular { newpath 0.0 0.0 moveto 1.0 -.5 lineto 1.0 .5 lineto closepath } bind def /OpenTri { newpath 1.0 0.5 moveto 0.0 0.0 lineto 1.0 -0.5 lineto } bind def /ClosedTri { newpath 1.0 0.5 moveto 0.0 0.0 lineto 1.0 -0.5 lineto closepath } bind def /SlashBar { newpath 0.5 -.5 moveto -.5 0.5 lineto } bind def /Dot { newpath 0.5 0.0 moveto 0 0 1 0 360 arc closepath } bind def /ExtSlashBar { newpath 1.0 -.5 moveto 0.0 0.5 lineto } bind defend/ScaleArrowHead { 0 0 4 -2 roll 0 0 1 1 8 -4 roll GetBoxesRatio scale} bind def/DrawArrowHead { gsave [] 0 setdash currentpoint translate rotate { 4 copy gsave initmatrix 100 200 translate msave ScaleArrowHead pop arrowdict exch get exec mrestore strokepath 0 0 3 index 3 index pathbbox 8 4 roll GetBoxesRatio 4 2 roll grestore 3 index 1.0 exch sub 6 -1 roll { 2 index mul 0 translate }{ pop } ifelse msave ScaleArrowHead scale arrowdict exch get exec mrestore strokepath } { msave ScaleArrowHead arrowdict exch get exec mrestore } ifelse CheckPath { LC PF } if grestore} bind def%%EndProcSet %%BeginProcSet : SR /SR { pbox left get pbox top get moveto pbox right get pbox top get lineto pbox right get pbox bottom get lineto pbox left get pbox bottom get lineto closepath} bind def %%EndProcSet %%BeginProcSet : RR1 /RR1 {pbox top get pbox bottom get sub abspbox left get pbox right get sub abs2 copy lt {Min2 div dup dup duppbox left get add pbox left 3 -1 roll putpbox right get exch sub pbox right 3 -1 roll putpbox left get pbox bottom get movetopbox right get 0 3 -1 roll 90 -90 arcnpbox left get 0 3 -1 roll -90 90 arcn closepath} {Min2 div dup dup duppbox bottom get exch sub pbox bottom 3 -1 roll putpbox top get add pbox top 3 -1 roll putpbox left get pbox bottom get movetopbox left get add pbox top get2 index180 0 arcdup pbox left get add pbox bottom get3 -1 roll 0 180 arcclosepath} ifelse} bind def%%EndProcSet %%BeginProcSet : RR2 /RR2 { dup dup dup dup dup dup dup dup pbox top get add pbox top 3 -1 roll put pbox left get add pbox left 3 -1 roll put pbox bottom get exch sub pbox bottom 3 -1 roll put pbox right get exch sub pbox right 3 -1 roll put pbox bottom get add pbox left get exch moveto pbox right get pbox bottom get 3 -1 roll 90 0 arcn pbox right get pbox top get 3 -1 roll 0 270 arcn pbox left get pbox top get 3 -1 roll 270 180 arcn pbox left get pbox bottom get 3 -1 roll 180 90 arcn closepath} bind def %%EndProcSet%%BeginProcSet : E/E {1.415 setmiterlimitCM currentmatrix poppbox right get pbox left get sub abs duppbox bottom get pbox top get sub abs dup 3 -1 rolllt {exch dup 3 -1 roll exch div 1 exch}{dup 3 -1 roll exch div 1} ifelse scale 0 0 3 -1 roll 2 div 0 360 arc closepathCM setmatrix} bind def%%EndProcSet%%BeginProcSet : A1/A1 {msavepbox right get pbox left get sub abs duppbox bottom get pbox top get sub abs dup 3 -1 rolllt {exch dup 3 -1 roll exch div 1 exch}{dup 3 -1 roll exch div 1} ifelse scale 0 0 3 -1 roll 2 div 5 -1 roll -90 add 5 -1 roll -90 add arcnmrestore} bind def%%EndProcSet%%BeginProcSet : A2/A2 {msave 0 0 moveto A1 closepath mrestore} def%%EndProcSet%%BeginProcSet : BitMap/BitMap { /buffer ^1 string def ^2 ^5 2 div add 792 ^3 sub ^6 2 div add translate ^4 57.3 mul rotate 0 ^5 2 div sub 0 ^6 2 div sub translate ^5 ^6 scale ^5 ^6 ^7 [^5 0 0 -^6 0 ^6] {currentfile buffer readhexstring pop} image}bind def %%EndProcSet %%BeginProcSet : note /note {gsave pbox astore pop0 792 translate 1 -1 scale CTM currentmatrix pop exch translatepbox right get pbox left get sub 2 divpbox bottom get pbox top get sub 2 divtranslate 57.3 mul rotate setlinewidthnoteBody aload pop movetonoteBody length 2 div 1 sub cvi{lineto}repeatdogEar aload pop movetodogEar length 2 div 1 sub cvi{lineto}repeat0.992 0.975 0.507 setrgbcolor gsave fill grestoregsave newpathstickem aload pop movetostickem length 2 div 1 sub cvi{lineto}repeat0.760 0.760 0.760 setrgbcolor fill grestore0 0 0 setrgbcolor strokenoteShadow aload pop movetonoteShadow length 2 div 1 sub cvi{lineto}repeatdogEarShadow aload pop movetodogEarShadow length 2 div 1 sub cvi{lineto}repeat0 0 0 setrgbcolor gsave stroke grestore fillgrestore}bind def%%EndProcSet %%BeginProcSet : RGB4toGray4 /redTbl4 [0 0 1 1 1 1 2 2 3 3 3 4 4 4 5 5] def /greenTbl4 [0 1 1 2 2 3 3 4 4 5 6 6 7 7 7 8] def /blueTbl4 [0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2] def /RGB4toGray4 { currentfile RGBBuf readhexstring pop pop /i 0 def /j 0 def grayBuf length { RGBBuf i get dup -4 bitshift redTbl4 exch get exch 15 and greenTbl4 exch get add RGBBuf i 1 add get dup -4 bitshift blueTbl4 exch get 3 -1 roll add 4 bitshift exch 15 and redTbl4 exch get RGBBuf i 2 add get dup -4 bitshift greenTbl4 exch get 3 -1 roll add exch 15 and blueTbl4 exch get add or grayBuf j 3 -1 roll put /i i 3 add def /j j 1 add def } repeat grayBuf} bind def%%EndProcSet%%BeginProcSet : RGB8toGray8/RGB8toGray8 { currentfile RGBBuf readhexstring pop pop /i 0 def /j 0 def grayBuf length { RGBBuf i get 0.33 mul RGBBuf i 1 add get 0.55 mul add RGBBuf i 2 add get 0.12 mul add round cvi grayBuf j 3 -1 roll put /i i 3 add def /j j 1 add def } repeat grayBuf} bind def%%EndProcSet%%BeginProcSet : RGB24toGray8/RGB24toGray8 {RGB8toGray8} bind def%%EndProcSet%%BeginProcSet : RGB2toGray2 /redTbl2 [0 0 1 1] def /greenTbl2 [0 1 1 2] def /blueTbl2 [0 0 0 0] def /RGB2toGray2 { currentfile RGBBuf readhexstring pop pop /i 0 def /j 0 def grayBuf length { RGBBuf i get dup dup dup -6 bitshift redTbl2 exch get exch -4 bitshift 3 and greenTbl2 exch get add exch -2 bitshift 3 and blueTbl2 exch get add 6 bitshift exch 3 and redTbl2 exch get RGBBuf i 1 add get dup dup dup -6 bitshift greenTbl2 exch get exch -4 bitshift 3 and blueTbl2 exch get add 4 -1 roll add 4 bitshift 4 -1 roll or 3 1 roll -2 bitshift 3 and redTbl2 exch get exch 3 and greenTbl2 exch get add RGBBuf i 2 add get dup dup dup -6 bitshift blueTbl2 exch get 5 -1 roll add 2 bitshift 5 -1 roll or 4 1 roll -4 bitshift 3 and redTbl2 exch get exch -2 bitshift 3 and greenTbl2 exch get add exch 3 and greenTbl2 exch get add or grayBuf j 3 -1 roll put /i i 3 add def /j j 1 add def } repeat grayBuf} bind def%%EndProcSet%%EndProcSet%%BeginProcSet : RGB1toGray1/RGB1toGray1 { currentfile RGBBuf readhexstring pop pop /i 0 def /j 0 def grayBuf length { RGBBuf i get dup dup 1 bitshift 128 and exch 3 bitshift 64 and or exch 5 bitshift 32 and or RGBBuf i 1 add get dup -1 bitshift 16 and exch 1 bitshift 8 and or or RGBBuf i 2 add get dup dup -5 bitshift 4 and exch -3 bitshift 2 and or exch -1 bitshift 1 and or or /i i 3 add def /j j 1 add def } repeat grayBuf} bind def%%EndProcSet%%BeginProcSet : RGB16toGray8/RGB16toGray8 {RGB8toGray8} bind def%%EndProcSet%%BeginProcSet : BW /ScalePoint { 0 0 4 -2 roll 0 0 1 1 8 4 roll GetBoxesRatio scale} bind def/PointDict 4 dict defPointDict begin/XPoint { -.5 .5 moveto .5 -.5 lineto .5 .5 moveto -.5 -.5 lineto } bind def /DiamondPoint { 0.0 .5 moveto .5 0.0 lineto 0.0 -0.5 lineto -.5 0.0 lineto closepath } bind def /PlusPoint { 0.0 .5 moveto 0.0 -.5 lineto -.5 0.0 moveto .5 0.0 lineto } bind def /SquarePoint { -.5 .5 moveto .5 .5 lineto .5 -.5 lineto -.5 -.5 lineto closepath } bind defend/DrawPoint { gsave [] 0 setdash 0 setlinecap translate msave ScalePoint PointDict exch get exec mrestore 1.0 setlinewidth stroke grestore} bind def%%EndProcSet %%BeginProcSet : Wall object Procs%%EndProcSet%%BeginProcSet : Subscriber /Subscriber { msave R PC PF LC SS newpath mrestore } bind def %%EndProcSet /StripFromFront { dup length2 index sub3 1 rollexch 3 -1 rollgetinterval} bind def/MakePathArray { /k 0 def {/k k 1 add def pop pop}{/k k 1 add def pop pop}{/k k 1 add def pop pop pop pop pop pop}{/k k 1 add def }pathforall k array /k 0 def {{moveto} 3 array astore 1 index k 3 -1 roll put /k k 1 add def} {{lineto} 3 array astore 1 index k 3 -1 roll put /k k 1 add def} {{curveto} 7 array astore 1 index k 3 -1 roll put /k k 1 add def} {{closepath} 1 array astore 1 index k 3 -1 roll put /k k 1 add def} pathforall }bind def /MakeFlatPathArray { /k 0 def {/k k 1 add def pop pop}{/k k 1 add def pop pop}{pop pop pop pop pop pop}{}pathforall k array/k 0 def {{moveto} 3 array astore 1 index k 3 -1 roll put /k k 1 add def} {{lineto} 3 array astore 1 index k 3 -1 roll put /k k 1 add def} { pop pop pop pop pop pop} {} pathforall }bind def /FractionalLine {2 index sub.00001 mulexch3 index sub.00001 mul4 -1 roll add3 1 rolladd} bind def/calcLineLength { exch 4 -1 roll sub dup mul 3 1 roll exch sub dup mul add sqrt} bind def/InitTotalLineLength { /oldY exch def /oldX exch def theDash aload pop currentLineLength add setdash} bind def/AccumeLineLength { 3 copy pop 2 copy oldX oldY 4 2 roll calcLineLength /segmentLength exch def /currentLineLength currentLineLength segmentLength add def /oldY exch def /oldX exch def} bind def/DecumeLastLineLength { /currentLineLength currentLineLength segmentLength sub def} bind def/DrawFlattendSegment { /pointCount 2 def dup 0 lt { pop 0 } if fpc 3 1 roll 2 index 1 index gt { 2 copy get dup length dup 3 eq { pop dup 0 get exch 1 get 2 copy InitTotalLineLength m } { } ifelse } { pop 1 index } ifelse dup 1 add 3 index exch sub dup 10 gt { pop 10} if { 1 add 2 copy get aload pop AccumeLineLength exec } repeat 3 1 roll pop pop DecumeLastLineLength} bind def/IncFPC { fpc add /fpc exch def} bind def/DrawFlatPathArray { fpc 0 { dup 2 index 1 sub lt { flatPathArray exch newpath 1 sub DrawFlattendSegment gsave pathSegProc grestore newpath } { pop pop exit } ifelse } loop} bind def/RecordFirstSubSegment { closepathArray 0 pathArray 0 get put closepathArray 1 pathArray 0 get aload pop pop pathArray 1 get dup length 3 eq { aload pop pop } { newpath 0 0 moveto aload pop exec /segmentArray flattenpath MakeFlatPathArray def segmentArray 1 get aload pop pop } ifelse FractionalLine {lineto} 3 array astore put} bind def/AppendClosePath { closepathArray 0 get 2 {lineto} put flatPathArray fpc closepathArray 0 get put 1 IncFPC flatPathArray fpc closepathArray 1 get put 1 IncFPC} bind def/RecordCurrentDash { /theDash currentdash 2 array astore def /currentLineLength 0 def} bind def/PatternStroke { 0 setlinecap RecordCurrentDash /saveFlat currentflat def .5 setflat /pathArray MakePathArray def /closepathArray 2 array def /pathLength pathArray length def /flatPathArray 513 array def /currentLineLength 0 def /fpc 0 def pathArray pathLength 1 sub get length 1 eq { /usingClosepath true def RecordFirstSubSegment /pathLength pathLength 1 sub def } { /usingClosepath false def } ifelse 0 1 pathLength 1 sub { pathArray exch get dup length 3 eq { fpc 1 add 512 ge { DrawFlatPathArray fpc 2 ge { flatPathArray flatPathArray fpc 2 sub get 0 put flatPathArray flatPathArray fpc 1 sub get 1 put /fpc 2 def }{ /fpc 0 def } ifelse } if flatPathArray exch fpc exch put 1 IncFPC } { dup length 7 eq {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -