From 4ce6f5f9c360b21c85e05cf51a20445a33aba4cc Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 24 Jan 2020 21:43:02 +0000
Subject: tkz-euclide (24jan20)

git-svn-id: svn://tug.org/texlive/trunk@53531 c570f23f-e606-0410-a88d-b1316a301751
---
 .../tex/latex/tkz-euclide/tkz-obj-eu-show.tex      | 344 +++++++++++++++++++++
 1 file changed, 344 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex

(limited to 'Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex')

diff --git a/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex
new file mode 100644
index 00000000000..457fbed257a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex
@@ -0,0 +1,344 @@
+%tkz-obj-eu-show.tex
+% Copyright 2011 by Alain Matthes
+% This file may be distributed and/or modified
+% 1. under the LaTeX Project Public License and/or
+% 2. under the GNU Public License.
+\def\fileversion{3.01c}
+\def\filedate{2020/01/23} 
+\typeout{2020/01/23 3.01c  tkz-obj-eu-show.tex} 
+\makeatletter  
+%<--------------------------------------------------------------------------–>
+% finding specific points in a triangle
+%<--------------------------------------------------------------------------–>
+%                            equi points
+%<--------------------------------------------------------------------------–>
+% draw  ? show ?   
+\pgfkeys{/tkzEquiPt/.cd,
+    from/.store in      = {\tkz@frompoint},
+    dist/.store in      = {\tkz@equ@dist},
+    show/.is if         = tkz@equi@show,
+    dist        = 2,
+    show        = false,
+     /tkzEquiPt/.search also={/tikz}
+}
+
+\def\tkzDefEquiPoints{\pgfutil@ifnextchar[{\tkz@DefEquiPoints}{%
+                                           \tkz@DefEquiPoints[]}}
+\def\tkz@DefEquiPoints[#1](#2,#3){%
+\pgfqkeys{/tkzEquiPt}{#1}
+\begingroup
+   \tkzUProjection(#2,#3)(\tkz@frompoint)
+   \pgfnodealias{tkzEQpoint}{tkzPointResult}
+   \tkzVecKNorm[\tkz@equ@dist](tkzEQpoint,#2)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzVecKNorm[-\tkz@equ@dist](tkzEQpoint,#2)
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+   \iftkz@equi@show
+      \tkzCompass[#1](\tkz@frompoint,tkzFirstPointResult)
+      \tkzCompass[#1](\tkz@frompoint,tkzSecondPointResult)
+   \fi
+\endgroup
+}
+
+%<---------------------------    The SHOW   --------------------------------–>
+%<--------------------------------------------------------------------------–>
+\global\def\tkz@numsh{0}
+\pgfkeys{/show/.cd,
+    mediator/.code             =          \def\tkz@numsh{0},
+    perpendicular/.code args   =  {through #1} {\global\def\tkz@numsh{1}%
+                                              \def\tkz@through{#1}}, 
+    orthogonal/.code args      =  {through #1} {\global\def\tkz@numsh{1}%
+                                                \global\def\tkz@through{#1}},
+    parallel/.code args         = {through #1} {\global\def\tkz@numsh{2}%
+                                            \global\def\tkz@through{#1}},    
+    bisector/.code                =           \global\def\tkz@numsh{3},
+    K/.code                     =   \def\tkz@koeff{#1}, 
+    length/.code                =   \def\tkz@show@length{#1},
+    ratio/.code                 =   \def\tkz@show@ratio{#1},
+    gap/.code                   =   \def\tkz@show@gap{#1},
+    size/.code                  =   \def\tkz@show@size{#1},
+    /show/.unknown/.code        =   {\let\searchname=\pgfkeyscurrentname
+                                   \pgfkeysalso{\searchname/.try=#1,
+                                   /compass/\searchname/.retry=#1,
+                                   /tikz/\searchname/.retry=#1}%
+                   }
+         }    
+\def\tkzShowLine{\pgfutil@ifnextchar[{\tkz@ShowLine}{\tkz@ShowLine[]}}
+\def\tkz@ShowLine[#1](#2){% 
+\begingroup
+\pgfqkeys{/show}{ K   = 1,
+          gap   = 2,
+          ratio = .5,
+          length  = 1,
+          size  = 1
+          }  
+\pgfqkeys{/show}{#1}  
+\ifcase\tkz@numsh%
+ % first case 0
+  \tkzShowMediatorLine[#1](#2)  
+ \or% 1
+  \tkzShowOrthLine[#1](#2)(\tkz@through)  
+ \or% 2
+   \tkzShowLLLine[#1](#2)(\tkz@through)
+ \or% 3
+  \tkzShowBisectorLine[#1](#2)
+\fi
+\endgroup
+}
+
+\def\tkzShowMediatorLine{%
+  \pgfutil@ifnextchar[{\tkz@ShowMediatorLine}{\tkz@ShowMediatorLine[]}}  
+\def\tkz@ShowMediatorLine[#1](#2,#3){%
+\begingroup
+\pgfkeys{show/.cd,  gap    =  2,
+          ratio  =  .5,
+          length =  1
+    }
+\pgfkeys{show/.cd,#1}  
+  \path (#2) -- (#3) coordinate[pos=.5](tkzmidpoint);
+  \tkzURotateAngle(#2,60)(#3)       
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult} 
+  \tkzURotateAngle(#3,60)(#2)      
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult} 
+  \tkz@VecKOrthNorm[1](tkzmidpoint,#2)     
+   \pgfnodealias{MED@tmp1}{tkzPointResult} 
+  \tkz@VecKOrthNorm[1](tkzmidpoint,#3)      
+  \pgfnodealias{MED@tmp2}{tkzPointResult} 
+  \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp1)  
+  \pgfnodealias{MED@1}{tkzPointResult} 
+  \tkz@VecKNorm[\tkz@show@gap](tkzmidpoint,MED@tmp2) 
+   \pgfnodealias{MED@2}{tkzPointResult} 
+  \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@1)
+  \tkzCompass[#1](#3,MED@1)
+  \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#2,MED@2)
+  \tkzCompass[#1](#3,MED@2)
+\endgroup
+}
+\def\tkzShowLLLine{\pgfutil@ifnextchar[{\tkz@ShowLLLine}{\tkz@ShowLLLine[]}}  
+\def\tkz@ShowLLLine[#1](#2,#3)(#4){%
+\begingroup
+\pgfkeys{show/.cd,gap=2,ratio=.75,length=1}
+\pgfkeys{show/.cd,#1}   
+    \tkz@VecKCoLinear[1](#2,#3,#4)
+     \pgfnodealias{tkz@lltmp}{tkzPointResult}
+    \tkzCompass[#1](#4,tkz@lltmp)
+    \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
+\endgroup
+} 
+
+%<--------------------------------------------------------------------------–>
+%                        tkzLineOrth 
+%<--------------------------------------------------------------------------–>
+% pas de projection ortho car le point peut être sur la droite.
+% manque les tests . Il faudrait voir si on peut projeter et choisir
+\def\tkzShowOrthLine{\pgfutil@ifnextchar[{\tkz@ShowOrthLine}{\tkz@ShowOrthLine[]}} 
+\def\tkz@ShowOrthLine[#1](#2,#3)(#4){% 
+\begingroup
+\pgfkeys{show/.cd,  ratio = .75,
+          length  = 1,
+          gap   = -1} % ????
+\pgfkeys{show/.cd,#1}  %????
+    \tkzVecKOrth(#2,#3)                
+    \pgfnodealias{tkz@OLtmp}{tkzPointResult}
+    \tkz@VecKCoLinear[1](#2,tkz@OLtmp,#4)      
+    \pgfnodealias{tkzPointCo}{tkzPointResult}
+    \tkzInterLL(#2,#3)(#4,tkzPointCo)
+    \pgfnodealias{tkzPOpoint}{tkzPointResult}
+    \tkzCalcLength(#4,tkzPOpoint)           
+    \tkzGetLength{tkz@mathLen}
+    \tkz@VecKNorm[1](#2,#3)
+    \pgfnodealias{PO@tmp}{tkzPointResult}
+    \tkz@VecKCoLinear[1](#2,PO@tmp,tkzPOpoint)  
+    \pgfnodealias{PO@tmp2}{tkzPointResult}
+    \tkz@VecKCoLinear[-1](#2,PO@tmp,tkzPOpoint)
+    \pgfnodealias{PO@tmp1}{tkzPointResult}
+    \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp1,tkzPOpoint) 
+    \pgfnodealias{PO@1}{tkzPointResult}
+    \tkz@VecKCoLinear[2](tkzPOpoint,PO@tmp2,tkzPOpoint)
+    \pgfnodealias{PO@2}{tkzPointResult}
+    \ifdim\tkz@mathLen pt>10 pt\relax
+        \tkz@VecKNorm[1](#4,tkzPOpoint)
+        \pgfnodealias{PO@tmp1}{tkzPointResult}
+      \else
+        \tkz@VecKOrthNorm[1](tkzPOpoint,PO@2)
+        \pgfnodealias{PO@tmp1}{tkzPointResult}
+     \fi
+    \tkz@VecKCoLinear[-\tkz@show@gap](PO@tmp1,tkzPOpoint,tkzPOpoint)
+    \pgfnodealias{PO@3}{tkzPointResult}
+    \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@1)
+    \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#4,PO@2)
+    \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](PO@1,PO@3)
+    \tkzCompass[#1,length=\tkz@show@length](PO@2,PO@3) 
+\endgroup
+}    
+%<-------------------------------------------------------------------------–> 
+%    bisector Line
+%<-------------------------------------------------------------------------–> 
+\def\tkzShowBisectorLine{%
+    \pgfutil@ifnextchar[{\tkz@ShowBisectorLine}{\tkz@ShowBisectorLine[]}}   
+\def\tkz@ShowBisectorLine[#1](#2,#3,#4){% 
+\begingroup
+\pgfkeys{show/.cd,  gap   = 2,
+          ratio =.  5,
+          length  = 1,
+          size  = 1}
+\pgfkeys{show/.cd,#1}    
+  \tkzVecKNorm(#3,#2)           
+    \pgfnodealias{tkz@pt1}{tkzPointResult}  
+  \tkzVecKNorm(#3,#4)           
+    \pgfnodealias{tkz@pt2}{tkzPointResult}
+  \tkzDefMidPoint(tkz@pt1,tkz@pt2)    
+    \pgfnodealias{tkz@pt3}{tkzPointResult}
+  \tkzDefEquilateral(tkz@pt2,tkz@pt1)   
+    \pgfnodealias{tkz@pt4}{tkzPointResult}
+  \tkzDefMidPoint(tkz@pt3,tkz@pt4)    
+    \pgfnodealias{tkz@ptm}{tkzPointResult}
+  \tkzVecKNorm(#3,tkz@ptm)        
+    \pgfnodealias{tkzBisPoint}{tkzPointResult}
+  \tkzVecKNorm[\tkz@show@size](#3,#2)   
+    \pgfnodealias{BI@1}{tkzPointResult}
+  \tkzVecKNorm[\tkz@show@size](#3,#4)   
+    \pgfnodealias{BI@2}{tkzPointResult}  
+  \tkzVecK[\tkz@show@gap](#3,tkzBisPoint) 
+    \pgfnodealias{tkzBisPoint}{tkzPointResult}
+  \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@1)
+  \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](#3,BI@2)
+  \tkzCompass[#1,length=\tkz@show@length](BI@1,tkzBisPoint)
+  \tkzCompass[#1,length=\tkz@show@ratio *\tkz@show@length](BI@2,tkzBisPoint)  
+\endgroup    
+}
+%<--------------------------------------------------------------------------–>
+%                        Transformations Géométriques
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+%                   The SHOW
+%<--------------------------------------------------------------------------–>
+\def\tkz@numst{0}
+\pgfkeys{/showtsf/.cd,
+ reflection/.code args={over #1--#2}{%
+                  \def\tkzdeb{#1}
+                  \def\tkzfin{#2}
+                  \def\tkz@numst{0}},  
+ symmetry/.code args={center #1}{%
+                  \def\tkzcenter{#1} 
+                  \def\tkz@numst{1}},
+ projection/.code args={onto #1--#2}{%
+                  \def\tkzdeb{#1}
+                  \def\tkzfin{#2}  
+                  \def\tkz@numst{2}},
+translation/.code args={from #1 to #2}{%
+                  \def\tkzfrom{#1}%
+                  \def\tkzto{#2}%
+                  \def\tkz@numst{3}},  
+  K/.code                = \def\tkz@koeff{#1}, 
+  length/.code           = \def\tkz@show@length{#1},
+  ratio/.code            = \def\tkz@show@ratio{#1},
+  gap/.code              = \def\tkz@show@gap{#1},
+  size/.code             = \def\tkz@show@size{#1},
+/showtsf/.unknown/.code  = {\let\searchname=\pgfkeyscurrentname
+                            \pgfkeysalso{\searchname/.try=#1,
+                                /compass/\searchname/.retry=#1,
+                                /tikz/\searchname/.retry=#1}}
+}  
+%<--------------------------------------------------------------------------–>
+\def\tkzShowTransformation{\pgfutil@ifnextchar[{\tkz@ShowTransformation}{%
+                                                 \tkz@ShowTransformation[]}}
+\def\tkz@ShowTransformation[#1](#2){% 
+\begingroup
+ \pgfqkeys{/showtsf}{K=1,gap=2,size=1,ratio=.5,length=1}  
+ \pgfqkeys{/showtsf}{#1} 
+ \pgfinterruptboundingbox  
+\ifcase\tkz@numst%
+ % first case 0
+  \tkzShowSymOrth[#1](\tkzdeb,\tkzfin)(#2)   
+  \or% 1
+  \tkzShowCSym[#1](\tkzcenter)(#2)
+  \or% 2
+  \tkzShowProjection[#1](\tkzdeb,\tkzfin)(#2) 
+  \or% 3
+  \tkzShowTranslation[#1](\tkzfrom,\tkzto)(#2) 
+  \fi  
+	\endpgfinterruptboundingbox   
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowTranslation{\pgfutil@ifnextchar[{\tkz@ShowTranslation}{%
+                                          \tkz@ShowTranslation[]}}  
+
+\def\tkz@ShowTranslation[#1](#2,#3)(#4){%
+\begingroup
+\tkz@VecKCoLinear[1](#2,#3,#4) \pgfnodealias{tkz@lltmp}{tkzPointResult}
+\tkzCompass[#1](#4,tkz@lltmp)
+\tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@lltmp)
+\endgroup}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowSymOrth{\pgfutil@ifnextchar[{\tkz@ShowSymOrth}{%
+                                          \tkz@ShowSymOrth[]}}  
+\def\tkz@ShowSymOrth[#1](#2,#3)(#4){%
+\begingroup
+  \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+               {\pgfpointanchor{#3}{center}}%
+  \tkz@ax =\pgf@y%
+  \tkz@ay =\pgf@x%
+  \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+  \tkzInterLL(#2,#3)(#4,tkz@point)  
+  \pgfnodealias{tkzPointofSym}{tkzPointResult}
+  \tkz@VecK[2](#4,tkzPointofSym) 
+  \pgfnodealias{tkz@pointtsf}{tkzPointResult}  
+  \tkzCompass[#1](#2,#4)
+  \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,#4)
+  \tkzCompass[#1](#2,tkz@pointtsf)
+  \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](#3,tkz@pointtsf)   
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowCSym{\pgfutil@ifnextchar[{\tkz@ShowCSym}{\tkz@ShowCSym[]}}
+ 
+\def\tkz@ShowCSym[#1](#2)(#3){%
+\begingroup
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+              {\pgfpointanchor{#3}{center}}%
+ \tkz@ax=\pgf@x%
+ \tkz@ay=\pgf@y%
+\path[coordinate](#2)--++(-\tkz@ax,-\tkz@ay) coordinate (tkz@pointtsf); 
+       \tkzCompass[#1](#2,tkz@pointtsf)
+       \tkzCompass[#1](#2,#3)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzShowProjection{\pgfutil@ifnextchar[{\tkz@ShowProjection}{%
+                                          \tkz@ShowProjection[]}}  
+\def\tkz@ShowProjection[#1](#2,#3)(#4){%
+\begingroup 
+  \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+               {\pgfpointanchor{#3}{center}}%
+  \tkz@ax =\pgf@y%
+  \tkz@ay =\pgf@x%     
+  \path[coordinate](#4)--++(-\tkz@ax,\tkz@ay) coordinate (tkz@point);
+  \tkzInterLL(#2,#3)(#4,tkz@point)          
+  \pgfnodealias{tkz@pointtsf}{tkzPointResult}
+  \tkz@VecKCoLinear[1](#2,#3,tkz@pointtsf)        
+  \pgfnodealias{SO@tmp1}{tkzPointResult}
+  \tkz@VecKCoLinear[-1](#2,#3,tkz@pointtsf)       
+  \pgfnodealias{SO@tmp2}{tkzPointResult}
+  \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp1)   
+  \pgfnodealias{SO@1}{tkzPointResult}
+  \tkz@VecKNorm[\tkz@show@size](tkz@pointtsf,SO@tmp2)   
+  \pgfnodealias{SO@2}{tkzPointResult}
+  \tkz@VecKNorm[-\tkz@show@gap](tkz@pointtsf,#4)      
+  \pgfnodealias{SO@3}{tkzPointResult}
+  \tkzCompass[#1](#4,SO@1)
+  \tkzCompass[#1](#4,SO@2)
+  \tkzCompass[#1](SO@1,SO@3)
+  \tkzCompass[#1,length=\tkz@show@ratio*\tkz@show@length](SO@2,SO@3)  
+\endgroup
+}   
+%<-------------------------------------------------------------------------–> 
+%<-------------------------------------------------------------------------–> 
+
+\makeatother  
+\endinput
\ No newline at end of file
-- 
cgit v1.2.3

