summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/pstricks-add
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-01-19 00:48:23 +0000
committerKarl Berry <karl@freefriends.org>2011-01-19 00:48:23 +0000
commit253a576fcd7a1b4f2e531719e79f7f8c98be2791 (patch)
treecec21c35ee091036c654c84e126fa54799297892 /Master/texmf-dist/tex/generic/pstricks-add
parent3ecf59827473ef50811e6d2ca409aa7838d9f23d (diff)
pstricks-add 3.49 (18jan11)
git-svn-id: svn://tug.org/texlive/trunk@21119 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.tex40
1 files changed, 37 insertions, 3 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 1505289d7ed..3d7da83946c 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 439 2010-12-18 18:45:23Z herbert $
+%% $Id: pstricks-add.tex 445 2011-01-18 18:43:16Z herbert $
%%
%%
%% This is file `pstricks-add.tex',
@@ -31,8 +31,8 @@
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey \fi
\ifx\PSTmathLoaded\endinput\else \input pst-math \fi
%
-\def\fileversion{3.48}
-\def\filedate{2010/12/18}
+\def\fileversion{3.49}
+\def\filedate{2011/01/18}
\message{`pstricks-add' v\fileversion, \filedate\space (dr,hv)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -2218,6 +2218,40 @@ dup #1Delta.X m 1 add get mul #1.X m get add #1Tick.X j 3 -1 roll put % s on sta
\ignorespaces%
}
%
+\def\psEllipseTangents(#1,#2)(#3,#4)(#5,#6){% (xe,ye)(a,b)(xP,yP) % no optional arguments
+ \pst@killglue%
+ \pnode(!
+ /A #3 def
+ /B #4 def
+ /A2 A dup mul def /B2 B dup mul def
+ #5 #1 sub /Xp ED
+ #6 #2 sub /Yp ED
+ A2 B2 mul Xp mul
+ Yp 4 exp A 6 exp mul
+ B2 Yp dup mul mul A 6 exp mul sub
+ B2 Xp dup mul mul Yp dup mul mul A 4 exp mul add sqrt add
+ Yp dup mul A2 mul B2 Xp dup mul mul add div /Xt ED % the x3 value
+ Xt dup mul A2 div neg 1 add sqrt B mul /Yt ED
+ Yt Yp sub Xt Xp sub mul 0 gt { % P is in 1st or 3rd quadrant
+ Xt dup mul A2 div neg 1 add sqrt neg B mul /Yt ED } if
+ Xt #1 add Yt #2 add ) {EllipseT1}%
+ \pnode(!
+ /A #3 def
+ /B #4 def
+ /A2 A dup mul def /B2 B dup mul def
+ #5 #1 sub /Xp ED
+ #6 #2 sub /Yp ED
+ A2 B2 mul Xp mul
+ Yp 4 exp A 6 exp mul
+ B2 Yp dup mul mul A 6 exp mul sub
+ B2 Xp dup mul mul Yp dup mul mul A 4 exp mul add sqrt sub
+ Yp dup mul A2 mul B2 Xp dup mul mul add div /Xt ED % the x3 value
+ Xt dup mul A2 div neg 1 add sqrt B mul /Yt ED
+ Yt Yp sub Xt Xp sub mul 0 lt { % P is in 2nd or 4th quadrant
+ Xt dup mul A2 div neg 1 add sqrt neg B mul /Yt ED } if
+ Xt #1 add Yt #2 add ) {EllipseT2}%
+ \ignorespaces}%
+%
\def\resetOptions{%
\def\pst@linetype{0}%
\pstScalePoints(1,1){}{}%