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, 31 insertions, 23 deletions
diff --git a/graphics/pstricks/base/generic/pstricks-arrows.tex b/graphics/pstricks/base/generic/pstricks-arrows.tex index 5684f3d792..0d89aa6b98 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 164 2021-08-25 19:26:42Z herbert $ +%% $Id: pstricks-arrows.tex 168 2021-08-28 08:43:24Z herbert $ %% %% This is file `pstricks-arrows.tex', %% @@ -279,35 +279,18 @@ \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.35mm]{\pst@getlength{#1}\psk@filledveearrowlinewidth} -\psset[pstricks]{filledveearrowlinewidth=0.35mm} % default vee arrow line width +\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}{arrowlinestyle}[solid]{% \@ifundefined{psls@#1}% {\@pstrickserr{Line style `#1' not defined}\@eha}% {\def\psarrowlinestyle{#1}}} \psset[pstricks]{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} - \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} +% VeeArrow : filled? outside? (total) angle (projected) length (arrow) line width + \@namedef{psas@v}{% \ps@check@tipcolor false false \psk@veearrowangle \psk@veearrowlength \psk@veearrowlinewidth \tx@VeeArrow} @@ -315,12 +298,37 @@ \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 |