summaryrefslogtreecommitdiff
path: root/graphics/pstricks/base/generic/pstricks-arrows.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/pstricks/base/generic/pstricks-arrows.tex')
-rw-r--r--graphics/pstricks/base/generic/pstricks-arrows.tex54
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