summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pstricks-add
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-09-03 01:23:21 +0000
committerKarl Berry <karl@freefriends.org>2016-09-03 01:23:21 +0000
commitc9824e70cb00718a2bfbd07aeb01669daf6d8951 (patch)
treebd12ae849073d9e35c04864d67bb5d92235a2276 /Master/texmf-dist/tex/generic/pstricks-add
parenta997135cd36e6c729b2e5510e2a44db6000575d0 (diff)
pstricks-add (2sep16)
git-svn-id: svn://tug.org/texlive/trunk@41977 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/pstricks-add')
-rw-r--r--Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex591
1 files changed, 4 insertions, 587 deletions
diff --git a/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex b/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex
index 74b10ece20b..0bf1ac9fb8f 100644
--- a/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex
+++ b/Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex
@@ -1,4 +1,4 @@
-%% $Id: pstricks-add.tex 317 2016-08-08 16:49:34Z herbert $
+%% $Id: pstricks-add.tex 327 2016-09-01 18:59:35Z herbert $
%%
%% This is file `pstricks-add.tex',
%%
@@ -25,13 +25,14 @@
\ifx\PSTricksLoaded\endinput\else \input pstricks \fi
\ifx\PSTplotLoaded\endinput\else \input pst-plot \fi
\ifx\PSTnodesLoaded\endinput\else \input pst-node \fi
+\ifx\PSTarrowLoaded\endinput\else \input pst-arrow \fi
\ifx\PSTthreeDLoaded\endinput\else\input pst-3d \fi
\ifx\MultidoLoaded\endinput\else \input multido \fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
\ifx\PSTmathLoaded\endinput\else \input pst-math \fi
%
-\def\fileversion{3.81}
-\def\filedate{2016/08/08}
+\def\fileversion{3.82}
+\def\filedate{2016/09/01}
\message{`pstricks-add' v\fileversion, \filedate\space (dr,hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -339,586 +340,6 @@ a add
/x1 ED
1 index 0 eq {pop pop ParallelogramA } { OvalFrame } ifelse}>
%
-%
-% -------------- the arrow part -------------
-%
-\def\psBigArrow{\pst@object{psBigArrow}}
-\def\psBigArrow@i(#1)(#2){%
- \addbefore@par{doublesep=1cm}
- \begin@ClosedObj
- \pssetlength\pst@dimm{\psdoublesep}
- \pst@getcoor{#1}\pst@tempA
- \pst@getcoor{#2}\pst@tempB
- \addto@pscode{
- /Width \pst@number\pst@dimm def
- \pst@tempA % x y
- \pst@tempB % x y
- exch % x y y x
- 4 -1 roll % y y x x
- sub % y y dx
- 3 1 roll % dx y y
- sub % dx dy
- exch % dy dx
- atan neg % alpha
- \pst@tempA
- translate
- rotate
- 0 0 moveto
- 0 Width 2 div rlineto % |
- \pst@tempB \pst@tempA Pyth2 Width 1.5 mul sub 0 rlineto
- 0 Width 1.5 div rlineto
- Width 1.5 mul dup neg rlineto
- Width 1.5 mul neg dup rlineto
- 0 Width 1.5 div rlineto
- \pst@tempB \pst@tempA Pyth2 neg Width 1.5 mul add 0 rlineto
- closepath
- }%
- \end@ClosedObj
-}
-% the original table
-% \def\pst@arrowtable{,<->,<<->>,>-<,>>-<<,(-),[-],)-(,]-[,|>-<|}
-%
-% v : Vee arrow (inside) v,V,f and F by Christophe FOUREY
-% V : Vee arrow (outside)
-% f : Filled vee arrow (inside)
-% F : Filled vee arrow (outside)
-\edef\pst@arrowtable{\pst@arrowtable,v-v,V-V,f-f,F-F,t-t,T-T}
-
-% Vee arrow
-\define@key[psset]{pstricks-add}{veearrowlength}[3mm]{\pst@getlength{#1}\psk@veearrowlength}
-\psset[pstricks-add]{veearrowlength=3mm} % default projected length
-\define@key[psset]{pstricks-add}{veearrowangle}[30]{\pst@getangle{#1}\psk@veearrowangle}
-\psset[pstricks-add]{veearrowangle=30} % default angle
-\define@key[psset]{pstricks-add}{veearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@veearrowlinewidth}
-\psset[pstricks-add]{veearrowlinewidth=0.35mm} % default vee arrow line width
-
-% Filled vee arrow
-\define@key[psset]{pstricks-add}{filledveearrowlength}[3mm]{\pst@getlength{#1}\psk@filledveearrowlength}
-\psset[pstricks-add]{filledveearrowlength=3mm} % default projected length
-\define@key[psset]{pstricks-add}{filledveearrowangle}[15]{\pst@getangle{#1}\psk@filledveearrowangle}
-\psset[pstricks-add]{filledveearrowangle=15} % default angle
-\define@key[psset]{pstricks-add}{filledveearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth}
-\psset[pstricks-add]{filledveearrowlinewidth=0.35mm} % default vee arrow line width
-\define@key[psset]{pstricks-add}{arrowlinestyle}[solid]{%
- \@ifundefined{psls@#1}%
- {\@pstrickserr{Line style `#1' not defined}\@eha}%
- {\def\psarrowlinestyle{#1}}}
-\psset[pstricks-add]{arrowlinestyle=solid} % default
-\pst@def{VeeArrow}<%
- 1 setlinecap % round caps
- 1 setlinejoin % round join
- setlinewidth % vee arrow line width
- /y ED % projected length
- 2 div /a ED % angle (divide by 2)
- /t ED % false = inside, true = outside
- a sin a cos div y mul /x ED % perpendicular length : x=tan(a).y
- t { 1 -1 scale } if % if outside : symmetry
- x neg y moveto % point #1
- 0 0 L % point #2
- x y L % point #3
- { closepath gsave fill grestore } if % if filled : close and fill
- \@nameuse{psls@\psarrowlinestyle}
- stroke % draw line
- 0 t { y 2 mul } { 0 } ifelse moveto> % if outside : twice longer line
-
-% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width
-
-\@namedef{psas@v}{%
- false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
-\@namedef{psas@V}{%
- false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow}
-\@namedef{psas@f}{%
- true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
-\@namedef{psas@F}{%
- true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow}
-
-% And An another arrowhead
-% architectural tick / oblique arrow
-
-% Tick arrow
-\define@key[psset]{pstricks-add}{tickarrowlength}[1.5mm]{\pst@getlength{#1}\psk@tickarrowlength}
-\psset[pstricks-add]{tickarrowlength=1.5mm} % default projected length
-\define@key[psset]{pstricks-add}{tickarrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@tickarrowlinewidth}
-\psset[pstricks-add]{tickarrowlinewidth=0.35mm} % default tick arrow line width
-
-\pst@def{TickArrow}<%
- 1 setlinecap % round caps
- 1 setlinejoin % round join
- setlinewidth % tick line width
- /y ED % projected length
- /t ED % false = normal, true = reversed
- t { 1 -1 scale } if % if reversed : symmetry
- y neg y moveto % point #1
- y y neg L % point #2
- \@nameuse{psls@\psarrowlinestyle}
- stroke % draw line
- 0 0 moveto> % origin
-
-\@namedef{psas@t}{ false \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow }
-\@namedef{psas@T}{ true \psk@tickarrowlength \psk@tickarrowlinewidth \tx@TickArrow }
-%
-% HookLeft/RightArrow
-\newdimen\pshooklength
-\newdimen\pshookwidth
-\define@key[psset]{pstricks-add}{hooklength}[3mm]{\pssetlength\pshooklength{#1}}
-\define@key[psset]{pstricks-add}{hookwidth}[1mm]{\pssetlength\pshookwidth{#1}}
-%\psset{hooklength=3mm,hookwidth=1mm}
-%
-\edef\pst@arrowtable{\pst@arrowtable,H-H,h-h} % add new arrow
-\def\tx@RHook{RHook } % PostScript name
-\def\tx@Rhook{Rhook } % PostScript name
-\@namedef{psas@H}{%
- /RHook {
- /x ED % hook width
- /y ED % hook length
- /z CLW 2 div def % save it
- x y moveto % goto first point
- x 0 0 0 0 y
- curveto % draw Bezier
- stroke
- 0 y moveto % define current point
- } def
- \pst@number\pshooklength
- \pst@number\pshookwidth
- \tx@RHook
-}
-\@namedef{psas@h}{%
- /Rhook {
- CLW mul % size * CLW
- add dup % +length size*CLW+length size*CLW+length
- 2 div /w ED % (size*CLW+length)/2 -> w
- mul dup /h ED mul % (size*CLW+length)
- /a ED
- w neg h abs moveto 0 0 L
- gsave
- stroke grestore
- } def
- 0 \psk@arrowlength \psk@arrowsize \tx@Rhook
-}
-% New parameter "arrowfill", with default as "true"
-\define@boolkey[psset]{pstricks-add}[ps]{ArrowFill}[true]{}
-%
-% Modification of the PostScript macro Arrow to choose to fill or not the arrow
-% (it require to restore the current linewidth, despite of the scaling)
-\pst@def{Arrow}<{%
- CLW mul add dup 2 div
- /w ED mul dup
- /h ED mul
- /a ED { 0 h T 1 -1 scale } if
- gsave
- \ifpsArrowFill\else\pst@number\pslinewidth \pst@arrowscale\space div SLW \fi
- w neg h moveto
- 0 0 L w h L w neg a neg rlineto
- \ifpsArrowFill gsave
- \tx@setStrokeTransparency
- fill
- grestore \else gsave closepath stroke grestore \fi
- grestore
- 0 h a sub moveto
-}>
-%
-\define@key[psset]{pstricks-add}{nArrowsA}[2]{\def\psk@nArrowsA{#1}}
-\define@key[psset]{pstricks-add}{nArrowsB}[2]{\def\psk@nArrowsB{#1}}
-\define@key[psset]{pstricks-add}{nArrows}[2]{\def\psk@nArrowsA{#1}\def\psk@nArrowsB{#1}}
-\psset{nArrows=2}
-%
-\@namedef{psas@>>}{%
- \psk@nArrowsA\space 1 sub {
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h a sub T
- } repeat
- gsave
- newpath
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- CP
- grestore
- moveto
-}
-%
-\@namedef{psas@<<}{%
- true \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h neg a add T
- \psk@nArrowsB\space 2 sub {
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h neg a add T
- } repeat
- false \psk@arrowinset \psk@arrowlength \psk@arrowsize \tx@Arrow
- 0 h a 5 mul 2 div sub moveto
-}
-%
-% DG addition begin - Dec. 18/19, 1997 and Oct. 11, 2002
-% Adapted from \psset@arrows
-\define@key[psset]{pstricks-add}{ArrowInside}{%
- \def\pst@tempArrow{#1}%
- \ifx\pst@tempArrow\@empty \def\psk@ArrowInside{} %
- \else%
- \begingroup%
- \pst@activearrows%
- \xdef\pst@tempg{<#1}%
- \endgroup%
- \expandafter\psset@@ArrowInside\pst@tempg\@empty-\@empty\@nil%
- \if@pst\else\@pstrickserr{Bad intermediate arrow specification: #1}\@ehpa\fi%
- \fi%
-}
-% Adapted from \psset@@arrows
-\def\psset@@ArrowInside#1-#2\@empty#3\@nil{%
- \@psttrue
- \def\next##1,#1-##2,##3\@nil{\def\pst@tempg{##2}}%
- \expandafter\next\pst@arrowtable,#1-#1,\@nil
- \@ifundefined{psas@#2}%
- {\@pstfalse\def\psk@ArrowInside{}}%
- {\def\psk@ArrowInside{#2}}%
-}
-% Default value empty
-\psset{ArrowInside={}}
-% Modified version of \pst@addarrowdef
-\def\pst@addarrowdef{%
- \addto@pscode{%
- /ArrowA {
- \ifx\psk@arrowA\@empty
- \pst@oplineto
- \else
- \pst@arrowdef{A}
- moveto
- \fi
- } def
- /ArrowB { \ifx\psk@arrowB\@empty \else \pst@arrowdef{B} \fi } def
-% DG addition
- /ArrowInside {
- \ifx\psk@ArrowInside\@empty \else \pst@arrowdefA{Inside} \fi
- } def
- }%
-}
-% Adapted from \pst@arrowdef
-\def\pst@arrowdefA#1{%
- \ifnum\pst@repeatarrowsflag>\z@ /Arrow#1c [ 6 2 roll ] cvx def Arrow#1c\fi
- \tx@BeginArrow
- \psk@arrowscale
- \@nameuse{psas@\@nameuse{psk@Arrow#1}}
- \tx@EndArrow%
-}
-% ArrowInsidePos parameter (default value 0.5)
-\define@key[psset]{pstricks-add}{ArrowInsidePos}[0.5]{\pst@checknum{#1}\psk@ArrowInsidePos}%
-%\psset{ArrowInsidePos=0.5}
-%
-%
-% Redefinition of the PostScript /Line macro to print the intermediate
-% arrow on each segment of the line
-%
-\define@key[psset]{pstricks-add}{ArrowInsideNo}[1]{\pst@checknum{#1}\psk@ArrowInsideNo}% hv 20031001
-\define@key[psset]{pstricks-add}{ArrowInsideOffset}[0]{\pst@checknum{#1}\psk@ArrowInsideOffset}% hv 20031001
-%\psset{ArrowInsideNo=1,ArrowInsideOffset=0}
-%
-\def\arrowType@H{H}
-\pst@def{Line}<
- NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if
- (\psk@ArrowInside) length 0 gt {
- \ifx\psk@arrowA\arrowType@H % do we have a Hook arrow at the beginning?
- \pst@number\pshooklength % yes
- \else
- \psk@arrowsize\space CLW mul add dup \psk@arrowlength\space mul exch \psk@arrowinset mul neg add
- \fi
- /arrowlength exch def
- 4 copy % copy all four values for the arrow line
- /y1 ED /x1 ED /y2 ED /x2 ED % save them
- /Alpha y2 y1 sub x2 x1 sub Atan def % the gradient of the line
-% 2 copy /y1 ED /x1 ED ArrowA x1 y1
- ArrowA % draw arrowA
- x1 Alpha cos arrowlength mul add % dx add
- y1 Alpha sin arrowlength mul add % dy add, to get the current point at the end of the arrow tip
- /n n 1 sub def
- n {
- 4 copy
- /y1 ED /x1 ED /y2 ED /x2 ED
- x1 y1
- \psk@ArrowInsidePos\space 1 gt {
- /Alpha y2 y1 sub x2 x1 sub Atan def
- /ArrowPos \psk@ArrowInsideOffset\space def
- /dArrowPos \psk@ArrowInsidePos\space abs def
-% /Length x2 x1 sub y2 y1 sub Pyth def
- \psk@ArrowInsideNo\space cvi {
- /ArrowPos ArrowPos dArrowPos add def
-% ArrowPos Length gt { exit } if
- x1 Alpha cos ArrowPos mul add
- y1 Alpha sin ArrowPos mul add
- ArrowInside
- pop pop
- } repeat
- }{
- /ArrowPos \psk@ArrowInsideOffset\space def
- /dArrowPos \psk@ArrowInsideNo 1 gt {%
- 1.0 \psk@ArrowInsideNo 1.0 add div
- }{\psk@ArrowInsidePos } ifelse def
- \psk@ArrowInsideNo\space cvi {
- /ArrowPos ArrowPos dArrowPos add def
- x2 x1 sub ArrowPos mul x1 add
- y2 y1 sub ArrowPos mul y1 add
- ArrowInside
- pop pop
- } repeat
- } ifelse
- pop pop Lineto
- } repeat
- }{ ArrowA /n n 2 sub def n { Lineto } repeat } ifelse
- CP 4 2 roll ArrowB L pop pop } if >
-%
-% Redefinition of the PostScript /Polygon macro to print the intermediate
-% arrow on each segment of the line
-\pst@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
- /xx1 x1 def
- /yy1 y1 def
- x1 y1
- /x1 x0 x1 add 2 div def
- /y1 y0 y1 add 2 div def
- x1 y1 moveto
- /n n 2 sub def
- /drawArrows {
- x11 y11
- \psk@ArrowInsidePos\space 1 gt {
- /Alpha y12 y11 sub x12 x11 sub atan def
- /ArrowPos \psk@ArrowInsideOffset\space def
- /Length x12 x11 sub y12 y11 sub Pyth def
- /dArrowPos \psk@ArrowInsidePos\space abs def
- {
- /ArrowPos ArrowPos dArrowPos add def
- ArrowPos Length gt { exit } if
- x11 Alpha cos ArrowPos mul add
- y11 Alpha sin ArrowPos mul add
- currentdict /ArrowInside known { ArrowInside } if
- pop pop
- } loop
- }{
- /ArrowPos \psk@ArrowInsideOffset\space def
- /dArrowPos \psk@ArrowInsideNo\space 1 gt {%
- 1.0 \psk@ArrowInsideNo\space 1.0 add div
- }{ \psk@ArrowInsidePos } ifelse def
- \psk@ArrowInsideNo\space cvi {
- /ArrowPos ArrowPos dArrowPos add def
- x12 x11 sub ArrowPos mul x11 add
- y12 y11 sub ArrowPos mul y11 add
- currentdict /ArrowInside known { ArrowInside } if
- pop pop
- } repeat
- } ifelse
- pop pop Lineto
- } def
- n {
- 4 copy
- /y11 ED /x11 ED /y12 ED /x12 ED
- drawArrows
- } repeat
- x1 y1 x0 y0
- 6 4 roll
- 2 copy
- /y11 ED /x11 ED /y12 y0 def /x12 x0 def
- drawArrows
- /y11 y0 def /x11 x0 def /y12 yy1 def /x12 xx1 def
- drawArrows
- pop pop
- closepath
- } ifelse %
-}>
-%
-%
-% Redefinition of the PostScript /OpenBezier macro to print the intermediate
-% arrow
-\pst@def{OpenBezier}<{%
- /dArrowPos \psk@ArrowInsideNo 1 gt {%
- 1.0 \psk@ArrowInsideNo 1.0 add div
- }{ \psk@ArrowInsidePos } ifelse def
- BezierNArray
- n 1 eq { pop pop
- }{ 2 copy
- /y0 ED /x0 ED
- ArrowA
- n 4 sub 3 idiv { 6 2 roll 4 2 roll curveto } repeat
- 6 2 roll
- 4 2 roll
- ArrowB
- /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 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
- /getValues {
- ax t0 3 exp mul bx t0 t0 mul mul add cx t0 mul add x0 add
- ay t0 3 exp mul by t0 t0 mul mul add cy t0 mul add y0 add
- 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
- } def
- /getdL {
- getValues
- 3 -1 roll sub 3 1 roll sub Pyth
- } def
- /CurveLength {
- /u 0 def
- /du 0.01 def
- 0 100 {
- /t0 u def
- /u u du add def
- /t u def
- getdL add
- } repeat } def
- /GetArrowPos {
- /ende \psk@ArrowInsidePos\space 1 gt
- {ArrowPos}
- {ArrowPos CurveLength mul} ifelse def
- /u 0 def
- /du 0.01 def
- /sum 0 def
- { /t0 u def
- /u u du add def
- /t u def
- /sum getdL sum add def
- sum ende gt {exit} if
- } loop u
- } def
- /ArrowPos \psk@ArrowInsideOffset\space def
- /loopNo \psk@ArrowInsidePos\space 1 gt {%
- CurveLength \psk@ArrowInsidePos\space div cvi
- }{ \psk@ArrowInsideNo } ifelse def
- loopNo cvi {
- /ArrowPos ArrowPos dArrowPos add def
- /t GetArrowPos def
- /t0 t 0.95 mul def
- getValues
- ArrowInside pop pop pop pop
- } repeat
- x1 y1 x2 y2 x3 y3 curveto
- } ifelse
-}>
-%
-% Redefinition of the PostScript /NCLine macro to print the intermediate
-% arrow of the line
-\pst@def{NCLine}<{%
- NCCoor
- tx@Dict begin
- ArrowA CP 4 2 roll ArrowB
- 4 copy
- /y2 ED /x2 ED /y1 ED /x1 ED
- x1 y1
- \psk@ArrowInsidePos\space 1 gt {
- /Alpha y2 y1 sub x2 x1 sub atan def
- /ArrowPos \psk@ArrowInsideOffset\space def
- /Length x2 x1 sub y2 y1 sub Pyth def
- /dArrowPos \psk@ArrowInsidePos\space abs def
- {%
- /ArrowPos ArrowPos dArrowPos add def
- ArrowPos Length gt { exit } if
- x1 Alpha cos ArrowPos mul add
- y1 Alpha sin ArrowPos mul add
- ArrowInside
- pop pop
- } loop
- }{%
- /ArrowPos \psk@ArrowInsideOffset\space def
- /dArrowPos \psk@ArrowInsideNo 1 gt {%
- 1.0 \psk@ArrowInsideNo 1.0 add div
- }{ \psk@ArrowInsidePos } ifelse def
- \psk@ArrowInsideNo\space cvi {
- /ArrowPos ArrowPos dArrowPos add def
- x2 x1 sub ArrowPos mul x1 add
- y2 y1 sub ArrowPos mul y1 add
- ArrowInside
- pop pop
- } repeat
- } ifelse
- pop pop lineto pop pop
- end%
-}>
-%
-\pst@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
- 2 copy
- /y0 ED /x0 ED
- tx@Dict begin
- ArrowA
- end
- xB2 yB2 xB1 yB1
- tx@Dict begin
- ArrowB
- end
- /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 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
- /getValues {
- ax t0 3 exp mul bx t0 t0 mul mul add cx t0 mul add x0 add
- ay t0 3 exp mul by t0 t0 mul mul add cy t0 mul add y0 add
- 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
- } def
- /getdL {
- getValues
- 3 -1 roll sub 3 1 roll sub Pyth
- } def
- /CurveLength {
- /u 0 def
- /du 0.01 def
- 0 100 {
- /t0 u def
- /u u du add def
- /t u def
- getdL add
- } repeat } def
- /GetArrowPos {
- /ende \psk@ArrowInsidePos\space 1 gt {ArrowPos}{ArrowPos CurveLength mul} ifelse def
- /u 0 def
- /du 0.01 def
- /sum 0 def
- {
- /t0 u def
- /u u du add def
- /t u def
- /sum getdL sum add def
- sum ende gt {exit} if
- } loop u
- } def
- /dArrowPos \psk@ArrowInsideNo 1 gt {%
- 1.0 \psk@ArrowInsideNo 1.0 add div
- }{ \psk@ArrowInsidePos } ifelse def
- /ArrowPos \psk@ArrowInsideOffset\space def
- /loopNo \psk@ArrowInsidePos\space 1 gt {%
- CurveLength \psk@ArrowInsidePos\space div cvi
- }{ \psk@ArrowInsideNo } ifelse def
- loopNo cvi {
- /ArrowPos ArrowPos dArrowPos add def
- /t GetArrowPos def
- /t0 t 0.95 mul def
- getValues
- ArrowInside pop pop pop pop
- } repeat
- x1 y1 x2 y2 x3 y3 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\parseRP#1;#2;#3\@nil{%check whether arg of refpt contains ;
\def\arg@A{#1}\def\arg@B{#2}}
%
@@ -2587,10 +2008,6 @@ a add
\def\pst@linetype{0}%
% \pstScalePoints(1,1){}{}%
\psset[pstricks-add]{%
- hooklength=3mm, hookwidth=1mm,
- ArrowFill=true,
- ArrowInside={}, ArrowInsidePos=0.5,
- ArrowInsideNo=1, ArrowInsideOffset=0,
randomPoints=1000,color=false,
whichabs={},whichord={},
plotfuncx={},plotfuncy={},buildvector=false,