From 253a576fcd7a1b4f2e531719e79f7f8c98be2791 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Wed, 19 Jan 2011 00:48:23 +0000
Subject: pstricks-add 3.49 (18jan11)

git-svn-id: svn://tug.org/texlive/trunk@21119 c570f23f-e606-0410-a88d-b1316a301751
---
 .../tex/generic/pstricks-add/pstricks-add.tex      | 40 ++++++++++++++++++++--
 1 file changed, 37 insertions(+), 3 deletions(-)

(limited to 'Master/texmf-dist/tex/generic/pstricks-add/pstricks-add.tex')

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){}{}%
-- 
cgit v1.2.3

