diff options
Diffstat (limited to 'graphics/pstricks/base/generic/pstricks-arrows.tex')
-rw-r--r-- | graphics/pstricks/base/generic/pstricks-arrows.tex | 54 |
1 files changed, 23 insertions, 31 deletions
diff --git a/graphics/pstricks/base/generic/pstricks-arrows.tex b/graphics/pstricks/base/generic/pstricks-arrows.tex index 0d89aa6b98..5684f3d792 100644 --- a/graphics/pstricks/base/generic/pstricks-arrows.tex +++ b/graphics/pstricks/base/generic/pstricks-arrows.tex @@ -1,4 +1,4 @@ -%% $Id: pstricks-arrows.tex 168 2021-08-28 08:43:24Z herbert $ +%% $Id: pstricks-arrows.tex 164 2021-08-25 19:26:42Z herbert $ %% %% This is file `pstricks-arrows.tex', %% @@ -279,18 +279,35 @@ \psset[pstricks]{filledveearrowlength=3mm} % default projected length \define@key[psset]{pstricks}{filledveearrowangle}[15]{\pst@getangle{#1}\psk@filledveearrowangle} \psset[pstricks]{filledveearrowangle=15} % default angle -\define@key[psset]{pstricks}{filledveearrowlinewidth}[0.8pt]{\pst@getlength{#1}\psk@filledveearrowlinewidth} -\psset[pstricks]{filledveearrowlinewidth=\pslinewidth} % default vee arrow line width +\define@key[psset]{pstricks}{filledveearrowlinewidth}[0.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth} +\psset[pstricks]{filledveearrowlinewidth=0.35mm} % default vee arrow line width \define@key[psset]{pstricks}{arrowlinestyle}[solid]{% \@ifundefined{psls@#1}% {\@pstrickserr{Line style `#1' not defined}\@eha}% {\def\psarrowlinestyle{#1}}} \psset[pstricks]{arrowlinestyle=solid} % default - -\@namedef{psas@|}{\ps@check@tipcolor \psk@tbarsize \tx@Tbar} +\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} + \ps@check@tipcolor + 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@|}{\ps@check@tipcolor \psk@tbarsize \tx@Tbar} + \@namedef{psas@v}{% \ps@check@tipcolor false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} @@ -298,37 +315,12 @@ \ps@check@tipcolor false true \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} \@namedef{psas@f}{% - \ps@check@tipcolor + \ps@check@tipcolor true false \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} \@namedef{psas@F}{% \ps@check@tipcolor true true \psk@filledveearrowangle \psk@filledveearrowlength \psk@filledveearrowlinewidth \tx@VeeArrow} -\pst@def{VeeArrow}<% - 5 dict begin - \pst@arrowscale\space div SLW % 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 - /x2 x dup add def - t { 1 -1 scale } if % if outside : symmetry -% newpath x2 neg y moveto 0 y neg rlineto x2 dup add 0 rlineto 0 y rlineto closepath clip % to get rid of linecap problem - newpath - x neg y moveto % lower left - 0 0 lineto % arrow tip - x y lineto % upper left - 0 setlinecap % round caps - 2 setlinejoin % round join - { closepath 0 setlinewidth gsave fill grestore } if % if filled : close and fill - \@nameuse{psls@\psarrowlinestyle} - \ps@check@tipcolor - stroke % draw line - 0 t { y 2 mul } { 0 } ifelse moveto - end -> % if outside : twice longer line - - % And An another arrowhead % architectural tick / oblique arrow |