texlive[68663] Master/texmf-dist: tkz-euclide (26oct23)

commits+karl at tug.org commits+karl at tug.org
Thu Oct 26 21:54:11 CEST 2023


Revision: 68663
          https://tug.org/svn/texlive?view=revision&revision=68663
Author:   karl
Date:     2023-10-26 21:54:11 +0200 (Thu, 26 Oct 2023)
Log Message:
-----------
tkz-euclide (26oct23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-ellipses.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-lines.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-points.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-polygons.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-protractor.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-sectors.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-show.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex

Removed Paths:
-------------
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-by.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-spc.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-with.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-base.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-intersections.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-math.tex

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,6 +1,6 @@
 # tkz-euclide — for euclidean geometry
 
-Release 5.03c 2023/10/20
+Release 5.04c 2023/10/26
 
 ## Description
 
@@ -65,10 +65,12 @@
 
 ## History
 
-- 5.03c. Correction of the file tkz-obj-lua-points-spc.tex.  Bug in the macro `\tkzDefBarycentricPointTwo`.
+- 5.04c Some files have been renamed.
+
+- 5.03c Correction of the file tkz-obj-lua-points-spc.tex.  Bug in the macro `\tkzDefBarycentricPointTwo`.
   Add macro  |\tkzDrawEllipse|;  
 
-- 5.02c. Correction of the file tkz-lib-eu-shape.tex.  Remove duplicate macro inside tkz-draw-eu-points.tex  (ex tkz-obj-eu-draw-points.tex);
+- 5.02c Correction of the file tkz-lib-eu-shape.tex.  Remove duplicate macro inside tkz-draw-eu-points.tex  (ex tkz-obj-eu-draw-points.tex);
 
 
 - 5.01c Correction of the date of the file tkz-euclide.sty. Cleaned up the file tkz-tools-lua-math.tex. Added file tkz-obj-eu-points-spc.tex;
@@ -75,13 +77,13 @@
 
 - 5.00c Added the "lua" option to the package, allowing to perform most of the calculations with "lua". This saves time and precision;
 
-- 4.25c. Remove \input{tkz-obj-eu-draw-triangles.tex} from the list of files to load.
+- 4.25c Remove \input{tkz-obj-eu-draw-triangles.tex} from the list of files to load.
 
-- 4.24c. Correction of a bug in the macro `\tkzMarkAngle`;    
+- 4.24c Correction of a bug in the macro `\tkzMarkAngle`;    
          Modification of the macro `\tkzDefCircle[apollonius]`;  
           
          
-- 4.23c. Correction of a bug in the macro `\tkzDrawSemiCircle`,
+- 4.23c Correction of a bug in the macro `\tkzDrawSemiCircle`,
          Modification of `\tkzDefRadicalAxis`,
          Remove old codes,
          Correction of  the documentation;

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -21,10 +21,10 @@
                headings    = small
                ]{tkz-doc}
 \gdef\tkznameofpack{tkz-euclide}
-\gdef\tkzversionofpack{5.03c}
+\gdef\tkzversionofpack{5.04c}
 \gdef\tkzdateofpack{\today}
 \gdef\tkznameofdoc{doc-tkz-euclide}
-\gdef\tkzversionofdoc{5.03c} 
+\gdef\tkzversionofdoc{5.04c} 
 \gdef\tkzdateofdoc{\today}
 \gdef\tkzauthorofpack{Alain Matthes}
 \gdef\tkzadressofauthor{}

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-angles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-angles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tool-eu-angles.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tool-eu-angles.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                    tkzSetUpArc  

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-circles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-circles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-circles.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-circles.tex} 
 \makeatletter 
 %<--------------------------------------------------------------------------–>
 %                    tkzSetUpCircle  

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-compass.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-compass.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-compass.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %  Author Alain Matthes  

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-ellipses.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-ellipses.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-ellipses.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-ellipses.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-ellipses.tex} 
 
 
 \makeatletter 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-lines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-lines.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-lines.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-draw-lines.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-draw-lines.tex}   
 \makeatletter
 
 %<--------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-points.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-points.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-points.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-draw-eu-points.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-draw-eu-points.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------->
 %                    tkzSetUpPoint  définit la forme d'un point

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-polygons.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-polygons.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-polygons.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-polygons.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-polygons.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 %                                 Polygon 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-protractor.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-protractor.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-protractor.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-protractor.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-protractor.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>  
 %                   !!! idea from Y. Combe  !!! 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-sectors.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-sectors.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-sectors.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20}
-\typeout{2023/10/20 5.03c tkz-obj-eu-sectors.tex}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26}
+\typeout{2023/10/26 5.04c tkz-obj-eu-sectors.tex}
 \makeatletter
 %<-----------------------    Sectors         ------------------------------–>
 \gdef\tkz at nums{0}

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-show.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-show.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-draw-eu-show.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-show.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-show.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 % finding specific points in a triangle

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg	2023-10-26 19:54:11 UTC (rev 68663)
@@ -16,9 +16,9 @@
 % and save the file in a directory  part of your TEXINPUTS environment 
 % variable. 
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-euclide.cfg}
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-euclide.cfg}
 %<------   colors  ---------------------------------------–> 
 \def\tkz at backgroundcolor{white}
 \def\tkz at textcolor{black}  

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,11 +10,11 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 %-------------------------------------------------------------------------------
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-euclide.sty} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-euclide.sty} 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-euclide}[ 2023/10/20 5.03c for pure  Euclidean Geometry ]
+\ProvidesPackage{tkz-euclide}[ 2023/10/26 5.04c for pure  Euclidean Geometry ]
 \newif\if at tkzlua
 \@tkzluafalse
 \DeclareOption{lua}{\@tkzluatrue}
@@ -180,16 +180,16 @@
 % % next from euclide
 \makeatletter
 \if at tkzlua
-\input{tkz-tools-lua-base.tex}
-\input{tkz-obj-lua-points.tex}
-\input{tkz-tools-lua-math.tex}
-\input{tkz-tools-lua-intersections.tex}
-\input{tkz-obj-lua-points-by.tex}
-\input{tkz-obj-lua-points-with.tex}
-\input{tkz-obj-lua-points-spc.tex}
-\input{tkz-tools-lua-angles.tex}
-\input{tkz-obj-lua-circles.tex}
-\input{tkz-obj-lua-circles-by.tex}
+\input{tkz-tools-eu-lua-base.tex}
+\input{tkz-obj-eu-lua-points.tex}
+\input{tkz-tools-eu-lua-math.tex}
+\input{tkz-tools-eu-lua-intersections.tex}
+\input{tkz-obj-eu-lua-points-by.tex}
+\input{tkz-obj-eu-lua-points-with.tex}
+\input{tkz-obj-eu-lua-points-spc.tex}
+\input{tkz-tools-eu-lua-angles.tex}
+\input{tkz-obj-eu-lua-circles.tex}
+\input{tkz-obj-eu-lua-circles-by.tex}
 \else
 \input{tkz-obj-eu-points.tex} 
 \input{tkz-obj-eu-points-by.tex}

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-lib-eu-marks.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-lib-eu-marks.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %  Création des symboles

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-lib-eu-shape.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-lib-eu-shape.tex}   
 %<--------------------------------------------------------------------------–>
 %  Création des symboles
 %<--------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-axesmin}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-axesmin}   
 
 \makeatletter
 \def\removedot#1.{#1}

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-circles.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-circles.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %            tkzCircle center and one point 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-circles.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-circles.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %            tkzCircle center and one point 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-grids.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-grids.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %              Setup   Grid

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-lines.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-lines.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                          les lignes

Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,157 @@
+% tkz-obj-eu-circles.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{6.00}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 6.00 tkz-obj-eu-circles.tex} 
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%            tkzCircle center and one point 
+%<--------------------------------------------------------------------------–>
+% attention radius circle is defined by center and a point on the circle
+% R defined by center and the value of the radius
+% no need to define a circle with R tikz uses this method.
+% through instead of radius
+\def\tkz at numcby{0}
+\pgfkeys{/tkzDefCircleBy/.cd,
+  translation/.code args = {from #1 to #2} {             \def\tkz at numcby{0}
+                                                         \def\tkzfrom{#1}
+                                                         \def\tkzto{#2}},
+  homothety/.code args = {center #1 ratio #2}{           \def\tkz at numcby{1}
+                                                         \def\tkzcenter{#1}
+                                                         \def\tkzratio{#2}},
+  reflection/.code args = {over #1--#2}{                 \def\tkz at numcby{2}
+                                                         \def\tkzdeb{#1}
+                                                         \def\tkzfin{#2}},
+  symmetry/.code args = {center #1}{                     \def\tkz at numcby{3}
+                                                         \def\tkzcenter{#1}},
+  rotation/.code args = {center #1 angle #2}{            \def\tkz at numcby{4}
+                                                         \def\tkzcenter{#1}
+                                                         \def\tkzangle{#2}},
+  inversion/.code args={center #1 through #2}{           \def\tkz at numcby{5}
+                                                         \def\tkzcenter{#1}
+                                                         \def\tkzpoint{#2}},
+  inversion negative/.code args = {center #1 through #2}{\def\tkz at numcby{6}
+                                                         \def\tkzcenter{#1}
+                                                         \def\tkzpoint{#2}}
+      } 
+\def\tkzDefCircleBy{\pgfutil at ifnextchar[{\tkz at DefCircleBy}{\tkz at DefCircleBy[]}}
+\def\tkz at DefCircleBy[#1](#2){% 
+\begingroup  
+\pgfqkeys{/tkzDefCircleBy}{#1}  
+\ifcase\tkz at numcby%
+  \tkzDefCircleTranslation(#2)%
+  \or% 1 
+  \tkzDefCircleHomothety(#2)  
+  \or% 2
+  \tkzDefCircleReflection(#2) 
+  \or% 3
+  \tkzDefCircleSymmetry(#2) 
+  \or% 4
+  \tkzDefCircleRotation(#2) 
+  \or% 5
+  \tkzDefInversionCircle(#2,\tkzcenter,\tkzpoint) 
+  \or% 6
+  \tkzDefInversionNegativeCircle(#2,\tkzcenter,\tkzpoint) 
+\fi    
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleTranslation(#1,#2){%
+\begingroup 
+   \tkzUTranslation(\tkzfrom,\tkzto)(#1)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzUTranslation(\tkzfrom,\tkzto)(#2)
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}  
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleHomothety(#1,#2){%
+\begingroup 
+   \tkzUHomo(\tkzcenter,\tkzratio)(#1)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzUHomo(\tkzcenter,\tkzratio)(#2)
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleReflection(#1,#2){%
+\begingroup 
+   \tkzUSymOrth(\tkzdeb,\tkzfin)(#1) 
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzUSymOrth(\tkzdeb,\tkzfin)(#2) 
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleSymmetry(#1,#2){%
+\begingroup 
+   \tkzUCSym(\tkzcenter)(#1)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzUCSym(\tkzcenter)(#2)
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleRotation(#1,#2){%
+\begingroup 
+   \tkzURotateAngle(\tkzcenter,\tkzangle)(#1)
+    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+    \tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
+    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% #3,#4 cercle d'inversion centre #3. through #4
+% Si le cercle passe par le pôle l'image est une droite
+\def\tkzDefInversionCircle(#1,#2,#3,#4){%  
+\begingroup
+    \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
+    \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
+    \edef\tkzMathResult{\tkz at Dec{\tkz at Round{\tkz at Abs{\tkz at lnb - \tkz at lna}}{6}}}
+    \ifdim\tkzMathResult pt < 0.00001 pt\relax%
+    \tkzURotateAngle(#1,-90)(#2)
+    \pgfnodealias{tkz at a}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(tkz at a)
+    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(#2)
+    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+     \else
+    \tkzURotateAngle(#1,90)(#2)
+    \pgfnodealias{tkz at a}{tkzPointResult}
+    \tkzURotateAngle(#1,-90)(#2)
+    \pgfnodealias{tkz at b}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(tkz at a)
+    \pgfnodealias{tkz at p1}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(tkz at b)
+    \pgfnodealias{tkz at p2}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(#2)    
+    \pgfnodealias{tkz at p3}{tkzPointResult}
+    \tkzDefCircle[circum](tkz at p3,tkz at p1,tkz at p2)
+    \fi
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){%
+\begingroup
+   \tkzDefInversionCircle(#1,#2,#3,#4)
+   \tkzUCSym(\tkzcenter)(tkzFirstPointResult)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+   \tkzUCSym(\tkzcenter)(tkzSecondPointResult)
+   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%              End Def Circle
+%<--------------------------------------------------------------------------–>  
+\makeatother 
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles-by.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,223 @@
+% tkz-obj-lua-circles.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-lua-circles.tex} 
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%            tkzCircle center and one point 
+%<--------------------------------------------------------------------------–>
+% attention radius circle is defined by center and a point on the circle
+% R defined by center and the value of the radius
+% no need to define a circle with R tikz uses this method.
+% through instead of radius
+\def\tkz at numc{0}
+\pgfkeys{/tkzcircle/.cd,
+      R/.code                                   = \def\tkz at numc{0},
+      diameter/.code                            = \def\tkz at numc{1},
+      circum/.code                              = \def\tkz at numc{2},
+      in/.code                                  = \def\tkz at numc{3},
+      ex/.code                                  = \def\tkz at numc{4},
+      euler/.code                               = \def\tkz at numc{5},
+      nine/.code                                = \def\tkz at numc{5},
+      apollonius/.code                          = \def\tkz at numc{6},
+      spieker/.code                             = \def\tkz at numc{7},
+      orthogonal from/.code args                = {#1}{\gdef\tkz at numc{8}
+                                                   \def\tkz at ptfrom{#1}}, 
+      orthogonal through/.code args             = {#1 and #2}{\gdef\tkz at numc{9}
+                                                   \def\tkz at ptone{#1}
+                                                   \def\tkz at pttwo{#2}},
+      K/.code                                   = \def\tkz at koeff{#1},
+      K                                         =  1,
+      circum
+      } 
+\def\tkzDefCircle{\pgfutil at ifnextchar[{\tkz at DefCircle}{\tkz at DefCircle[]}}
+\def\tkz at DefCircle[#1](#2){% 
+\begingroup  
+\pgfqkeys{/tkzcircle}{#1}  
+\ifcase\tkz at numc%
+  \tkzDefCircleR(#2)
+  \or% 1 
+  \tkzDefCircleD(#2)  
+  \or% 2
+  \tkzDefCircumCircle(#2) 
+  \or% 3
+  \tkzDefInCircle(#2) 
+  \or% 4
+  \tkzDefExCircle(#2) 
+  \or% 5
+  \tkzDefEulerCircle(#2)
+  \or% 6
+  \tkzDefApolloniusCircle(#2) 
+  \or% 7
+  \tkzDefSpiekerCircle(#2)
+   \or% 8
+  \tkzDefOrthogonalCircle(#2,\tkz at ptfrom)
+   \or% 9
+  \tkzDefOrthoThroughCircle(#2,\tkz at ptone,\tkz at pttwo)
+     \fi    
+\endgroup
+}
+%for compatibility
+%<--------------------------------------------------------------------------–>
+%                     R
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleR(#1,#2){% 
+\begingroup 
+   \edef\tkzLengthResult{\fpeval{round(#2,5)}}
+   \global\let\tkzLengthResult\tkzLengthResult
+   \path (#1)--++(\tkzLengthResult,0) coordinate (tkzSecondPointResult);
+   \tkzRenamePoint(tkzSecondPointResult){tkzPointResult}
+\endgroup
+} 
+
+%<--------------------------------------------------------------------------–>
+%              Diameter Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleD(#1,#2){% 
+\begingroup
+  \tkzDefMidPoint(#1,#2)
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+  \pgfnodealias{tkzSecondPointResult}{#2}
+  \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%              Circum Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircumCircle(#1,#2,#3){%
+\begingroup
+  \tkzCircumCenter(#1,#2,#3)
+  \tkzRenamePoint(tkzPointResult){tkzFirstPointResult}
+  \tkzRenamePoint(#1){tkzSecondPointResult}
+  \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm]
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%              In(scribe) Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefInCircle(#1,#2,#3){%
+\begingroup
+  \tkzInCenter(#1,#2,#3) 
+  \pgfnodealias{tkz at incenter}{tkzPointResult}
+  \tkzUProjection(#1,#3)(tkz at incenter) 
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+  \tkz@@CalcLengthcm(tkzPointResult,tkz at incenter){tkzLengthResult}
+  \pgfnodealias{tkzPointResult}{tkz at incenter}
+  \pgfnodealias{tkzFirstPointResult}{tkz at incenter}
+\endgroup
+}  
+%<--------------------------------------------------------------------------–>
+%              Ex(scribe) Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExCircle(#1,#2,#3){%
+\begingroup
+  \tkzExCenter(#1,#2,#3) 
+  \pgfnodealias{tkz at excenter}{tkzPointResult}
+  \tkzUProjection(#1,#3)(tkz at excenter)
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+  \tkz@@CalcLengthcm(tkzPointResult,tkz at excenter){tkzLengthResult}% for tkzGetLength
+  \pgfnodealias{tkzPointResult}{tkz at excenter}
+  \pgfnodealias{tkzFirstPointResult}{tkz at excenter}  
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%              Radius Ex Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExRadius(#1,#2,#3){%
+\begingroup
+   \tkzExCenter(#1,#2,#3)
+   \tkzUProjection(#1,#3)(tkzPointResult)
+\endgroup
+}    
+%<--------------------------------------------------------------------------–>
+% The nine-point circle, also called Euler's circle or the Feuerbach circle  
+% best way Ma,Mb,Mc circum center  2020
+%<--------------------------------------------------------------------------–>
+\def\tkzDefEulerCircle(#1,#2,#3){%
+\begingroup
+ \tkzDefMidPoint(#1,#2) \pgfnodealias{tkz at e1}{tkzPointResult}
+ \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz at e2}{tkzPointResult}
+ \tkzDefMidPoint(#1,#3) \pgfnodealias{tkz at e3}{tkzPointResult}
+ \tkzCircumCenter(tkz at e1,tkz at e2,tkz at e3) 
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}  
+ \tkzRenamePoint(tkz at e1){tkzSecondPointResult}
+ \tkz@@CalcLengthcm(tkzPointResult,tkz at e1){tkzLengthResult}
+\endgroup
+} 
+\let\tkzDefNinePointsCircle\tkzEulerCircle%
+\let\tkzFeuerBachCircle\tkzEulerCircle%  
+
+\def\tkzDefEulerRadius(#1,#2,#3){%
+\begingroup
+   \tkzEulerCenter(#1,#2,#3)
+   \pgfnodealias{eur at pta}{tkzPointResult}   
+   \tkzDefMidPoint(#1,#2)  
+   \tkz@@CalcLengthcm(eur at pta,tkzPointResult){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%                     Apollonius circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefApolloniusCircle(#1,#2){%
+\begingroup
+  \tkzDefBarycentricPointTwo(#1,1,#2,\tkz at koeff)   
+  \pgfnodealias{apo at pta}{tkzPointResult} 
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}  
+  \tkzDefBarycentricPointTwo(#1,1,#2,-\tkz at koeff)  
+  \pgfnodealias{apo at ptb}{tkzPointResult} 
+  \tkzDefMidPoint(apo at pta,apo at ptb)  
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult} 
+  \tkz@@CalcLengthcm(tkzFirstPointResult,apo at pta){tkzLengthResult}  
+  \pgfnodealias{tkzThirdPointResult}{apo at ptb} 
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefOrthogonalCircle(#1,#2,#3){%   
+\begingroup
+   \tkzTgtFromP(#1,#2)(#3)
+   \tkz@@CalcLengthcm(#1,tkzFirstPointResult){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzDefOrthoThroughCircle(#1,#2,#3,#4){%  
+\begingroup
+  \tkz@@CalcLengthcm(#1,#3){tkz at lnb}%
+  \edef\tkz at lnc{\fpeval{1/\tkz at lnb}}
+  \tkzVecKNorm[\tkz at lnc](#1,#3) 
+  \pgfnodealias{tkz at PointResult}{tkzPointResult}
+  \tkzCircumCenter(tkz at PointResult,#3,#4)
+  \tkz@@CalcLengthcm(tkzPointResult,#3){tkzLengthResult}
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+  \pgfnodealias{tkzSecondPointResult}{#3}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%              Spieker Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefSpiekerCircle(#1,#2,#3){%
+\begingroup
+  \tkzSpiekerCenter(#1,#2,#3)
+  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+  \tkzUProjection(tkz at m1,tkz at m2)(tkzPointResult)
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+  \tkz@@CalcLength(tkzSecondPointResult,tkzFirstPointResult){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+
+%<--------------------------------------------------------------------------–>
+%              End Def Circle
+%<--------------------------------------------------------------------------–>  
+\makeatother 
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-circles.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,522 @@
+% tkz-tools-lua-points-by.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-lua-points-by.tex}  
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%                        Transformations Géométriques
+%<--------------------------------------------------------------------------–>
+\def\tkz at numtrsf{0}
+\pgfkeys{/tkzDefPointBy/.cd,
+ translation/.code args={from #1 to #2}{               \def\tkzfrom{#1}%
+                                                       \def\tkzto{#2}%
+                                                       \def\tkz at numtrsf{0}},
+ homothety/.code args={center #1 ratio #2}{            \def\tkzcenter{#1}%
+                                                       \def\tkzratio{#2}%
+                                                       \def\tkz at numtrsf{1}},
+ reflection/.code args={over #1--#2}{                  \def\tkzdeb{#1}%
+                                                       \def\tkzfin{#2}%
+                                                       \def\tkz at numtrsf{2}},
+ symmetry/.code args={center #1}{                      \def\tkzcenter{#1}%
+                                                       \def\tkz at numtrsf{3}},
+ projection/.code args={onto #1--#2}{                  \def\tkzdeb{#1}%
+                                                       \def\tkzfin{#2}%  
+                                                       \def\tkz at numtrsf{4}}, 
+ rotation/.code args={center #1 angle #2}{             \def\tkzcenter{#1}%
+                                                       \def\tkzangle{#2}%
+                                                       \def\tkz at numtrsf{5}},
+ rotation in rad/.code args={center #1 angle #2}{      \def\tkzcenter{#1}%
+                                                       \def\tkzangle{#2}%
+                                                       \def\tkz at numtrsf{6}},
+ inversion/.code args={center #1 through #2}{          \def\tkzcenter{#1}%
+                                                       \def\tkzpoint{#2}%
+                                                       \def\tkz at numtrsf{7}},
+ inversion negative/.code args={center #1 through #2}{ \def\tkzcenter{#1}%
+                                                       \def\tkzpoint{#2}%
+                                                       \def\tkz at numtrsf{8}},
+ rotation with nodes/.code  args={center #1 from #2 to #3}{  \def\tkzcenter{#1}%
+                                                            \def\tkzfrom{#2}%
+                                                            \def\tkzto{#3}%
+                                                            \def\tkz at numtrsf{9}}
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPointBy{\pgfutil at ifnextchar[{\tkz at DefPointBy}{\tkz at DefPointBy[]}}
+\def\tkz at DefPointBy[#1](#2){% 
+\begingroup 
+\pgfqkeys{/tkzDefPointBy}{#1}    
+ \ifcase\tkz at numtrsf%
+%  % first case 0   
+   \tkzUTranslation(\tkzfrom,\tkzto)(#2) 
+\or% 1
+   \tkzUHomo(\tkzcenter,\tkzratio)(#2)
+\or% 2
+   \tkzUSymOrth(\tkzdeb,\tkzfin)(#2) 
+\or% 3
+   \tkzUCSym(\tkzcenter)(#2)
+\or% 4
+   \tkzUProjection(\tkzdeb,\tkzfin)(#2)  
+\or% 5  
+   \tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
+\or% 6 
+   \tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
+\or% 7
+   \tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)     
+\or% 8
+   \tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)   
+\or% 9
+   \tkzURotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2)
+\fi   
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPointsBy{\pgfutil at ifnextchar[{\tkz at DefPointsBy}{\tkz at DefPointsBy[]}}
+\def\tkz at DefPointsBy[#1](#2)#3{% 
+\begingroup
+\pgfqkeys{/tkzDefPointBy}{#1}  
+\ifcase\tkz at numtrsf%
+ % first case 0
+   \tkzTranslation(\tkzfrom,\tkzto)(#2){#3}  
+ \or% 1
+   \tkzHomo(\tkzcenter,\tkzratio)(#2){#3}
+ \or% 2
+   \tkzSymOrth(\tkzdeb,\tkzfin)(#2){#3} 
+ \or% 3
+   \tkzCSym(\tkzcenter)(#2){#3}
+ \or% 4
+   \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
+ \or% 5
+   \tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
+ \or% 6
+   \tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
+ \or% 7
+   \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}    
+ \or% 8
+   \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
+   \or% 9
+ \tkzRotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2){#3}
+\fi    
+\endgroup
+} 
+
+%<--------------------------------------------------------------------------–>
+
+\def\ExtractPoint#1,#2\@nil{% 
+\xdef\tkz at LastList{#2}
+\xdef\tkz at FirstPoint{#1}  
+} 
+\def\FirstPointInList#1{% 
+\edef\tkz at templist{#1,}
+\expandafter\ExtractPoint\tkz at templist\@nil
+}
+%<--------------------------------------------------------------------------–>
+%  Translation par rapport à un point
+%<--------------------------------------------------------------------------–>
+\def\tkzTranslation(#1,#2)(#3)#4{%
+\begingroup 
+\gdef\tkz at LastList{#4}
+\foreach\PT in {#3}{%
+   \FirstPointInList\tkz at LastList
+    \ifx\tkz at FirstPoint\tkzutil at empty  
+      \def\tkz at pointtsf{\PT '}
+    \else
+      \def\tkz at pointtsf{\tkz at FirstPoint}
+    \fi 
+   \tkz at VecCoLinear(#1,#2,\PT) 
+    \pgfnodealias{\tkz at pointtsf}{tkzPointResult}       
+   }  
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUTranslation(#1,#2)(#3){%
+\begingroup 
+  \tkz at VecCoLinear(#1,#2,#3)% 
+\endgroup
+}  
+
+%<--------------------------------------------------------------------------–>
+%  Symétrie par rapport à un point Homo with (-1) 
+% #2 le centre #3 l'antécédent 
+%<--------------------------------------------------------------------------–>
+\def\tkzCSym(#1)(#2)#3{%
+\begingroup
+\gdef\tkz at LastList{#3}
+ \foreach\PointCS in {#2}{%
+   \FirstPointInList\tkz at LastList
+   \ifx\tkz at FirstPoint\tkzutil at empty  
+      \xdef\tkz at pointtsf{\PointCS '}
+   \else
+      \xdef\tkz at pointtsf{\tkz at FirstPoint}
+   \fi 
+     \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                  {\pgfpointanchor{\PointCS}{center}}%
+     \tkz at ax=\pgf at x%
+     \tkz at ay=\pgf at y%
+ \pgfinterruptboundingbox
+     \path(#1)--++(-\tkz at ax,-\tkz at ay)coordinate (\tkz at pointtsf); 
+  \endpgfinterruptboundingbox
+}       
+\endgroup 
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUCSym(#1)(#2){%
+\begingroup
+    \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                 {\pgfpointanchor{#2}{center}}%
+    \tkz at ax=\pgf at x%
+    \tkz at ay=\pgf at y%
+   \path(#1)--++(-\tkz at ax,-\tkz at ay)coordinate (tkzPointResult); 
+\endgroup 
+} 
+%<--------------------------------------------------------------------------–>
+%  Symétrie orthogonale par rapport à une droite
+%<--------------------------------------------------------------------------–> 
+\def\tkzSymOrth(#1,#2)(#3)#4{%
+\begingroup 
+\gdef\tkz at LastList{#4}
+    \foreach\PointSO in {#3}{%
+      \FirstPointInList\tkz at LastList
+      \ifx\tkz at FirstPoint\tkzutil at empty  
+         \def\tkz at pointtsf{\PointSO '}
+      \else
+         \def\tkz at pointtsf{\tkz at FirstPoint}
+      \fi 
+  \tkzUSymOrth(#1,#2)(\PointSO)    
+  \pgfnodealias{\tkz at pointtsf}{tkzPointResult} 
+  }    
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUSymOrth(#1,#2)(#3){%
+\begingroup
+   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                {\pgfpointanchor{#2}{center}}%
+   \tkz at ax =\pgf at y%
+   \tkz at ay =\pgf at x%  
+   \pgfinterruptboundingbox
+   \path[coordinate] (#3)--++(-\tkz at ax,\tkz at ay) coordinate  (tkz at point);
+     \endpgfinterruptboundingbox
+   \tkzInterLL(#1,#2)(#3,tkz at point)
+   \pgfnodealias{tkzPointofSym}{tkzPointResult}
+   \tkz at VecK[2](#3,tkzPointofSym)
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+%  Projection orthogonale sur une droite
+%<--------------------------------------------------------------------------–>
+\def\tkzProjection(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz at LastList{#4}
+    \foreach\PointPJ in {#3}{%
+      \FirstPointInList\tkz at LastList
+      \ifx\tkz at FirstPoint\tkzutil at empty
+         \def\tkz at pointtsf{\PointPJ '}
+      \else
+         \def\tkz at pointtsf{\tkz at FirstPoint}
+      \fi
+  \tkzUProjection(#1,#2)(\PointPJ)
+  \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
+  }
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUProjection(#1,#2)(#3){%
+\begingroup 
+  \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+               {\pgfpointanchor{#2}{center}}%
+  \tkz at ax =\pgf at y%
+  \tkz at ay =\pgf at x%
+  \pgfinterruptboundingbox
+    \path[coordinate](#3)--++(-\tkz at ax,\tkz at ay) coordinate (tkz at point);
+    \tkzInterLL(#1,#2)(#3,tkz at point)% définit tkzPointResult 
+  \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkz at Projection(#1,#2)(#3)#4{%
+\begingroup 
+  \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+               {\pgfpointanchor{#2}{center}}%
+  \tkz at ax =\pgf at y%
+  \tkz at ay =\pgf at x%
+   \pgfinterruptboundingbox
+  \path[coordinate](#3)--++(-\tkz at ax,\tkz at ay) coordinate (tkz at point);
+   \endpgfinterruptboundingbox
+  \tkz at InterLL(#1,#2)(#3,tkz at point){#4}% définit tkzPointResult 
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%  Homothétie par rapport à un point
+%<--------------------------------------------------------------------------–>
+\def\tkzHomo(#1,#2)(#3)#4{%
+\begingroup 
+\gdef\tkz at LastList{#4}
+\foreach\PointHO in {#3}{%
+  \FirstPointInList\tkz at LastList
+  \ifx\tkz at FirstPoint\tkzutil at empty  
+     \xdef\tkz at pointtsf{\PointHO '}
+  \else
+     \xdef\tkz at pointtsf{\tkz at FirstPoint}
+  \fi 
+   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                {\pgfpointanchor{\PointHO}{center}}%
+  \pgf at xa=\pgf at x%
+  \pgf at ya=\pgf at y% 
+  \pgfmathparse{#2}
+  \edef\tkz at coeff{\pgfmathresult}%
+  \pgfinterruptboundingbox
+  \path[coordinate](#1)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)%
+        coordinate(\tkz at pointtsf);
+ \endpgfinterruptboundingbox
+  }  
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzUHomo(#1,#2)(#3){%
+\begingroup 
+ \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+              {\pgfpointanchor{#3}{center}}%
+ \pgf at xa=\pgf at x%
+ \pgf at ya=\pgf at y% 
+ \pgfmathparse{#2}
+ \edef\tkz at coeff{\pgfmathresult}%
+ \pgfinterruptboundingbox
+ \path[coordinate](#1)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)%
+      coordinate(tkzPointResult);
+        \endpgfinterruptboundingbox
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                 rotation  en degré
+%<--------------------------------------------------------------------------–>
+\def\tkzRotateAngle(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz at LastList{#4}
+\foreach\PointRot in {#3}{%
+  \FirstPointInList\tkz at LastList
+  \ifx\tkz at FirstPoint\tkzutil at empty  
+     \def\tkz at pointtsf{\PointRot '}
+  \else
+     \def\tkz at pointtsf{\tkz at FirstPoint}
+  \fi 
+    \tkz@@extractxy{\PointRot}
+    \tkz at ax\pgf at x%
+    \tkz at ay\pgf at y%
+    \tkz@@extractxy{#1}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                             {#2}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \pgfinterruptboundingbox
+    \path[coordinate](\tkz at bx,\tkz at by)coordinate(\tkz at pointtsf);% 
+    \endpgfinterruptboundingbox
+}   
+  \endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateAngle(#1,#2)(#3){%
+\begingroup 
+  \pgf at process{\pgfpointanchor{#3}{center}}%
+    \tkz at ax\pgf at x%
+    \tkz at ay\pgf at y%
+    \pgf at process{\pgfpointanchor{#1}{center}}%
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                             {#2}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \pgfinterruptboundingbox
+      \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);% 
+    \endpgfinterruptboundingbox     
+\endgroup
+}   
+%<--------------------------------------------------------------------------–>
+% %                 rotation  en radian
+% %<--------------------------------------------------------------------------–>
+\def\tkzRotateInRad(#1,#2)(#3)#4{%
+\begingroup
+\gdef\tkz at LastList{#4}
+    \foreach\PointRot in {#3}{%
+      \FirstPointInList\tkz at LastList
+      \ifx\tkz at FirstPoint\tkzutil at empty  
+         \xdef\tkz at pointtsf{\PointRot '}
+      \else
+         \xdef\tkz at pointtsf{\tkz at FirstPoint}
+      \fi 
+   \pgfmathparse{#2 r}
+   \let\tkz at Angle\pgfmathresult
+    \tkz@@extractxy{\PointRot}
+    \tkz at ax\pgf at x%
+    \tkz at ay\pgf at y%
+    \tkz@@extractxy{#1}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                             {\tkz at Angle}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+      \pgfinterruptboundingbox
+    \path[coordinate](\tkz at bx,\tkz at by)coordinate(\tkz at pointtsf); 
+      \endpgfinterruptboundingbox 
+}  
+\endgroup 
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateInRad(#1,#2)(#3){%
+\begingroup
+   \pgfmathparse{#2 r}
+   \let\tkz at Angle\pgfmathresult
+    \tkz@@extractxy{#3}
+    \tkz at ax\pgf at x%
+    \tkz at ay\pgf at y%
+    \tkz@@extractxy{#1}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                             {\tkz at Angle}
+    \tkz at bx\pgf at x%
+    \tkz at by\pgf at y%
+      \pgfinterruptboundingbox
+    \path[coordinate](\tkz at bx,\tkz at by)coordinate(tkzPointResult); 
+      \endpgfinterruptboundingbox 
+\endgroup 
+}
+%<--------------------------------------------------------------------------–>
+%                   Inverse of a point 
+%<--------------------------------------------------------------------------–>
+\def\tkzInversePoint(#1,#2)(#3)#4{%
+\begingroup 
+\gdef\tkz at LastList{#4}
+    \foreach\PointIP in {#3}{%
+      \FirstPointInList\tkz at LastList
+      \ifx\tkz at FirstPoint\tkzutil at empty  
+         \xdef\tkz at pointtsf{\PointIP '}
+      \else
+         \xdef\tkz at pointtsf{\tkz at FirstPoint}
+      \fi 
+    \tkz@@CalcLengthcm(#1,#2){tkz at lna}
+    \tkz@@CalcLengthcm(#1,\PointIP){tkz at lnb}
+    \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
+    \tkzVecKNorm[\tkz at lnc](#1,\PointIP) 
+    \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
+    }  
+\endgroup
+} 
+\def\tkzUInversePoint(#1,#2)(#3){%  
+\begingroup  
+   \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
+   \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
+   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
+   \tkzVecKNorm[\tkz at lnc](#1,#3) 
+\endgroup
+} 
+% possible 
+% \tkzDefLine[tangent from =#3](#1,#2) 
+% \tkzTgtFromP(#1,#2)(#3) 
+% \tkzInterLL(tkzFirstPointResult,tkzSecondPointResult)(#1,#2) 
+%<--------------------------------------------------------------------------–>
+%                   Inverse negative of a point 
+%<--------------------------------------------------------------------------–>
+\def\tkzInverseNegativePoint(#1,#2)(#3)#4{%
+\begingroup 
+\gdef\tkz at LastList{#4}
+    \foreach\PointIP in {#3}{%
+      \FirstPointInList\tkz at LastList
+      \ifx\tkz at FirstPoint\tkzutil at empty  
+         \xdef\tkz at pointtsf{\PointIP '}
+      \else
+         \xdef\tkz at pointtsf{\tkz at FirstPoint}
+      \fi 
+   \tkz@@CalcLengthcm(#1,#2){tkz at lna}
+   \tkz@@CalcLengthcm(#1,\PointIP){tkz at lnb}
+   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
+   \tkzVecKNorm[\tkz at lnc](#1,\PointIP) 
+   \tkzUCSym(#1)(tkzPointResult)
+   \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
+   }  
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzUInverseNegativePoint(#1,#2)(#3){%  
+\begingroup  
+   \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
+   \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
+   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
+   \tkzVecKNorm[\tkz at lnc](#1,#3) 
+   \tkzUCSym(#1)(tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------- rotate with nodes                 ------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzRotateWithNodes(#1,#2,#3)(#4)#5{%
+\begingroup
+\gdef\tkz at LastList{#5}
+ \foreach\PointRotWN in {#4}{%
+   \FirstPointInList\tkz at LastList
+   \ifx\tkz at FirstPoint\tkzutil at empty  
+      \def\tkz at pointtsf{\PointRotWN '}
+   \else
+      \def\tkz at pointtsf{\tkz at FirstPoint}
+   \fi 
+   \tkzFindAngle(#2,#1,#3)
+   \tkz@@extractxy{\PointRotWN}
+   \tkz at ax\pgf at x%
+   \tkz at ay\pgf at y%
+   \tkz@@extractxy{#1}
+   \tkz at bx\pgf at x%
+   \tkz at by\pgf at y%
+   \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                        {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                        {\tkzAngleResult}
+   \tkz at bx\pgf at x%
+   \tkz at by\pgf at y%
+   \pgfinterruptboundingbox
+   \path[coordinate](\tkz at bx,\tkz at by) coordinate (\tkz at pointtsf);% 
+   \endpgfinterruptboundingbox
+}   
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateWithNodes(#1,#2,#3)(#4){%
+\begingroup 
+  \tkzFindAngle(#2,#1,#3)
+  \pgf at process{\pgfpointanchor{#4}{center}}%
+  \tkz at ax\pgf at x%
+  \tkz at ay\pgf at y%
+  \pgf at process{\pgfpointanchor{#1}{center}}%
+  \tkz at bx\pgf at x%
+  \tkz at by\pgf at y%
+  \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                           {\pgfpoint{\tkz at bx}{\tkz at by}}%
+                           {\tkzAngleResult}
+  \tkz at bx\pgf at x%
+  \tkz at by\pgf at y%
+  \pgfinterruptboundingbox
+  \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);%
+  \endpgfinterruptboundingbox  
+\endgroup
+}   
+%<--------------------------------------------------------------------------–>
+%                   Fin des transformations
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-by.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,680 @@
+% tkz-obj-lua-points.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/01/23} 
+\typeout{2023/01/23 5.04c tkz-obj-lua-points-spc.tex} 
+\makeatletter  
+%add ExCenter
+%<--------------------------------------------------------------------------–>
+%                   Specific points
+%<--------------------------------------------------------------------------–>
+%                              barycentre
+%<--------------------------------------------------------------------------–>
+\def\tkzDefBarycentricPoint(#1){%
+\begingroup
+ \path[coordinate]  (barycentric cs:#1) coordinate (tkzPointResult); 
+\endgroup
+}
+\let\tkzDefBCPoint\tkzDefBarycentricPoint
+
+\def\tkzDefBarycentricPointTwo(#1,#2,#3,#4){%
+\begingroup
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
+\tkz at ax\pgf at x %
+\tkz at ay\pgf at y %
+\edef\tkzcax{\strip at pt\tkz at ax}%
+\edef\tkzcay{\strip at pt\tkz at ay}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}
+\tkz at bx\pgf at x %
+\tkz at by\pgf at y %
+\edef\tkzcbx{\strip at pt\tkz at bx}%
+\edef\tkzcby{\strip at pt\tkz at by}%
+\edef\tkztpmx{\tkz at Dec{(\tkzcax*(#2) + \tkzcbx*(#4))/(#2 + #4 )}}
+\edef\tkztpmy{\tkz at Dec{(\tkzcay*(#2) + \tkzcby*(#2))/(#2 + #4 )}}
+\pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+%                      milieu  de deux points
+%<--------------------------------------------------------------------------–>
+% possible   \coordinate (#3) at ($(#1)!0.5!(#2)$);
+%<--------------------------------------------------------------------------–>
+% \def\tkzDefMidPoint(#1,#2){%
+% \begingroup
+%  \path (#1) -- (#2) coordinate[pos=.5](tkzPointResult);
+% \endgroup
+% }
+\def\tkzDefMidPoint(#1,#2){%
+\begingroup
+   \pgf at process{\pgfpointanchor{#1}{center}}%
+   \tkz at ax\pgf at x%
+   \tkz at ay\pgf at y%
+   \pgf at process{\pgfpointanchor{#2}{center}}%
+   \tkz at bx\pgf at x%
+   \tkz at by\pgf at y%
+   \advance\tkz at bx by\tkz at ax\relax%
+   \advance\tkz at by by\tkz at ay\relax%
+   \divide\tkz at bx by2\relax%
+   \divide\tkz at by by2\relax
+   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at bx}{\tkz at by}}
+\endgroup
+}
+\def\tkz at DefMidPoint(#1,#2,#3,#4){%
+\begingroup
+   \tkz at ax#1%
+   \tkz at ay#2%
+   \tkz at bx#3%
+   \tkz at by#4%
+   \advance\tkz at bx by\tkz at ax\relax%
+   \advance\tkz at by by\tkz at ay\relax%
+   \divide\tkz at bx by2\relax%
+   \divide\tkz at by by2\relax
+   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at bx}{\tkz at by}}
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+\def\tkz at simicenter{0}
+\pgfkeys{/tkzsimicenter/.cd,
+      ext/.code       = \def\tkz at simicenter{0},
+      int/.code       = \def\tkz at simicenter{1},
+      ext
+}%
+
+\def\tkzDefSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefSimilitudeCenter}%
+                                                {\tkz at DefSimilitudeCenter[]}}     
+\def\tkz at DefSimilitudeCenter[#1](#2,#3)(#4,#5){%
+\pgfqkeys{/tkzsimicenter}{#1} 
+\begingroup  
+\ifcase\tkz at simicenter%
+  \tkzDefExtSimilitudeCenter[#1](#2,#3)(#4,#5)
+  \or% 1 
+  \tkzDefIntSimilitudeCenter[#1](#2,#3)(#4,#5) 
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                    Internal Similitude center
+%  Two circles have two similitude centers namely the internal center of
+%   similitude Si and the external similitude center Se.
+%<--------------------------------------------------------------------------–>
+\def\tkz at numhomo{0}
+\pgfkeys{
+/tkzSimilitudeCenter/.cd,
+ node/.code          = \def\tkz at numhomo{0},
+ R/.code             = \def\tkz at numhomo{1},
+ node,
+ /tkzSimilitudeCenter/.unknown/.code   = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}}
+}
+\def\tkzDefIntSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefIntSimilitudeCenter}{\tkz at DefIntSimilitudeCenter[]}}
+\def\tkz at DefIntSimilitudeCenter[#1](#2,#3)(#4,#5){%
+\begingroup
+\pgfqkeys{/tkzSimilitudeCenter}{#1}
+\ifcase\tkz at numhomo%
+    \tkz@@CalcLengthcm(#2,#3){tkz at rt}%
+    \tkz@@CalcLengthcm(#4,#5){tkz at rf}%
+  \or% 1
+   \def\tkz at rt{#3}%
+   \def\tkz at rf{#5}%
+\fi
+\pgfinterruptboundingbox 
+\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
+\tkz at ax\pgf at x %
+\tkz at ay\pgf at y %
+\edef\tkzcax{\strip at pt\tkz at ax}%
+\edef\tkzcay{\strip at pt\tkz at ay}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}
+\tkz at bx\pgf at x %
+\tkz at by\pgf at y %
+\edef\tkzcbx{\strip at pt\tkz at bx}%
+\edef\tkzcby{\strip at pt\tkz at by}%
+\edef\tkztpmx{\tkz at Dec{(\tkzcax*\tkz at rf + \tkzcbx*\tkz at rt)/(\tkz at rf + \tkz at rt )}}
+\edef\tkztpmy{\tkz at Dec{(\tkzcay*\tkz at rf + \tkzcby*\tkz at rt)/(\tkz at rf + \tkz at rt )}}
+  \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
+\endpgfinterruptboundingbox 
+\endgroup
+}
+\let\tkzDefIntHomotheticCenter\tkzDefIntSimilitudeCenter
+%<--------------------------------------------------------------------------–>
+%                    External Similitude center
+%<--------------------------------------------------------------------------–>
+\def\tkzDefExtSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefExtSimilitudeCenter}{%
+\tkz at DefExtSimilitudeCenter[]}}
+
+\def\tkz at DefExtSimilitudeCenter[#1](#2,#3)(#4,#5){%
+\begingroup
+\pgfqkeys{/tkzSimilitudeCenter}{#1}
+\ifcase\tkz at numhomo%
+  \tkz@@CalcLengthcm(#2,#3){tkz at rt}%
+  \tkz@@CalcLengthcm(#4,#5){tkz at rf}%
+   \or% 1
+  \def\tkz at rt{#3}%
+  \def\tkz at rf{#5}%
+\fi
+\pgfinterruptboundingbox 
+\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
+\tkz at ax\pgf at x %
+\tkz at ay\pgf at y %
+\edef\tkzcax{\strip at pt\tkz at ax}%
+\edef\tkzcay{\strip at pt\tkz at ay}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}
+\tkz at bx\pgf at x %
+\tkz at by\pgf at y %
+\edef\tkzcbx{\strip at pt\tkz at bx}%
+\edef\tkzcby{\strip at pt\tkz at by}%
+\edef\tkztpmx{\tkz at Dec{(\tkzcax*(-\tkz at rf) + \tkzcbx*\tkz at rt)/(\tkz at rt - (\tkz at rf))}}
+\edef\tkztpmy{\tkz at Dec{(\tkzcay*(-\tkz at rf) + \tkzcby*\tkz at rt)/(\tkz at rt - (\tkz at rf))}}
+  \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
+   \endpgfinterruptboundingbox 
+\endgroup
+}
+
+\let\tkzDefExtHomotheticCenter\tkzDefExtSimilitudeCenter
+%<--------------------------------------------------------------------------–>
+%        Harmonic Division
+%<--------------------------------------------------------------------------–>
+%  A , B , C ,D  CA/CB = DA/DB
+%<--------------------------------------------------------------------------–>
+\def\tkz at numdha{0}
+\pgfkeys{/tkzharmonic/.cd,
+      ext/.code       = \def\tkz at numdha{0},
+      int/.code       = \def\tkz at numdha{1},
+      both/.code      = \def\tkz at numdha{2},
+      both,
+}%
+
+\def\tkzDivHarmonic{\pgfutil at ifnextchar[{\tkz at DivHarmonic}{\tkz at DivHarmonic[]}}     
+\def\tkz at DivHarmonic[#1](#2){%
+\begingroup 
+\pgfqkeys{/tkzharmonic}{#1}  
+  \ifcase\tkz at numdha%
+   \tkzDefDivHarmonicExt(#2)
+ \or%
+    \tkzDefDivHarmonicInt(#2)
+  \or%
+    \tkzDefDivHarmonicBoth(#2)
+ \fi
+\endgroup
+}
+
+\def\tkzDefDivHarmonicExt(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox 
+  \tkz at VecKOrth[](#1,#2)  \tkzGetPoint{tkz at px}
+  \tkzDefMidPoint(tkz at px,#2)          \tkzGetPoint{tkz at py}
+  \tkzInterLL(tkz at px,#3)(#1,tkz at py)   \tkzGetPoint{tkz at pz}
+  \tkzInterLL(#2,tkz at pz)(#1,tkz at px)   \tkzGetPoint{tkz at px}
+  \tkzInterLL(tkz at py,tkz at px)(#1,#2)   \tkzGetPoint{tkzPointResult}
+\endpgfinterruptboundingbox 
+\endgroup
+}
+
+\def\tkzDefDivHarmonicInt(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox 
+  \tkz at VecKOrth[1](#1,#2)  \tkzGetPoint{tkz at px}
+  \tkzDefMidPoint(tkz at px,#2)          \tkzGetPoint{tkz at py}
+  \tkzInterLL(tkz at py,#3)(#1,tkz at px)   \tkzGetPoint{tkz at pz}
+  \tkzInterLL(#2,tkz at pz)(#1,tkz at py)   \tkzGetPoint{tkz at py}
+  \tkzInterLL(tkz at py,tkz at px)(#1,#2)   \tkzGetPoint{tkzPointResult}
+\endpgfinterruptboundingbox 
+\endgroup
+}
+
+\def\tkzDefDivHarmonicBoth(#1,#2,#3){%
+\begingroup
+\edef\tkz at k{\fpeval{#3}}
+    \path[coordinate]  (barycentric cs:#1=1,#2={\tkz at k}) coordinate (tkzFirstPointResult);
+    \path[coordinate]  (barycentric cs:#1=1,#2={-\tkz at k}) coordinate (tkzSecondPointResult);
+\endgroup
+}
+
+\let\tkzDefHarmonic\tkzDivHarmonic
+%<--------------------------------------------------------------------------–> 
+%                   golden ratio
+%<--------------------------------------------------------------------------–>
+\def\tkzDefGoldenRatio(#1,#2){%
+\begingroup
+\tkzDefPointWith[linear,K=\tkzInvPhi](#1,#2)
+\endgroup
+}
+%<--------------------------------------------------------------------------–> 
+%                    triangle center
+%<--------------------------------------------------------------------------–>
+
+\def\tkz at numtc{0}
+\pgfkeys{/tkzDefTriangleCenter/.cd,
+   ortho/.code        = \def\tkz at numtc{0},
+   orthic/.code       = \def\tkz at numtc{0},
+   centroid/.code     = \def\tkz at numtc{1},
+   median/.code       = \def\tkz at numtc{1},
+   circum/.code       = \def\tkz at numtc{2},
+   in/.code           = \def\tkz at numtc{3},
+   ex/.code           = \def\tkz at numtc{4},
+   euler/.code        = \def\tkz at numtc{5},
+   symmedian/.code    = \def\tkz at numtc{6},
+   lemoine/.code      = \def\tkz at numtc{6},
+   grebe/.code        = \def\tkz at numtc{6},
+   spieker/.code      = \def\tkz at numtc{7},
+   gergonne/.code     = \def\tkz at numtc{8},
+   nagel/.code        = \def\tkz at numtc{9}, 
+   mittenpunkt/.code  = \def\tkz at numtc{10}, 
+   feuerbach/.code    = \def\tkz at numtc{11},
+   circum       
+}     
+\def\tkzDefTriangleCenter{\pgfutil at ifnextchar[{\tkz at DefTriangleCenter}{\tkz at DefTriangleCenter[]}}
+\def\tkz at DefTriangleCenter[#1](#2){% 
+\begingroup  
+\pgfqkeys{/tkzDefTriangleCenter}{#1}  
+\ifcase\tkz at numtc%
+  \tkzOrthoCenter(#2)
+  \or% 1 
+  \tkzCentroid(#2)  
+  \or% 2
+  \tkzCircumCenter(#2) 
+  \or% 3
+  \tkzInCenter(#2) 
+  \or% 4
+  \tkzExCenter(#2) 
+  \or% 5
+  \tkzEulerCenter(#2)
+  \or% 6
+  \tkzSymmedianCenter(#2) 
+  \or% 7
+  \tkzSpiekerCenter(#2) 
+  \or% 8
+  \tkzGergonneCenter(#2) 
+  \or%9
+  \tkzNagelCenter(#2)
+  \or%10
+  \tkzMittenpunktCenter(#2) 
+  \or%11
+  \tkzFeuerbachCenter(#2) 
+    \fi    
+\endgroup
+}
+%<--------------------------------------------------------------------------–> 
+%                    OrthoCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzOrthoCenter(#1,#2,#3){%
+\begingroup
+  \pgfinterruptboundingbox 
+   \tkzUProjection(#1,#2)(#3)
+   \pgfnodealias{ort at pta}{tkzPointResult}
+   \tkzUProjection(#1,#3)(#2)
+   \pgfnodealias{ort at ptb}{tkzPointResult}
+   \tkzInterLL(#2,ort at ptb)(#3,ort at pta)
+   \endpgfinterruptboundingbox 
+\endgroup
+}
+\let\tkzDefOrthoCenter\tkzOrthoCenter
+%<--------------------------------------------------------------------------–>
+%                      GravityCenter modif 3.03
+%<--------------------------------------------------------------------------–>
+\def\tkzCentroid(#1,#2,#3){%
+\begingroup 
+   \pgf at process{\pgfpointanchor{#1}{center}}%
+   \tkz at ax\pgf at x%
+   \tkz at ay\pgf at y%
+   \pgf at process{\pgfpointanchor{#2}{center}}%
+   \tkz at bx\pgf at x%
+   \tkz at by\pgf at y%
+   \pgf at process{\pgfpointanchor{#3}{center}}%
+   \tkz at cx\pgf at x%
+   \tkz at cy\pgf at y%
+   \edef\tkzcax{\strip at pt\tkz at ax}%
+   \edef\tkzcay{\strip at pt\tkz at ay}%
+   \edef\tkzcbx{\strip at pt\tkz at bx}%
+   \edef\tkzcby{\strip at pt\tkz at by}%
+   \edef\tkzccx{\strip at pt\tkz at cx}%
+   \edef\tkzccy{\strip at pt\tkz at cy}%
+   \edef\tkztpmx{\tkz at Dec{(\tkzcax + \tkzcbx + \tkzccx)/3}}
+   \edef\tkztpmy{\tkz at Dec{(\tkzcay + \tkzcby + \tkzccy)/3}}
+   \pgfinterruptboundingbox 
+   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
+   \endpgfinterruptboundingbox   
+\endgroup
+}
+\let\tkzBaryCenter\tkzCentroid
+
+%<--------------------------------------------------------------------------–>
+%                      CircumCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzCircumCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox 
+ \tkzDefMediatorLine(#1,#2)
+ \pgf at process{\pgfpointanchor{tkzFirstPointResult}{center}}%
+ \tkz at ax\pgf at x%
+ \tkz at ay\pgf at y%
+ \pgf at process{\pgfpointanchor{tkzSecondPointResult}{center}}%
+ \tkz at bx\pgf at x%
+ \tkz at by\pgf at y%
+ \tkzDefMediatorLine(#1,#3)
+ \pgf at process{\pgfpointanchor{tkzFirstPointResult}{center}}%
+ \tkz at cx\pgf at x%
+ \tkz at cy\pgf at y%
+ \pgf at process{\pgfpointanchor{tkzSecondPointResult}{center}}%
+ \tkz at dx\pgf at x%
+ \tkz at dy\pgf at y%
+\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
+\endpgfinterruptboundingbox
+\endgroup
+} 
+\let\tkzDefCircumCenter\tkzCircumCenter
+%<--------------------------------------------------------------------------–>
+%                     InCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzInCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox 
+\tkzDefBisectorLine(#3,#1,#2)
+\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
+\tkz at bx\pgf at x%
+\tkz at by\pgf at y%
+\tkzDefBisectorLine(#3,#2,#1) 
+\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
+\tkz at dx\pgf at x%
+\tkz at dy\pgf at y%
+\pgf at process{\pgfpointanchor{#1}{center}}%
+\tkz at ax\pgf at x%
+\tkz at ay\pgf at y%
+\pgf at process{\pgfpointanchor{#2}{center}}%
+\tkz at cx\pgf at x%
+\tkz at cy\pgf at y%
+\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
+\endpgfinterruptboundingbox
+\endgroup
+} 
+\let\tkzDefInCenter\tkzInCenter
+%<--------------------------------------------------------------------------–>
+%                     ExCenter
+%<--------------------------------------------------------------------------–>
+\def\tkzExCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox 
+\tkzDefBisectorOutLine(#2,#1,#3)
+\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
+\tkz at bx\pgf at x%
+\tkz at by\pgf at y%
+\tkzDefBisectorOutLine(#2,#3,#1) 
+\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
+\tkz at dx\pgf at x%
+\tkz at dy\pgf at y%
+\pgf at process{\pgfpointanchor{#1}{center}}%
+\tkz at ax\pgf at x%
+\tkz at ay\pgf at y%
+\pgf at process{\pgfpointanchor{#3}{center}}%
+\tkz at cx\pgf at x%
+\tkz at cy\pgf at y%
+\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
+\endpgfinterruptboundingbox
+\endgroup
+} 
+\let\tkzDefExCenter\tkzExCenter
+%<--------------------------------------------------------------------------–>
+%                     EulerCenter neuf points
+%<--------------------------------------------------------------------------–>
+\def\tkzEulerCenter(#1,#2,#3){% 
+% mileu de orthocentre et centre cercle circonscrit
+% passe par les midpoints par les pieds des hauteurs
+\begingroup
+\pgfinterruptboundingbox 
+\tkzDefMidPoint(#1,#2)
+\pgfnodealias{eu at mic}{tkzPointResult}
+\tkzDefMidPoint(#1,#3)
+\pgfnodealias{eu at mib}{tkzPointResult}
+\tkzDefMidPoint(#2,#3)
+\pgfnodealias{eu at mia}{tkzPointResult}
+\tkzCircumCenter(eu at mia,eu at mib,eu at mic)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzNinePointCenter\tkzEulerCenter
+\let\tkzDefEulerCenter\tkzEulerCenter
+%<--------------------------------------------------------------------------–>
+%Symmedian center Lemoine point Grebe point K
+%<--------------------------------------------------------------------------–>
+\def\tkzSymmedianCenter(#1,#2,#3){%
+\begingroup
+\pgfinterruptboundingbox    
+\tkzDefMidPoint(#2,#3)
+\pgfnodealias{eu at mic}{tkzPointResult}
+\tkzDefMidPoint(#1,#3)
+\pgfnodealias{eu at mib}{tkzPointResult}
+\tkzUProjection(#2,#3)(#1)
+\pgfnodealias{ort at pta}{tkzPointResult}
+\tkzDefMidPoint(#1,ort at pta)
+\pgfnodealias{eu at mid}{tkzPointResult}
+\tkzUProjection(#1,#3)(#2)
+\pgfnodealias{ort at ptb}{tkzPointResult}
+\tkzDefMidPoint(#2,ort at ptb)
+\pgfnodealias{eu at mie}{tkzPointResult}
+\tkzInterLL(eu at mic,eu at mid)(eu at mib,eu at mie)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzLemoinePoint\tkzSymmedianCenter
+\let\tkzGrebePoint\tkzSymmedianCenter
+\let\tkzDefLemoinePoint\tkzLemoinePoint
+%<--------------------------------------------------------------------------–> 
+%                   Spieker center
+%<--------------------------------------------------------------------------–>
+\def\tkzSpiekerCenter(#1,#2,#3){%
+\begingroup
+% we need to get the midpoints
+\pgfcoordinate{tkz at m3}{%
+  \pgfpointscale{0.5}{%
+  \pgfpointadd{\pgfpointanchor{#1}{center}}%
+              {\pgfpointanchor{#2}{center}}}}%
+\pgfcoordinate{tkz at m2}{%
+  \pgfpointscale{0.5}{%
+  \pgfpointadd{\pgfpointanchor{#1}{center}}%
+              {\pgfpointanchor{#3}{center}}}}%
+\pgfcoordinate{tkz at m1}{%
+   \pgfpointscale{0.5}{%
+   \pgfpointadd{\pgfpointanchor{#2}{center}}%
+               {\pgfpointanchor{#3}{center}}}}%
+\tkzInCenter(tkz at m1,tkz at m2,tkz at m3)
+\endgroup
+} 
+\let\tkzDefSpiekerCenter\tkzSpiekerCenter 
+%<--------------------------------------------------------------------------–> 
+%                    Gergonne center Ge
+%<--------------------------------------------------------------------------–>
+\def\tkzGergonneCenter(#1,#2,#3){%  
+\begingroup
+\pgfinterruptboundingbox 
+\tkzInCenter(#1,#2,#3)
+\pgfnodealias{tkz at ptin}{tkzPointResult}
+\tkzUProjection(#2,#3)(tkz at ptin)
+\pgfnodealias{tkz at oca}{tkzPointResult}
+\tkzUProjection(#1,#3)(tkz at ptin)
+\pgfnodealias{tkz at ocb}{tkzPointResult}
+\tkzInterLL(#1,tkz at oca)(#2,tkz at ocb)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefGergonneCenter\tkzGergonneCenter 
+%<--------------------------------------------------------------------------–> 
+%                    Nagel center Na
+%<--------------------------------------------------------------------------–>
+%  INa = 3 IG. Nagel point % correction 02/02/20
+\def\tkzNagelCenter(#1,#2,#3){%  
+\begingroup
+\pgfinterruptboundingbox 
+\tkzDefExcentralTriangle(#1,#2,#3){tkz at a,tkz at b,tkz at c}
+\tkzUProjection(#2,#3)(tkz at a)
+\pgfnodealias{tkz at tgta}{tkzPointResult}
+\tkzUProjection(#1,#2)(tkz at c)
+\pgfnodealias{tkz at tgtc}{tkzPointResult}
+\tkzInterLL(#1,tkz at tgta)(#3,tkz at tgtc)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefNagelCenter\tkzNagelCenter 
+%<--------------------------------------------------------------------------–>
+%  Mittenpunkt
+%<--------------------------------------------------------------------------–>
+\def\tkzMittenpunktCenter(#1,#2,#3){%  
+\begingroup
+\pgfinterruptboundingbox 
+\tkzExCenter(#2,#3,#1)
+\pgfnodealias{tkz at a}{tkzPointResult}
+\tkzExCenter(#3,#1,#2)
+\pgfnodealias{tkz at b}{tkzPointResult}
+\pgfcoordinate{tkz at ma}{%
+\pgfpointscale{0.5}{%
+\pgfpointadd{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}}%
+\pgfcoordinate{tkz at mb}{%
+\pgfpointscale{0.5}{%
+\pgfpointadd{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}}}%
+\tkzInterLL(tkz at a,tkz at ma)(tkz at b,tkz at mb)
+\endpgfinterruptboundingbox
+\endgroup
+}
+\let\tkzDefMittenpunktCenter\tkzMittenpunktCenter 
+\let\tkzDefMiddlespoint\tkzMittenpunktCenter     
+%<--------------------------------------------------------------------------–> 
+%                   Feuerbach point
+%<--------------------------------------------------------------------------–>
+\def\tkzFeuerbachCenter(#1,#2,#3){%  
+\begingroup
+\pgfinterruptboundingbox 
+\tkzEulerCenter(#1,#2,#3)
+\pgfnodealias{tkz at euler}{tkzPointResult}
+\tkzInCenter(#1,#2,#3) 
+\pgfnodealias{tkz at in}{tkzPointResult}
+\tkzUProjection(#2,#3)(tkzPointResult)
+\tkzInterLC(tkz at in,tkz at euler)(tkz at in,tkzPointResult)\tkzGetFirstPoint{tkz at fe}
+\tkzRenamePoint(tkz at fe){tkzPointResult}
+\endpgfinterruptboundingbox  
+\endgroup
+}
+\let\tkzDefFeuerbachCenter\tkzFeuerbachCenter 
+%<--------------------------------------------------------------------------–>
+%                     Orthogonal center
+%<--------------------------------------------------------------------------–>
+\def\tkzOrthogonalCenter(#1,#2){%
+\begingroup
+\pgfinterruptboundingbox 
+\tkz at VecK[\tkz at koeff/(1+\tkz at koeff)](#1,#2)
+\pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+\tkz at VecK[\tkz at koeff/(\tkz at koeff-1)](#1,#2)
+\pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult) 
+\endpgfinterruptboundingbox 
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                  End Triangle center
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+%                  Projection  center of excircles
+%<--------------------------------------------------------------------------–>
+\def\tkzDefProjExcenter{\pgfutil at ifnextchar[{%
+    \tkz at DefProjExcenter}{%
+    \tkz at DefProjExcenter[]}
+    }
+\def\tkz at DefProjExcenter[#1](#2,#3,#4)(#5)#6{
+\begingroup  
+  \SetUpPTTR{#1}
+   \foreach \name  [count=\i] in {#5} {%
+      \global\expandafter\edef\csname tkz at pt\i\endcsname{\name}
+        }
+   \foreach \name  [count=\i] in {#6} {%
+      \global\expandafter\edef\csname tkz at ppt\i\endcsname{\name}
+        }
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
+\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
+\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
+\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
+\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
+\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
+\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
+\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
+\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
+\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
+\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
+\endgroup 
+} 
+%<--------------------------------------------------------------------------–>
+%              Point on circle
+%<--------------------------------------------------------------------------–>
+\def\tkz at numptcirc{0}
+\pgfkeys{/tkzptcircle/.cd,
+through/.code  args = {center #1 angle #2 point #3}        { \def\tkz at center{#1}%
+                                                             \def\tkz at angle{#2}%
+                                                             \def\tkz at through{#3}%
+                                                             \def\tkz at numptcirc{0}},
+R/.code args = {center #1 angle #2 radius #3}              { \def\tkz at center{#1}%
+                                                             \def\tkz at angle{#2}%
+                                                             \def\tkz at radius{#3}%
+                                                             \def\tkz at numptcirc{1}},
+through in rad/.code  args = {center #1 angle #2 point #3} { \def\tkz at center{#1}%
+                                                             \def\tkz at angle{#2}%
+                                                             \def\tkz at through{#3}%
+                                                             \def\tkz at numptcirc{2}},
+R in rad/.code args = {center #1 angle #2 radius #3}       { \def\tkz at center{#1}%
+                                                             \def\tkz at angle{#2}%
+                                                             \def\tkz at radius{#3}%
+                                                             \def\tkz at numptcirc{3}}                                                 
+}
+                                                  
+\def\tkzDefPointOnCircle{\pgfutil at ifnextchar[{\tkz at DefPointOnCircle}{%
+                                              \tkz at DefPointOnCircle[]}}     
+\def\tkz at DefPointOnCircle[#1]{%
+\begingroup 
+\pgfqkeys{/tkzptcircle}{#1}
+ \ifcase\tkz at numptcirc%
+    \tkz@@CalcLengthcm(\tkz at center,\tkz at through){tkz at radius}
+     \or% 1
+    \relax%
+    \or% 2
+    \pgfmathparse{\tkz at angle\space r}
+    \let\tkz at angle\pgfmathresult
+    \tkz@@CalcLengthcm(\tkz at center,\tkz at through){tkz at radius}
+    \or% 3
+    \pgfmathparse{\tkz at angle\space r}
+    \let\tkz at angle\pgfmathresult
+\fi
+\path (\tkz at center) --++(\tkz at angle:\tkz at radius) coordinate(tkzPointResult);
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%              Point on line
+%<--------------------------------------------------------------------------–>
+\def\tkzDefPointOnLine{\pgfutil at ifnextchar[{\tkz at DefPointOnLine}{\tkz at DefPointOnLine[]}}     
+\def\tkz at DefPointOnLine[#1](#2,#3){%
+\begingroup 
+\path (#2) to [#1] coordinate (tkzPointResult)  (#3);
+\endgroup
+} 
+
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-spc.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,269 @@
+% tkz-obj-lua-points-with.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-lua-points-with.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%                          Vectors
+%<--------------------------------------------------------------------------–>
+% Objet :  outils mathématiques pour la géométrie euclideienne avec pgf/tikz
+% utilisable de préférence avec un repère orthonormé et le cm comme unité 
+% utile pour la compatibilité avec pgf 2
+%<--------------------------------------------------------------------------–>
+%             Duplicate Length      à revoir pas de pt pas de global
+% ||v(CN)||= ||v(AB)|| et v(CN) colineaire à v(CD) 
+% A-->#1 B-->#2 C-->#3 D-->#4 N-->#5   ?????
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+%                 Outils pour les vecteurs
+%<--------------------------------------------------------------------------–>
+%  ce sont des outils élémentaires qui à partir de deux points en définissent 
+% un troisième 
+% #1 si c'est une option alors c'est un nombre réel
+% #2 et #3 sont deux points
+% #4 est le nom du point qui résulte de la transformation
+% exemple : \tkzVecKNorm (A,B){C} définit un point C tel que AC = 1 et C est %  %  un point de la droite (AC). #1 peut être négatif
+
+\def\tkzDuplicateSegment(#1,#2)(#3,#4){%
+\begingroup 
+    \tkz@@CalcLength(#1,#2){tkz at firstlen}% 
+    \tkz@@CalcLength(#3,#4){tkz at secondlen}%
+   \edef\tkz at ratio{\tkz at Dec{\tkz at firstlen/\tkz at secondlen}}
+    \tkz at VecKCoLinear[\tkz at ratio](#3,#4,#3)%
+\endgroup 
+}
+\let\tkzDuplicateLength\tkzDuplicateSegment     
+%<--------------------------------------------------------------------------–>
+%                    Coordonnées d'un vecteur  (couple de points)  
+% Deux points A et B donc un vecteur on récupère les coordonnées de v(AB)
+% en cm 
+% tkzGetVecCoord en cm ou en pt ???
+%<--------------------------------------------------------------------------–>
+%result in #3x et #3y #1 et #2 sont les points  
+% passage en cm avec fp ? 
+% 28.45274 =1 cm
+\def\tkzGetVectxy(#1,#2)#3{%
+\begingroup 
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+             {\pgfpointanchor{#2}{center}}%
+\pgfmathparse{\pgf at sys@tonumber{\pgf at x}/1cm}%
+\let\tkzresultx\pgfmathresult
+\pgfmathparse{\pgf at sys@tonumber{\pgf at y}/1cm}%
+\let\tkzresulty\pgfmathresult
+\global\expandafter\edef\csname #3x\endcsname{\tkzresultx}% 
+\global\expandafter\edef\csname #3y\endcsname{\tkzresulty}% 
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% options #1 two points #2,#3 result in #4
+%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+%          tkzDefPointWith  
+%<--------------------------------------------------------------------------–>
+\def\tkz at numv{0}
+\pgfkeys{/@pointwith/.cd,
+      colinear/.code     args     = {at #1}{\def\tkz at numv{0}\def\tkz at frompoint{#1}},
+      orthogonal/.code            = {\def\tkz at numv{1}},
+      linear/.code                = {\def\tkz at numv{2}},
+      orthogonal normed/.code     = {\def\tkz at numv{3}},
+      linear normed/.code         = {\def\tkz at numv{4}},
+      colinear normed/.code  args = {at #1}{\def\tkz at numv{5}\def\tkz at frompoint{#1}},
+      K/.code                     = {\edef\tkz at coeff{\fpeval{#1}}},
+      K                           = 1,
+      normed/.is if               =  tkz at line@normed,
+      normed/.default             =  true,
+      normed                      =  false,
+      orthogonal  
+} 
+\def\tkzDefPointWith{\pgfutil at ifnextchar[{\tkz at DefPointWith}{\tkz at DefPointWith[]}}  
+
+\def\tkz at DefPointWith[#1](#2,#3){%
+\begingroup 
+\pgfkeys{/@pointwith/.cd,K=1}  
+\pgfqkeys{/@pointwith}{#1}
+\ifcase\tkz at numv%
+ % first case 0
+   \tkz at DefVectorColinearat[\tkz at coeff](#2,#3)
+  \or% 1
+   \tkz at VecKOrth[\tkz at coeff](#2,#3)
+  \or% 2
+   \tkz at VecK[\tkz at coeff](#2,#3)
+  \or% 3
+   \tkz at VecKOrthNorm[\tkz at coeff](#2,#3)
+  \or% 4
+   \tkz at VecKNorm[\tkz at coeff](#2,#3)
+  \or% 5
+   \tkz at VecKColinearNorm[\tkz at coeff](#2,#3)
+  \fi    
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%         tkzDefVectorfrom  
+%<--------------------------------------------------------------------------–>
+% tkz at numv 0
+\def\tkz at DefVectorColinearat[#1](#2,#3){%
+\iftkz at line@normed
+   \tkz at VecKColinearNorm[#1](#2,#3)
+\else
+\begingroup
+  \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
+  \pgf at xa=\pgf at x\relax%
+  \pgf at ya=\pgf at y\relax%
+  \pgfinterruptboundingbox
+  \path (\tkz at frompoint)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
+  \endpgfinterruptboundingbox
+\endgroup
+\fi
+} 
+%<--------------------------------------------------------------------------–>
+%     tkzVector K Orth   coeff dans #1
+%     v(AN) perp v(AB)  (v(AB) , v(AN) ) sens direct cercle trigo 
+%     ||v(AN)||=||v(AB)||
+%<--------------------------------------------------------------------------–>
+% tkz at numv 1
+\def\tkzVecKOrth{\pgfutil at ifnextchar[{\tkz at VecKOrth}{\tkz at VecKOrth[1]}}  
+\def\tkz at VecKOrth[#1](#2,#3){%
+\iftkz at line@normed
+   \tkz at VecKOrthNorm[#1](#2,#3)
+\else
+\begingroup
+  \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
+  \pgf at xa=-\pgf at y%
+  \pgf at ya=\pgf at x%
+  \pgfinterruptboundingbox 
+  \path (#2)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
+  \endpgfinterruptboundingbox
+\endgroup
+\fi
+}%
+
+%<--------------------------------------------------------------------------–>
+%         v(AN)=#1 x v(AB)     
+%   #1 le coeff; #2--> A #3--> B   #4-->N  tq    #4-#2 = #1*(#3-#2)                                 
+%<--------------------------------------------------------------------------–>
+% tkz at numv 2
+\def\tkzVecK{\pgfutil at ifnextchar[{\tkz at VecK}{\tkz at VecK[1]}} 
+\def\tkz at VecK[#1](#2,#3){% 
+\iftkz at line@normed
+   \tkz at VecKNorm[#1](#2,#3)
+\else
+\begingroup 
+   \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+                {\pgfpointanchor{#3}{center}}%
+   \pgf at xa=\pgf at x\relax%
+   \pgf at ya=\pgf at y\relax%
+   \pgfmathparse{#1}
+   \let\tkz at coeff\pgfmathresult
+      \pgfinterruptboundingbox 
+   \path (#2)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
+    \endpgfinterruptboundingbox   
+\endgroup
+\fi
+}% 
+%<--------------------------------------------------------------------------–>
+%              tkzVecKOrthNorm   coeff dans #1
+%    v(AN) perp v(AB)  v(AB) v(AN) sens direct cercle trigo 
+% ||v(AN||=1 si #1 est vide ou =1 sinon ||v(AN||=K
+%<--------------------------------------------------------------------------–>
+% tkz at numv 3
+\def\tkzVecKOrthNorm{\pgfutil at ifnextchar[{\tkz at VecKOrthNorm}%
+                                         {\tkz at VecKOrthNorm[1]}}
+\def\tkz at VecKOrthNorm[#1](#2,#3){%    
+\begingroup
+ \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#2}{center}}%
+                                  {\pgfpointanchor{#3}{center}}} 
+  \pgf at xa=-\pgf at y\relax%
+  \pgf at ya=\pgf at x\relax%
+  \pgfmathparse{#1}
+  \let\tkz at tmp\pgfmathresult
+  \edef\tkz at x{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at xa}}
+  \edef\tkz at y{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at ya}}
+  \pgfinterruptboundingbox 
+  \path (#2)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
+  \endpgfinterruptboundingbox   
+\endgroup
+}%      
+%<--------------------------------------------------------------------------–>
+%              VectorNormalised ou K*VectorNormalised
+% A-->#2 B-->#3 N-->#4      v(AB)  devient v(AN) tq ||v(AN)||=1 si #1=1  
+%  sinon ||v(AN)||=#1 
+%<--------------------------------------------------------------------------–>
+% tkz at numv 4
+\def\tkzVecKNorm{\pgfutil at ifnextchar[{\tkz at VecKNorm}{\tkz at VecKNorm[1]}} 
+\def\tkz at VecKNorm[#1](#2,#3){%
+\begingroup
+    \tkzpointnormalised{%
+    \pgfpointdiff{\pgfpointanchor{#2}{center}}
+                 {\pgfpointanchor{#3}{center}}}
+    \pgf at xa=\pgf at x\relax%
+    \pgf at ya=\pgf at y\relax% 
+   \pgfmathparse{#1}
+   \let\tkz at tmp\pgfmathresult
+  \edef\tkz at x{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at xa}}
+  \edef\tkz at y{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at ya}}
+    \pgfinterruptboundingbox 
+    \path (#2)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
+    \endpgfinterruptboundingbox   
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+%            \tkz at VecKColinearNorm
+%<--------------------------------------------------------------------------–>
+%% tkz at numv 5
+\def\tkz at VecKColinearNorm[#1](#2,#3){%
+\begingroup   
+    \tkzpointnormalised{%
+    \pgfpointdiff{\pgfpointanchor{#2}{center}}
+                 {\pgfpointanchor{#3}{center}}}
+    \pgf at xa=\pgf at x\relax%
+    \pgf at ya=\pgf at y\relax% 
+  \edef\tkz at x{\tkz at Dec{28.45274*(\tkz at coeff)*\strip at pt\pgf at xa}}
+  \edef\tkz at y{\tkz at Dec{28.45274*(\tkz at coeff)*\strip at pt\pgf at ya}}
+    \pgfinterruptboundingbox
+    \path (\tkz at frompoint)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
+    \endpgfinterruptboundingbox
+\endgroup
+}%
+%<--------------------------------------------------------------------------–>
+%  VecKCoLinear  CN = K x AB  #1 pt #2 pt #3 pt #4 nb #5 pt result   
+% il faut modifier cette macro : on supprime #3 pour la colinéarité
+% Il suffit d'utiliser Replicate ou Duplicate     coeff dans #1
+% v(CD)=#1 x v(AB) #1 le coeff; #2-->A #3-->B #4-->C 
+%<--------------------------------------------------------------------------–>
+\def\tkz at VecKCoLinear[#1](#2,#3,#4){% 
+\begingroup
+   \pgfpointdiff{\pgfpointanchor{#2}{center}}%
+                {\pgfpointanchor{#3}{center}}%
+   \pgf at xa=\pgf at x\relax%
+   \pgf at ya=\pgf at y\relax% 
+   \edef\tkz at coeff{\fpeval{#1}}
+   \pgfinterruptboundingbox 
+   \path (#4)--+(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)  coordinate (tkzPointResult);
+   \endpgfinterruptboundingbox                     
+\endgroup
+}%  
+\def\tkz at VecCoLinear(#1,#2,#3){% 
+\begingroup
+   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                {\pgfpointanchor{#2}{center}}%
+   \pgf at xa=\pgf at x\relax%
+   \pgf at ya=\pgf at y\relax% 
+   \pgfinterruptboundingbox 
+   \path (#3)--+(\pgf at xa,\pgf at ya)  coordinate (tkzPointResult);
+   \endpgfinterruptboundingbox                     
+\endgroup
+}% 
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points-with.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,166 @@
+ % tkz-obj-lua-points.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”. 
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-obj-lua-points.tex} 
+\makeatletter
+%<--------------------------------------------------------------------------->
+%                             init def point 
+%<--------------------------------------------------------------------------->
+%                            tkzDefPoint
+%<--------------------------------------------------------------------------->
+%                     macros complémentaires  pour def point
+%<--------------------------------------------------------------------------->
+\def\tkz at parsecoordinate#1{%
+\tkz at getseparator#1,\@nil
+\iftkz at polar 
+   \tkz at getfrompolar#1\@nil
+\else
+   \tkz at getfromcart#1\@nil
+\fi
+}
+\def\tkz at getseparator#1,#2\@nil{%
+\ifx\tkzempty#2\tkzempty%
+   \tkz at polartrue
+\else
+   \tkz at polarfalse
+\fi
+}      
+\def\tkz at getfrompolar#1:#2\@nil{%
+\edef\tkz at a{\fpeval{#1}}
+\edef\tkz at r{\fpeval{#2}}
+\xdef\tkz at polarrad{\tkz at r}
+\xdef\tkz at polarangle{\tkz at a}
+} 
+\def\tkz at getfromcart#1,#2\@nil{%
+\edef\tkz at x{\fpeval{#1}}
+\edef\tkz at y{\fpeval{#2}}
+\xdef\tkz at absc{\tkz at x}
+\xdef\tkz at ord{\tkz at y}
+}
+%<--------------------------------------------------------------------------->
+%           options pour point definition
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzPt/.cd,  
+         polar/.is if       = tkz at pt@polar,
+         polar/.default     = true,
+         polar              = false  
+}
+%<--------------------------------------------------------------------------->
+%        tkz at ptStar  
+%<--------------------------------------------------------------------------->
+\def\tkz at ptStar[#1](#2,#3)#{%
+\pgfkeys{/tkzPt/.cd, polar     = false} 
+\pgfqkeys{/tkzPt}{#1}  
+\iftkz at pt@polar%
+  \edef\tkz at x{\fpeval{#3*cosd(#2)}}
+  \edef\tkz at y{\fpeval{#3*sind(#2)}}
+\else
+  \edef\tkz at x{\fpeval{#2}}
+  \edef\tkz at y{\fpeval{#3}}
+\fi
+\edef\tkzpt at xa{\tkz at Dec{(\tkz at x-(\tkz at init@xorigine))/\tkz at init@xstep}}
+\edef\tkzpt at ya{\tkz at Dec{(\tkz at y-(\tkz at init@yorigine))/\tkz at init@ystep}}
+\tkz at node
+}
+%<--------------------------------------------------------------------------->
+% la macro defpoint les coordonnées cartésiennes ou polaires sont  traitées
+% afin de pouvoir être adaptées avec les unités choisies
+%<--------------------------------------------------------------------------->
+\def\tkzDefPoint{\pgfutil at ifnextchar[{\tkz at DefPoint}{\tkz at DefPoint[]}}
+
+\def\tkz at DefPoint[#1](#2)#{% 
+\tkz at parsecoordinate{#2}
+\iftkz at polar
+   \tkz at ptStar[polar](\tkz at polarangle,\tkz at polarrad){tkz at coord@temp}
+\else  
+    \tkz at ptStar[](#2){tkz at coord@temp}
+\fi
+\tkz at DefPointEnd[#1]
+}% 
+\def\tkz at DefPointEnd[#1]#2{\coordinate[#1] (#2) at (tkz at coord@temp);}
+%<--------------------------------------------------------------------------->
+%                            tkzDefPoints
+%<--------------------------------------------------------------------------->
+\def\tkzDefPoints{\pgfutil at ifnextchar[{\tkz at DefPoints}{\tkz at DefPoints[]}}
+\def\tkz at DefPoints[#1]#2{%
+  \begingroup
+  \def\tkz at parenthesis@for at err{(}%
+  \def\tkz at maybe@parenthesis{#2}%
+  \ifx\tkz at maybe@parenthesis\tkz at parenthesis@for at err
+    \PackageError{tkz-base}{Syntax error  use {} instead of ()}{You need to use {} instead of ()}%
+    \expandafter\@firstoftwo
+  \else
+    \expandafter\@secondoftwo
+  \fi
+  {\tkz at absorb@bad at arg}% 
+  {\foreach \ptx/\pty/\name in {#2}{\tkzDefPoint[#1](\ptx,\pty){\name}}%
+   \endgroup}%
+}
+\def\tkz at absorb@bad at arg#1){\endgroup}
+%<--------------------------------------------------------------------------->
+\def\tkz at node#1{ \pgfinterruptboundingbox
+\path[coordinate](\tkzpt at xa,\tkzpt at ya) coordinate(#1);
+ \endpgfinterruptboundingbox}  
+%<--------------------------------------------------------------------------->
+\def\tkzRenamePoint(#1)#2{\coordinate (#2) at (#1);}
+\def\tkz at RenamePointEnd[#1]#2{\coordinate[#1] (#2) at (\tkz at ax,\tkz at ay);}
+\def\tkzGetPoint#1{\coordinate  (#1) at (tkzPointResult);} 
+\def\tkzGetPoints#1#2{\coordinate  (#1) at (tkzFirstPointResult);
+                      \coordinate  (#2) at (tkzSecondPointResult);}
+\def\tkzGetFirstPoint#1{\coordinate  (#1) at (tkzFirstPointResult);}
+\def\tkzGetSecondPoint#1{\coordinate  (#1) at (tkzSecondPointResult);}
+\def\tkzGetThirdPoint#1{\coordinate  (#1) at (tkzThirdPointResult);}
+\def\tkzDefShiftPointCoord[#1](#2)#3{%
+                \begin{scope}[shift={(#1)}]
+                     \coordinate  (#3) at (#2);
+                \end{scope}
+                           }%
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------->
+%            tkzDefShiftPoint
+%<--------------------------------------------------------------------------->
+\def\tkzDefShiftPoint[#1](#2)#3{%
+   \tkz@@extractxy{#1}
+   \tkz at ax\pgf at x %
+   \tkz at ay\pgf at y %
+\begin{scope}[shift={(\tkz at ax,\tkz at ay)}]
+   \coordinate  (#3) at (#2);
+\end{scope}
+}
+%<--------------------------------------------------------------------------->
+%                    Coordonnées d'un point 
+%    result in #2x et #2y    #1 est le point et on récupère ses coordonnées
+% usage soit A un point \tkzGetPointCoord(A){V} alors \Vx = xA et \Vy = yA
+% en cm 
+% tkzGetPointCoord avec [#1] cm ou bien pt ?? todo
+%<--------------------------------------------------------------------------->
+\def\tkzGetPointCoord(#1)#2{%
+\begingroup
+   \pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
+   \pgfmathparse{\pgf at sys@tonumber{\pgf at x}/28.45274}
+   \global\let\tkzresultx\pgfmathresult
+   \global\expandafter\edef\csname #2x\endcsname{\tkzresultx}% 
+   \pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
+   \pgfmathparse{\pgf at sys@tonumber{\pgf at y}/28.45274}
+   \global\let\tkzresulty\pgfmathresult
+   \global\expandafter\edef\csname #2y\endcsname{\tkzresulty}
+\endgroup
+}  
+\def\tkz@@extractxy#1{%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}} 
+}
+\let\tkzGetPointxy\tkzGetPointCoord
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lua-points.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-points-by.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-points-by.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                        Transformations Géométriques

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-points-rnd.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-points-rnd.tex} 
 %<--------------------------------------------------------------------------–>
 \makeatletter
 %<-------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-el-points.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-el-points.tex} 
 \makeatletter  
 %add ExCenter
 %<--------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-points-with.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-points-with.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                          Vectors

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-obj-eu-points.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-obj-eu-points.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------->
 %                             init def point 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-eu-polygons.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-obj-eu-polygons.tex} 
 % bug in regular polygon side 2020/03/09
 \makeatletter  
 %<--------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-obj-eu-triangles.tex} 
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-obj-eu-triangles.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 %                       Triangle Equilateral

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles-by.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,157 +0,0 @@
-% tkz-obj-eu-circles.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{6.00}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 6.00 tkz-obj-eu-circles.tex} 
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%            tkzCircle center and one point 
-%<--------------------------------------------------------------------------–>
-% attention radius circle is defined by center and a point on the circle
-% R defined by center and the value of the radius
-% no need to define a circle with R tikz uses this method.
-% through instead of radius
-\def\tkz at numcby{0}
-\pgfkeys{/tkzDefCircleBy/.cd,
-  translation/.code args = {from #1 to #2} {             \def\tkz at numcby{0}
-                                                         \def\tkzfrom{#1}
-                                                         \def\tkzto{#2}},
-  homothety/.code args = {center #1 ratio #2}{           \def\tkz at numcby{1}
-                                                         \def\tkzcenter{#1}
-                                                         \def\tkzratio{#2}},
-  reflection/.code args = {over #1--#2}{                 \def\tkz at numcby{2}
-                                                         \def\tkzdeb{#1}
-                                                         \def\tkzfin{#2}},
-  symmetry/.code args = {center #1}{                     \def\tkz at numcby{3}
-                                                         \def\tkzcenter{#1}},
-  rotation/.code args = {center #1 angle #2}{            \def\tkz at numcby{4}
-                                                         \def\tkzcenter{#1}
-                                                         \def\tkzangle{#2}},
-  inversion/.code args={center #1 through #2}{           \def\tkz at numcby{5}
-                                                         \def\tkzcenter{#1}
-                                                         \def\tkzpoint{#2}},
-  inversion negative/.code args = {center #1 through #2}{\def\tkz at numcby{6}
-                                                         \def\tkzcenter{#1}
-                                                         \def\tkzpoint{#2}}
-      } 
-\def\tkzDefCircleBy{\pgfutil at ifnextchar[{\tkz at DefCircleBy}{\tkz at DefCircleBy[]}}
-\def\tkz at DefCircleBy[#1](#2){% 
-\begingroup  
-\pgfqkeys{/tkzDefCircleBy}{#1}  
-\ifcase\tkz at numcby%
-  \tkzDefCircleTranslation(#2)%
-  \or% 1 
-  \tkzDefCircleHomothety(#2)  
-  \or% 2
-  \tkzDefCircleReflection(#2) 
-  \or% 3
-  \tkzDefCircleSymmetry(#2) 
-  \or% 4
-  \tkzDefCircleRotation(#2) 
-  \or% 5
-  \tkzDefInversionCircle(#2,\tkzcenter,\tkzpoint) 
-  \or% 6
-  \tkzDefInversionNegativeCircle(#2,\tkzcenter,\tkzpoint) 
-\fi    
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleTranslation(#1,#2){%
-\begingroup 
-   \tkzUTranslation(\tkzfrom,\tkzto)(#1)
-   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-   \tkzUTranslation(\tkzfrom,\tkzto)(#2)
-   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}  
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleHomothety(#1,#2){%
-\begingroup 
-   \tkzUHomo(\tkzcenter,\tkzratio)(#1)
-   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-   \tkzUHomo(\tkzcenter,\tkzratio)(#2)
-   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleReflection(#1,#2){%
-\begingroup 
-   \tkzUSymOrth(\tkzdeb,\tkzfin)(#1) 
-   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-   \tkzUSymOrth(\tkzdeb,\tkzfin)(#2) 
-   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleSymmetry(#1,#2){%
-\begingroup 
-   \tkzUCSym(\tkzcenter)(#1)
-   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-   \tkzUCSym(\tkzcenter)(#2)
-   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleRotation(#1,#2){%
-\begingroup 
-   \tkzURotateAngle(\tkzcenter,\tkzangle)(#1)
-    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-    \tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
-    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% #3,#4 cercle d'inversion centre #3. through #4
-% Si le cercle passe par le pôle l'image est une droite
-\def\tkzDefInversionCircle(#1,#2,#3,#4){%  
-\begingroup
-    \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
-    \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
-    \edef\tkzMathResult{\tkz at Dec{\tkz at Round{\tkz at Abs{\tkz at lnb - \tkz at lna}}{6}}}
-    \ifdim\tkzMathResult pt < 0.00001 pt\relax%
-    \tkzURotateAngle(#1,-90)(#2)
-    \pgfnodealias{tkz at a}{tkzPointResult}
-    \tkzUInversePoint(#3,#4)(tkz at a)
-    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-    \tkzUInversePoint(#3,#4)(#2)
-    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-     \else
-    \tkzURotateAngle(#1,90)(#2)
-    \pgfnodealias{tkz at a}{tkzPointResult}
-    \tkzURotateAngle(#1,-90)(#2)
-    \pgfnodealias{tkz at b}{tkzPointResult}
-    \tkzUInversePoint(#3,#4)(tkz at a)
-    \pgfnodealias{tkz at p1}{tkzPointResult}
-    \tkzUInversePoint(#3,#4)(tkz at b)
-    \pgfnodealias{tkz at p2}{tkzPointResult}
-    \tkzUInversePoint(#3,#4)(#2)    
-    \pgfnodealias{tkz at p3}{tkzPointResult}
-    \tkzDefCircle[circum](tkz at p3,tkz at p1,tkz at p2)
-    \fi
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-\def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){%
-\begingroup
-   \tkzDefInversionCircle(#1,#2,#3,#4)
-   \tkzUCSym(\tkzcenter)(tkzFirstPointResult)
-   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-   \tkzUCSym(\tkzcenter)(tkzSecondPointResult)
-   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%              End Def Circle
-%<--------------------------------------------------------------------------–>  
-\makeatother 
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-circles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,223 +0,0 @@
-% tkz-obj-lua-circles.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-lua-circles.tex} 
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%            tkzCircle center and one point 
-%<--------------------------------------------------------------------------–>
-% attention radius circle is defined by center and a point on the circle
-% R defined by center and the value of the radius
-% no need to define a circle with R tikz uses this method.
-% through instead of radius
-\def\tkz at numc{0}
-\pgfkeys{/tkzcircle/.cd,
-      R/.code                                   = \def\tkz at numc{0},
-      diameter/.code                            = \def\tkz at numc{1},
-      circum/.code                              = \def\tkz at numc{2},
-      in/.code                                  = \def\tkz at numc{3},
-      ex/.code                                  = \def\tkz at numc{4},
-      euler/.code                               = \def\tkz at numc{5},
-      nine/.code                                = \def\tkz at numc{5},
-      apollonius/.code                          = \def\tkz at numc{6},
-      spieker/.code                             = \def\tkz at numc{7},
-      orthogonal from/.code args                = {#1}{\gdef\tkz at numc{8}
-                                                   \def\tkz at ptfrom{#1}}, 
-      orthogonal through/.code args             = {#1 and #2}{\gdef\tkz at numc{9}
-                                                   \def\tkz at ptone{#1}
-                                                   \def\tkz at pttwo{#2}},
-      K/.code                                   = \def\tkz at koeff{#1},
-      K                                         =  1,
-      circum
-      } 
-\def\tkzDefCircle{\pgfutil at ifnextchar[{\tkz at DefCircle}{\tkz at DefCircle[]}}
-\def\tkz at DefCircle[#1](#2){% 
-\begingroup  
-\pgfqkeys{/tkzcircle}{#1}  
-\ifcase\tkz at numc%
-  \tkzDefCircleR(#2)
-  \or% 1 
-  \tkzDefCircleD(#2)  
-  \or% 2
-  \tkzDefCircumCircle(#2) 
-  \or% 3
-  \tkzDefInCircle(#2) 
-  \or% 4
-  \tkzDefExCircle(#2) 
-  \or% 5
-  \tkzDefEulerCircle(#2)
-  \or% 6
-  \tkzDefApolloniusCircle(#2) 
-  \or% 7
-  \tkzDefSpiekerCircle(#2)
-   \or% 8
-  \tkzDefOrthogonalCircle(#2,\tkz at ptfrom)
-   \or% 9
-  \tkzDefOrthoThroughCircle(#2,\tkz at ptone,\tkz at pttwo)
-     \fi    
-\endgroup
-}
-%for compatibility
-%<--------------------------------------------------------------------------–>
-%                     R
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleR(#1,#2){% 
-\begingroup 
-   \edef\tkzLengthResult{\fpeval{round(#2,5)}}
-   \global\let\tkzLengthResult\tkzLengthResult
-   \path (#1)--++(\tkzLengthResult,0) coordinate (tkzSecondPointResult);
-   \tkzRenamePoint(tkzSecondPointResult){tkzPointResult}
-\endgroup
-} 
-
-%<--------------------------------------------------------------------------–>
-%              Diameter Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleD(#1,#2){% 
-\begingroup
-  \tkzDefMidPoint(#1,#2)
-  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-  \pgfnodealias{tkzSecondPointResult}{#2}
-  \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%              Circum Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircumCircle(#1,#2,#3){%
-\begingroup
-  \tkzCircumCenter(#1,#2,#3)
-  \tkzRenamePoint(tkzPointResult){tkzFirstPointResult}
-  \tkzRenamePoint(#1){tkzSecondPointResult}
-  \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm]
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%              In(scribe) Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefInCircle(#1,#2,#3){%
-\begingroup
-  \tkzInCenter(#1,#2,#3) 
-  \pgfnodealias{tkz at incenter}{tkzPointResult}
-  \tkzUProjection(#1,#3)(tkz at incenter) 
-  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-  \tkz@@CalcLengthcm(tkzPointResult,tkz at incenter){tkzLengthResult}
-  \pgfnodealias{tkzPointResult}{tkz at incenter}
-  \pgfnodealias{tkzFirstPointResult}{tkz at incenter}
-\endgroup
-}  
-%<--------------------------------------------------------------------------–>
-%              Ex(scribe) Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefExCircle(#1,#2,#3){%
-\begingroup
-  \tkzExCenter(#1,#2,#3) 
-  \pgfnodealias{tkz at excenter}{tkzPointResult}
-  \tkzUProjection(#1,#3)(tkz at excenter)
-  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-  \tkz@@CalcLengthcm(tkzPointResult,tkz at excenter){tkzLengthResult}% for tkzGetLength
-  \pgfnodealias{tkzPointResult}{tkz at excenter}
-  \pgfnodealias{tkzFirstPointResult}{tkz at excenter}  
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%              Radius Ex Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefExRadius(#1,#2,#3){%
-\begingroup
-   \tkzExCenter(#1,#2,#3)
-   \tkzUProjection(#1,#3)(tkzPointResult)
-\endgroup
-}    
-%<--------------------------------------------------------------------------–>
-% The nine-point circle, also called Euler's circle or the Feuerbach circle  
-% best way Ma,Mb,Mc circum center  2020
-%<--------------------------------------------------------------------------–>
-\def\tkzDefEulerCircle(#1,#2,#3){%
-\begingroup
- \tkzDefMidPoint(#1,#2) \pgfnodealias{tkz at e1}{tkzPointResult}
- \tkzDefMidPoint(#2,#3) \pgfnodealias{tkz at e2}{tkzPointResult}
- \tkzDefMidPoint(#1,#3) \pgfnodealias{tkz at e3}{tkzPointResult}
- \tkzCircumCenter(tkz at e1,tkz at e2,tkz at e3) 
-  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}  
- \tkzRenamePoint(tkz at e1){tkzSecondPointResult}
- \tkz@@CalcLengthcm(tkzPointResult,tkz at e1){tkzLengthResult}
-\endgroup
-} 
-\let\tkzDefNinePointsCircle\tkzEulerCircle%
-\let\tkzFeuerBachCircle\tkzEulerCircle%  
-
-\def\tkzDefEulerRadius(#1,#2,#3){%
-\begingroup
-   \tkzEulerCenter(#1,#2,#3)
-   \pgfnodealias{eur at pta}{tkzPointResult}   
-   \tkzDefMidPoint(#1,#2)  
-   \tkz@@CalcLengthcm(eur at pta,tkzPointResult){tkzLengthResult}
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%                     Apollonius circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefApolloniusCircle(#1,#2){%
-\begingroup
-  \tkzDefBarycentricPointTwo(#1,1,#2,\tkz at koeff)   
-  \pgfnodealias{apo at pta}{tkzPointResult} 
-  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}  
-  \tkzDefBarycentricPointTwo(#1,1,#2,-\tkz at koeff)  
-  \pgfnodealias{apo at ptb}{tkzPointResult} 
-  \tkzDefMidPoint(apo at pta,apo at ptb)  
-  \pgfnodealias{tkzFirstPointResult}{tkzPointResult} 
-  \tkz@@CalcLengthcm(tkzFirstPointResult,apo at pta){tkzLengthResult}  
-  \pgfnodealias{tkzThirdPointResult}{apo at ptb} 
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefOrthogonalCircle(#1,#2,#3){%   
-\begingroup
-   \tkzTgtFromP(#1,#2)(#3)
-   \tkz@@CalcLengthcm(#1,tkzFirstPointResult){tkzLengthResult}
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-\def\tkzDefOrthoThroughCircle(#1,#2,#3,#4){%  
-\begingroup
-  \tkz@@CalcLengthcm(#1,#3){tkz at lnb}%
-  \edef\tkz at lnc{\fpeval{1/\tkz at lnb}}
-  \tkzVecKNorm[\tkz at lnc](#1,#3) 
-  \pgfnodealias{tkz at PointResult}{tkzPointResult}
-  \tkzCircumCenter(tkz at PointResult,#3,#4)
-  \tkz@@CalcLengthcm(tkzPointResult,#3){tkzLengthResult}
-  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-  \pgfnodealias{tkzSecondPointResult}{#3}
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%              Spieker Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefSpiekerCircle(#1,#2,#3){%
-\begingroup
-  \tkzSpiekerCenter(#1,#2,#3)
-  \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-  \tkzUProjection(tkz at m1,tkz at m2)(tkzPointResult)
-  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-  \tkz@@CalcLength(tkzSecondPointResult,tkzFirstPointResult){tkzLengthResult}
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-%              End Def Circle
-%<--------------------------------------------------------------------------–>  
-\makeatother 
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-by.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-by.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,522 +0,0 @@
-% tkz-tools-lua-points-by.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-lua-points-by.tex}  
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%                        Transformations Géométriques
-%<--------------------------------------------------------------------------–>
-\def\tkz at numtrsf{0}
-\pgfkeys{/tkzDefPointBy/.cd,
- translation/.code args={from #1 to #2}{               \def\tkzfrom{#1}%
-                                                       \def\tkzto{#2}%
-                                                       \def\tkz at numtrsf{0}},
- homothety/.code args={center #1 ratio #2}{            \def\tkzcenter{#1}%
-                                                       \def\tkzratio{#2}%
-                                                       \def\tkz at numtrsf{1}},
- reflection/.code args={over #1--#2}{                  \def\tkzdeb{#1}%
-                                                       \def\tkzfin{#2}%
-                                                       \def\tkz at numtrsf{2}},
- symmetry/.code args={center #1}{                      \def\tkzcenter{#1}%
-                                                       \def\tkz at numtrsf{3}},
- projection/.code args={onto #1--#2}{                  \def\tkzdeb{#1}%
-                                                       \def\tkzfin{#2}%  
-                                                       \def\tkz at numtrsf{4}}, 
- rotation/.code args={center #1 angle #2}{             \def\tkzcenter{#1}%
-                                                       \def\tkzangle{#2}%
-                                                       \def\tkz at numtrsf{5}},
- rotation in rad/.code args={center #1 angle #2}{      \def\tkzcenter{#1}%
-                                                       \def\tkzangle{#2}%
-                                                       \def\tkz at numtrsf{6}},
- inversion/.code args={center #1 through #2}{          \def\tkzcenter{#1}%
-                                                       \def\tkzpoint{#2}%
-                                                       \def\tkz at numtrsf{7}},
- inversion negative/.code args={center #1 through #2}{ \def\tkzcenter{#1}%
-                                                       \def\tkzpoint{#2}%
-                                                       \def\tkz at numtrsf{8}},
- rotation with nodes/.code  args={center #1 from #2 to #3}{  \def\tkzcenter{#1}%
-                                                            \def\tkzfrom{#2}%
-                                                            \def\tkzto{#3}%
-                                                            \def\tkz at numtrsf{9}}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointBy{\pgfutil at ifnextchar[{\tkz at DefPointBy}{\tkz at DefPointBy[]}}
-\def\tkz at DefPointBy[#1](#2){% 
-\begingroup 
-\pgfqkeys{/tkzDefPointBy}{#1}    
- \ifcase\tkz at numtrsf%
-%  % first case 0   
-   \tkzUTranslation(\tkzfrom,\tkzto)(#2) 
-\or% 1
-   \tkzUHomo(\tkzcenter,\tkzratio)(#2)
-\or% 2
-   \tkzUSymOrth(\tkzdeb,\tkzfin)(#2) 
-\or% 3
-   \tkzUCSym(\tkzcenter)(#2)
-\or% 4
-   \tkzUProjection(\tkzdeb,\tkzfin)(#2)  
-\or% 5  
-   \tkzURotateAngle(\tkzcenter,\tkzangle)(#2)
-\or% 6 
-   \tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
-\or% 7
-   \tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)     
-\or% 8
-   \tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)   
-\or% 9
-   \tkzURotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2)
-\fi   
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointsBy{\pgfutil at ifnextchar[{\tkz at DefPointsBy}{\tkz at DefPointsBy[]}}
-\def\tkz at DefPointsBy[#1](#2)#3{% 
-\begingroup
-\pgfqkeys{/tkzDefPointBy}{#1}  
-\ifcase\tkz at numtrsf%
- % first case 0
-   \tkzTranslation(\tkzfrom,\tkzto)(#2){#3}  
- \or% 1
-   \tkzHomo(\tkzcenter,\tkzratio)(#2){#3}
- \or% 2
-   \tkzSymOrth(\tkzdeb,\tkzfin)(#2){#3} 
- \or% 3
-   \tkzCSym(\tkzcenter)(#2){#3}
- \or% 4
-   \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
- \or% 5
-   \tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
- \or% 6
-   \tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
- \or% 7
-   \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}    
- \or% 8
-   \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
-   \or% 9
- \tkzRotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2){#3}
-\fi    
-\endgroup
-} 
-
-%<--------------------------------------------------------------------------–>
-
-\def\ExtractPoint#1,#2\@nil{% 
-\xdef\tkz at LastList{#2}
-\xdef\tkz at FirstPoint{#1}  
-} 
-\def\FirstPointInList#1{% 
-\edef\tkz at templist{#1,}
-\expandafter\ExtractPoint\tkz at templist\@nil
-}
-%<--------------------------------------------------------------------------–>
-%  Translation par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzTranslation(#1,#2)(#3)#4{%
-\begingroup 
-\gdef\tkz at LastList{#4}
-\foreach\PT in {#3}{%
-   \FirstPointInList\tkz at LastList
-    \ifx\tkz at FirstPoint\tkzutil at empty  
-      \def\tkz at pointtsf{\PT '}
-    \else
-      \def\tkz at pointtsf{\tkz at FirstPoint}
-    \fi 
-   \tkz at VecCoLinear(#1,#2,\PT) 
-    \pgfnodealias{\tkz at pointtsf}{tkzPointResult}       
-   }  
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUTranslation(#1,#2)(#3){%
-\begingroup 
-  \tkz at VecCoLinear(#1,#2,#3)% 
-\endgroup
-}  
-
-%<--------------------------------------------------------------------------–>
-%  Symétrie par rapport à un point Homo with (-1) 
-% #2 le centre #3 l'antécédent 
-%<--------------------------------------------------------------------------–>
-\def\tkzCSym(#1)(#2)#3{%
-\begingroup
-\gdef\tkz at LastList{#3}
- \foreach\PointCS in {#2}{%
-   \FirstPointInList\tkz at LastList
-   \ifx\tkz at FirstPoint\tkzutil at empty  
-      \xdef\tkz at pointtsf{\PointCS '}
-   \else
-      \xdef\tkz at pointtsf{\tkz at FirstPoint}
-   \fi 
-     \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                  {\pgfpointanchor{\PointCS}{center}}%
-     \tkz at ax=\pgf at x%
-     \tkz at ay=\pgf at y%
- \pgfinterruptboundingbox
-     \path(#1)--++(-\tkz at ax,-\tkz at ay)coordinate (\tkz at pointtsf); 
-  \endpgfinterruptboundingbox
-}       
-\endgroup 
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUCSym(#1)(#2){%
-\begingroup
-    \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                 {\pgfpointanchor{#2}{center}}%
-    \tkz at ax=\pgf at x%
-    \tkz at ay=\pgf at y%
-   \path(#1)--++(-\tkz at ax,-\tkz at ay)coordinate (tkzPointResult); 
-\endgroup 
-} 
-%<--------------------------------------------------------------------------–>
-%  Symétrie orthogonale par rapport à une droite
-%<--------------------------------------------------------------------------–> 
-\def\tkzSymOrth(#1,#2)(#3)#4{%
-\begingroup 
-\gdef\tkz at LastList{#4}
-    \foreach\PointSO in {#3}{%
-      \FirstPointInList\tkz at LastList
-      \ifx\tkz at FirstPoint\tkzutil at empty  
-         \def\tkz at pointtsf{\PointSO '}
-      \else
-         \def\tkz at pointtsf{\tkz at FirstPoint}
-      \fi 
-  \tkzUSymOrth(#1,#2)(\PointSO)    
-  \pgfnodealias{\tkz at pointtsf}{tkzPointResult} 
-  }    
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUSymOrth(#1,#2)(#3){%
-\begingroup
-   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                {\pgfpointanchor{#2}{center}}%
-   \tkz at ax =\pgf at y%
-   \tkz at ay =\pgf at x%  
-   \pgfinterruptboundingbox
-   \path[coordinate] (#3)--++(-\tkz at ax,\tkz at ay) coordinate  (tkz at point);
-     \endpgfinterruptboundingbox
-   \tkzInterLL(#1,#2)(#3,tkz at point)
-   \pgfnodealias{tkzPointofSym}{tkzPointResult}
-   \tkz at VecK[2](#3,tkzPointofSym)
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-%  Projection orthogonale sur une droite
-%<--------------------------------------------------------------------------–>
-\def\tkzProjection(#1,#2)(#3)#4{%
-\begingroup
-\gdef\tkz at LastList{#4}
-    \foreach\PointPJ in {#3}{%
-      \FirstPointInList\tkz at LastList
-      \ifx\tkz at FirstPoint\tkzutil at empty
-         \def\tkz at pointtsf{\PointPJ '}
-      \else
-         \def\tkz at pointtsf{\tkz at FirstPoint}
-      \fi
-  \tkzUProjection(#1,#2)(\PointPJ)
-  \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
-  }
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUProjection(#1,#2)(#3){%
-\begingroup 
-  \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-               {\pgfpointanchor{#2}{center}}%
-  \tkz at ax =\pgf at y%
-  \tkz at ay =\pgf at x%
-  \pgfinterruptboundingbox
-    \path[coordinate](#3)--++(-\tkz at ax,\tkz at ay) coordinate (tkz at point);
-    \tkzInterLL(#1,#2)(#3,tkz at point)% définit tkzPointResult 
-  \endpgfinterruptboundingbox
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz at Projection(#1,#2)(#3)#4{%
-\begingroup 
-  \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-               {\pgfpointanchor{#2}{center}}%
-  \tkz at ax =\pgf at y%
-  \tkz at ay =\pgf at x%
-   \pgfinterruptboundingbox
-  \path[coordinate](#3)--++(-\tkz at ax,\tkz at ay) coordinate (tkz at point);
-   \endpgfinterruptboundingbox
-  \tkz at InterLL(#1,#2)(#3,tkz at point){#4}% définit tkzPointResult 
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%  Homothétie par rapport à un point
-%<--------------------------------------------------------------------------–>
-\def\tkzHomo(#1,#2)(#3)#4{%
-\begingroup 
-\gdef\tkz at LastList{#4}
-\foreach\PointHO in {#3}{%
-  \FirstPointInList\tkz at LastList
-  \ifx\tkz at FirstPoint\tkzutil at empty  
-     \xdef\tkz at pointtsf{\PointHO '}
-  \else
-     \xdef\tkz at pointtsf{\tkz at FirstPoint}
-  \fi 
-   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                {\pgfpointanchor{\PointHO}{center}}%
-  \pgf at xa=\pgf at x%
-  \pgf at ya=\pgf at y% 
-  \pgfmathparse{#2}
-  \edef\tkz at coeff{\pgfmathresult}%
-  \pgfinterruptboundingbox
-  \path[coordinate](#1)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)%
-        coordinate(\tkz at pointtsf);
- \endpgfinterruptboundingbox
-  }  
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzUHomo(#1,#2)(#3){%
-\begingroup 
- \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-              {\pgfpointanchor{#3}{center}}%
- \pgf at xa=\pgf at x%
- \pgf at ya=\pgf at y% 
- \pgfmathparse{#2}
- \edef\tkz at coeff{\pgfmathresult}%
- \pgfinterruptboundingbox
- \path[coordinate](#1)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)%
-      coordinate(tkzPointResult);
-        \endpgfinterruptboundingbox
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                 rotation  en degré
-%<--------------------------------------------------------------------------–>
-\def\tkzRotateAngle(#1,#2)(#3)#4{%
-\begingroup
-\gdef\tkz at LastList{#4}
-\foreach\PointRot in {#3}{%
-  \FirstPointInList\tkz at LastList
-  \ifx\tkz at FirstPoint\tkzutil at empty  
-     \def\tkz at pointtsf{\PointRot '}
-  \else
-     \def\tkz at pointtsf{\tkz at FirstPoint}
-  \fi 
-    \tkz@@extractxy{\PointRot}
-    \tkz at ax\pgf at x%
-    \tkz at ay\pgf at y%
-    \tkz@@extractxy{#1}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                             {#2}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \pgfinterruptboundingbox
-    \path[coordinate](\tkz at bx,\tkz at by)coordinate(\tkz at pointtsf);% 
-    \endpgfinterruptboundingbox
-}   
-  \endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateAngle(#1,#2)(#3){%
-\begingroup 
-  \pgf at process{\pgfpointanchor{#3}{center}}%
-    \tkz at ax\pgf at x%
-    \tkz at ay\pgf at y%
-    \pgf at process{\pgfpointanchor{#1}{center}}%
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                             {#2}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \pgfinterruptboundingbox
-      \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);% 
-    \endpgfinterruptboundingbox     
-\endgroup
-}   
-%<--------------------------------------------------------------------------–>
-% %                 rotation  en radian
-% %<--------------------------------------------------------------------------–>
-\def\tkzRotateInRad(#1,#2)(#3)#4{%
-\begingroup
-\gdef\tkz at LastList{#4}
-    \foreach\PointRot in {#3}{%
-      \FirstPointInList\tkz at LastList
-      \ifx\tkz at FirstPoint\tkzutil at empty  
-         \xdef\tkz at pointtsf{\PointRot '}
-      \else
-         \xdef\tkz at pointtsf{\tkz at FirstPoint}
-      \fi 
-   \pgfmathparse{#2 r}
-   \let\tkz at Angle\pgfmathresult
-    \tkz@@extractxy{\PointRot}
-    \tkz at ax\pgf at x%
-    \tkz at ay\pgf at y%
-    \tkz@@extractxy{#1}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                             {\tkz at Angle}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-      \pgfinterruptboundingbox
-    \path[coordinate](\tkz at bx,\tkz at by)coordinate(\tkz at pointtsf); 
-      \endpgfinterruptboundingbox 
-}  
-\endgroup 
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateInRad(#1,#2)(#3){%
-\begingroup
-   \pgfmathparse{#2 r}
-   \let\tkz at Angle\pgfmathresult
-    \tkz@@extractxy{#3}
-    \tkz at ax\pgf at x%
-    \tkz at ay\pgf at y%
-    \tkz@@extractxy{#1}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-    \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                             {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                             {\tkz at Angle}
-    \tkz at bx\pgf at x%
-    \tkz at by\pgf at y%
-      \pgfinterruptboundingbox
-    \path[coordinate](\tkz at bx,\tkz at by)coordinate(tkzPointResult); 
-      \endpgfinterruptboundingbox 
-\endgroup 
-}
-%<--------------------------------------------------------------------------–>
-%                   Inverse of a point 
-%<--------------------------------------------------------------------------–>
-\def\tkzInversePoint(#1,#2)(#3)#4{%
-\begingroup 
-\gdef\tkz at LastList{#4}
-    \foreach\PointIP in {#3}{%
-      \FirstPointInList\tkz at LastList
-      \ifx\tkz at FirstPoint\tkzutil at empty  
-         \xdef\tkz at pointtsf{\PointIP '}
-      \else
-         \xdef\tkz at pointtsf{\tkz at FirstPoint}
-      \fi 
-    \tkz@@CalcLengthcm(#1,#2){tkz at lna}
-    \tkz@@CalcLengthcm(#1,\PointIP){tkz at lnb}
-    \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
-    \tkzVecKNorm[\tkz at lnc](#1,\PointIP) 
-    \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
-    }  
-\endgroup
-} 
-\def\tkzUInversePoint(#1,#2)(#3){%  
-\begingroup  
-   \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
-   \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
-   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
-   \tkzVecKNorm[\tkz at lnc](#1,#3) 
-\endgroup
-} 
-% possible 
-% \tkzDefLine[tangent from =#3](#1,#2) 
-% \tkzTgtFromP(#1,#2)(#3) 
-% \tkzInterLL(tkzFirstPointResult,tkzSecondPointResult)(#1,#2) 
-%<--------------------------------------------------------------------------–>
-%                   Inverse negative of a point 
-%<--------------------------------------------------------------------------–>
-\def\tkzInverseNegativePoint(#1,#2)(#3)#4{%
-\begingroup 
-\gdef\tkz at LastList{#4}
-    \foreach\PointIP in {#3}{%
-      \FirstPointInList\tkz at LastList
-      \ifx\tkz at FirstPoint\tkzutil at empty  
-         \xdef\tkz at pointtsf{\PointIP '}
-      \else
-         \xdef\tkz at pointtsf{\tkz at FirstPoint}
-      \fi 
-   \tkz@@CalcLengthcm(#1,#2){tkz at lna}
-   \tkz@@CalcLengthcm(#1,\PointIP){tkz at lnb}
-   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
-   \tkzVecKNorm[\tkz at lnc](#1,\PointIP) 
-   \tkzUCSym(#1)(tkzPointResult)
-   \pgfnodealias{\tkz at pointtsf}{tkzPointResult}
-   }  
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-\def\tkzUInverseNegativePoint(#1,#2)(#3){%  
-\begingroup  
-   \tkz@@CalcLengthcm(#1,#2){tkz at lna}% 
-   \tkz@@CalcLengthcm(#1,#3){tkz at lnb}% 
-   \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
-   \tkzVecKNorm[\tkz at lnc](#1,#3) 
-   \tkzUCSym(#1)(tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------- rotate with nodes                 ------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzRotateWithNodes(#1,#2,#3)(#4)#5{%
-\begingroup
-\gdef\tkz at LastList{#5}
- \foreach\PointRotWN in {#4}{%
-   \FirstPointInList\tkz at LastList
-   \ifx\tkz at FirstPoint\tkzutil at empty  
-      \def\tkz at pointtsf{\PointRotWN '}
-   \else
-      \def\tkz at pointtsf{\tkz at FirstPoint}
-   \fi 
-   \tkzFindAngle(#2,#1,#3)
-   \tkz@@extractxy{\PointRotWN}
-   \tkz at ax\pgf at x%
-   \tkz at ay\pgf at y%
-   \tkz@@extractxy{#1}
-   \tkz at bx\pgf at x%
-   \tkz at by\pgf at y%
-   \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                        {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                        {\tkzAngleResult}
-   \tkz at bx\pgf at x%
-   \tkz at by\pgf at y%
-   \pgfinterruptboundingbox
-   \path[coordinate](\tkz at bx,\tkz at by) coordinate (\tkz at pointtsf);% 
-   \endpgfinterruptboundingbox
-}   
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzURotateWithNodes(#1,#2,#3)(#4){%
-\begingroup 
-  \tkzFindAngle(#2,#1,#3)
-  \pgf at process{\pgfpointanchor{#4}{center}}%
-  \tkz at ax\pgf at x%
-  \tkz at ay\pgf at y%
-  \pgf at process{\pgfpointanchor{#1}{center}}%
-  \tkz at bx\pgf at x%
-  \tkz at by\pgf at y%
-  \tkzmathrotatepointaround{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                           {\pgfpoint{\tkz at bx}{\tkz at by}}%
-                           {\tkzAngleResult}
-  \tkz at bx\pgf at x%
-  \tkz at by\pgf at y%
-  \pgfinterruptboundingbox
-  \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);%
-  \endpgfinterruptboundingbox  
-\endgroup
-}   
-%<--------------------------------------------------------------------------–>
-%                   Fin des transformations
-%<--------------------------------------------------------------------------–>
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-spc.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-spc.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-spc.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,680 +0,0 @@
-% tkz-obj-lua-points.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/01/23} 
-\typeout{2023/01/23 5.03c tkz-obj-lua-points-spc.tex} 
-\makeatletter  
-%add ExCenter
-%<--------------------------------------------------------------------------–>
-%                   Specific points
-%<--------------------------------------------------------------------------–>
-%                              barycentre
-%<--------------------------------------------------------------------------–>
-\def\tkzDefBarycentricPoint(#1){%
-\begingroup
- \path[coordinate]  (barycentric cs:#1) coordinate (tkzPointResult); 
-\endgroup
-}
-\let\tkzDefBCPoint\tkzDefBarycentricPoint
-
-\def\tkzDefBarycentricPointTwo(#1,#2,#3,#4){%
-\begingroup
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
-\tkz at ax\pgf at x %
-\tkz at ay\pgf at y %
-\edef\tkzcax{\strip at pt\tkz at ax}%
-\edef\tkzcay{\strip at pt\tkz at ay}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}
-\tkz at bx\pgf at x %
-\tkz at by\pgf at y %
-\edef\tkzcbx{\strip at pt\tkz at bx}%
-\edef\tkzcby{\strip at pt\tkz at by}%
-\edef\tkztpmx{\tkz at Dec{(\tkzcax*(#2) + \tkzcbx*(#4))/(#2 + #4 )}}
-\edef\tkztpmy{\tkz at Dec{(\tkzcay*(#2) + \tkzcby*(#2))/(#2 + #4 )}}
-\pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-%                      milieu  de deux points
-%<--------------------------------------------------------------------------–>
-% possible   \coordinate (#3) at ($(#1)!0.5!(#2)$);
-%<--------------------------------------------------------------------------–>
-% \def\tkzDefMidPoint(#1,#2){%
-% \begingroup
-%  \path (#1) -- (#2) coordinate[pos=.5](tkzPointResult);
-% \endgroup
-% }
-\def\tkzDefMidPoint(#1,#2){%
-\begingroup
-   \pgf at process{\pgfpointanchor{#1}{center}}%
-   \tkz at ax\pgf at x%
-   \tkz at ay\pgf at y%
-   \pgf at process{\pgfpointanchor{#2}{center}}%
-   \tkz at bx\pgf at x%
-   \tkz at by\pgf at y%
-   \advance\tkz at bx by\tkz at ax\relax%
-   \advance\tkz at by by\tkz at ay\relax%
-   \divide\tkz at bx by2\relax%
-   \divide\tkz at by by2\relax
-   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at bx}{\tkz at by}}
-\endgroup
-}
-\def\tkz at DefMidPoint(#1,#2,#3,#4){%
-\begingroup
-   \tkz at ax#1%
-   \tkz at ay#2%
-   \tkz at bx#3%
-   \tkz at by#4%
-   \advance\tkz at bx by\tkz at ax\relax%
-   \advance\tkz at by by\tkz at ay\relax%
-   \divide\tkz at bx by2\relax%
-   \divide\tkz at by by2\relax
-   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at bx}{\tkz at by}}
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-\def\tkz at simicenter{0}
-\pgfkeys{/tkzsimicenter/.cd,
-      ext/.code       = \def\tkz at simicenter{0},
-      int/.code       = \def\tkz at simicenter{1},
-      ext
-}%
-
-\def\tkzDefSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefSimilitudeCenter}%
-                                                {\tkz at DefSimilitudeCenter[]}}     
-\def\tkz at DefSimilitudeCenter[#1](#2,#3)(#4,#5){%
-\pgfqkeys{/tkzsimicenter}{#1} 
-\begingroup  
-\ifcase\tkz at simicenter%
-  \tkzDefExtSimilitudeCenter[#1](#2,#3)(#4,#5)
-  \or% 1 
-  \tkzDefIntSimilitudeCenter[#1](#2,#3)(#4,#5) 
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                    Internal Similitude center
-%  Two circles have two similitude centers namely the internal center of
-%   similitude Si and the external similitude center Se.
-%<--------------------------------------------------------------------------–>
-\def\tkz at numhomo{0}
-\pgfkeys{
-/tkzSimilitudeCenter/.cd,
- node/.code          = \def\tkz at numhomo{0},
- R/.code             = \def\tkz at numhomo{1},
- node,
- /tkzSimilitudeCenter/.unknown/.code   = {\let\searchname=\pgfkeyscurrentname
- \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}}
-}
-\def\tkzDefIntSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefIntSimilitudeCenter}{\tkz at DefIntSimilitudeCenter[]}}
-\def\tkz at DefIntSimilitudeCenter[#1](#2,#3)(#4,#5){%
-\begingroup
-\pgfqkeys{/tkzSimilitudeCenter}{#1}
-\ifcase\tkz at numhomo%
-    \tkz@@CalcLengthcm(#2,#3){tkz at rt}%
-    \tkz@@CalcLengthcm(#4,#5){tkz at rf}%
-  \or% 1
-   \def\tkz at rt{#3}%
-   \def\tkz at rf{#5}%
-\fi
-\pgfinterruptboundingbox 
-\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
-\tkz at ax\pgf at x %
-\tkz at ay\pgf at y %
-\edef\tkzcax{\strip at pt\tkz at ax}%
-\edef\tkzcay{\strip at pt\tkz at ay}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}
-\tkz at bx\pgf at x %
-\tkz at by\pgf at y %
-\edef\tkzcbx{\strip at pt\tkz at bx}%
-\edef\tkzcby{\strip at pt\tkz at by}%
-\edef\tkztpmx{\tkz at Dec{(\tkzcax*\tkz at rf + \tkzcbx*\tkz at rt)/(\tkz at rf + \tkz at rt )}}
-\edef\tkztpmy{\tkz at Dec{(\tkzcay*\tkz at rf + \tkzcby*\tkz at rt)/(\tkz at rf + \tkz at rt )}}
-  \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
-\endpgfinterruptboundingbox 
-\endgroup
-}
-\let\tkzDefIntHomotheticCenter\tkzDefIntSimilitudeCenter
-%<--------------------------------------------------------------------------–>
-%                    External Similitude center
-%<--------------------------------------------------------------------------–>
-\def\tkzDefExtSimilitudeCenter{\pgfutil at ifnextchar[{\tkz at DefExtSimilitudeCenter}{%
-\tkz at DefExtSimilitudeCenter[]}}
-
-\def\tkz at DefExtSimilitudeCenter[#1](#2,#3)(#4,#5){%
-\begingroup
-\pgfqkeys{/tkzSimilitudeCenter}{#1}
-\ifcase\tkz at numhomo%
-  \tkz@@CalcLengthcm(#2,#3){tkz at rt}%
-  \tkz@@CalcLengthcm(#4,#5){tkz at rf}%
-   \or% 1
-  \def\tkz at rt{#3}%
-  \def\tkz at rf{#5}%
-\fi
-\pgfinterruptboundingbox 
-\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
-\tkz at ax\pgf at x %
-\tkz at ay\pgf at y %
-\edef\tkzcax{\strip at pt\tkz at ax}%
-\edef\tkzcay{\strip at pt\tkz at ay}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}
-\tkz at bx\pgf at x %
-\tkz at by\pgf at y %
-\edef\tkzcbx{\strip at pt\tkz at bx}%
-\edef\tkzcby{\strip at pt\tkz at by}%
-\edef\tkztpmx{\tkz at Dec{(\tkzcax*(-\tkz at rf) + \tkzcbx*\tkz at rt)/(\tkz at rt - (\tkz at rf))}}
-\edef\tkztpmy{\tkz at Dec{(\tkzcay*(-\tkz at rf) + \tkzcby*\tkz at rt)/(\tkz at rt - (\tkz at rf))}}
-  \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
-   \endpgfinterruptboundingbox 
-\endgroup
-}
-
-\let\tkzDefExtHomotheticCenter\tkzDefExtSimilitudeCenter
-%<--------------------------------------------------------------------------–>
-%        Harmonic Division
-%<--------------------------------------------------------------------------–>
-%  A , B , C ,D  CA/CB = DA/DB
-%<--------------------------------------------------------------------------–>
-\def\tkz at numdha{0}
-\pgfkeys{/tkzharmonic/.cd,
-      ext/.code       = \def\tkz at numdha{0},
-      int/.code       = \def\tkz at numdha{1},
-      both/.code      = \def\tkz at numdha{2},
-      both,
-}%
-
-\def\tkzDivHarmonic{\pgfutil at ifnextchar[{\tkz at DivHarmonic}{\tkz at DivHarmonic[]}}     
-\def\tkz at DivHarmonic[#1](#2){%
-\begingroup 
-\pgfqkeys{/tkzharmonic}{#1}  
-  \ifcase\tkz at numdha%
-   \tkzDefDivHarmonicExt(#2)
- \or%
-    \tkzDefDivHarmonicInt(#2)
-  \or%
-    \tkzDefDivHarmonicBoth(#2)
- \fi
-\endgroup
-}
-
-\def\tkzDefDivHarmonicExt(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox 
-  \tkz at VecKOrth[](#1,#2)  \tkzGetPoint{tkz at px}
-  \tkzDefMidPoint(tkz at px,#2)          \tkzGetPoint{tkz at py}
-  \tkzInterLL(tkz at px,#3)(#1,tkz at py)   \tkzGetPoint{tkz at pz}
-  \tkzInterLL(#2,tkz at pz)(#1,tkz at px)   \tkzGetPoint{tkz at px}
-  \tkzInterLL(tkz at py,tkz at px)(#1,#2)   \tkzGetPoint{tkzPointResult}
-\endpgfinterruptboundingbox 
-\endgroup
-}
-
-\def\tkzDefDivHarmonicInt(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox 
-  \tkz at VecKOrth[1](#1,#2)  \tkzGetPoint{tkz at px}
-  \tkzDefMidPoint(tkz at px,#2)          \tkzGetPoint{tkz at py}
-  \tkzInterLL(tkz at py,#3)(#1,tkz at px)   \tkzGetPoint{tkz at pz}
-  \tkzInterLL(#2,tkz at pz)(#1,tkz at py)   \tkzGetPoint{tkz at py}
-  \tkzInterLL(tkz at py,tkz at px)(#1,#2)   \tkzGetPoint{tkzPointResult}
-\endpgfinterruptboundingbox 
-\endgroup
-}
-
-\def\tkzDefDivHarmonicBoth(#1,#2,#3){%
-\begingroup
-\edef\tkz at k{\fpeval{#3}}
-    \path[coordinate]  (barycentric cs:#1=1,#2={\tkz at k}) coordinate (tkzFirstPointResult);
-    \path[coordinate]  (barycentric cs:#1=1,#2={-\tkz at k}) coordinate (tkzSecondPointResult);
-\endgroup
-}
-
-\let\tkzDefHarmonic\tkzDivHarmonic
-%<--------------------------------------------------------------------------–> 
-%                   golden ratio
-%<--------------------------------------------------------------------------–>
-\def\tkzDefGoldenRatio(#1,#2){%
-\begingroup
-\tkzDefPointWith[linear,K=\tkzInvPhi](#1,#2)
-\endgroup
-}
-%<--------------------------------------------------------------------------–> 
-%                    triangle center
-%<--------------------------------------------------------------------------–>
-
-\def\tkz at numtc{0}
-\pgfkeys{/tkzDefTriangleCenter/.cd,
-   ortho/.code        = \def\tkz at numtc{0},
-   orthic/.code       = \def\tkz at numtc{0},
-   centroid/.code     = \def\tkz at numtc{1},
-   median/.code       = \def\tkz at numtc{1},
-   circum/.code       = \def\tkz at numtc{2},
-   in/.code           = \def\tkz at numtc{3},
-   ex/.code           = \def\tkz at numtc{4},
-   euler/.code        = \def\tkz at numtc{5},
-   symmedian/.code    = \def\tkz at numtc{6},
-   lemoine/.code      = \def\tkz at numtc{6},
-   grebe/.code        = \def\tkz at numtc{6},
-   spieker/.code      = \def\tkz at numtc{7},
-   gergonne/.code     = \def\tkz at numtc{8},
-   nagel/.code        = \def\tkz at numtc{9}, 
-   mittenpunkt/.code  = \def\tkz at numtc{10}, 
-   feuerbach/.code    = \def\tkz at numtc{11},
-   circum       
-}     
-\def\tkzDefTriangleCenter{\pgfutil at ifnextchar[{\tkz at DefTriangleCenter}{\tkz at DefTriangleCenter[]}}
-\def\tkz at DefTriangleCenter[#1](#2){% 
-\begingroup  
-\pgfqkeys{/tkzDefTriangleCenter}{#1}  
-\ifcase\tkz at numtc%
-  \tkzOrthoCenter(#2)
-  \or% 1 
-  \tkzCentroid(#2)  
-  \or% 2
-  \tkzCircumCenter(#2) 
-  \or% 3
-  \tkzInCenter(#2) 
-  \or% 4
-  \tkzExCenter(#2) 
-  \or% 5
-  \tkzEulerCenter(#2)
-  \or% 6
-  \tkzSymmedianCenter(#2) 
-  \or% 7
-  \tkzSpiekerCenter(#2) 
-  \or% 8
-  \tkzGergonneCenter(#2) 
-  \or%9
-  \tkzNagelCenter(#2)
-  \or%10
-  \tkzMittenpunktCenter(#2) 
-  \or%11
-  \tkzFeuerbachCenter(#2) 
-    \fi    
-\endgroup
-}
-%<--------------------------------------------------------------------------–> 
-%                    OrthoCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzOrthoCenter(#1,#2,#3){%
-\begingroup
-  \pgfinterruptboundingbox 
-   \tkzUProjection(#1,#2)(#3)
-   \pgfnodealias{ort at pta}{tkzPointResult}
-   \tkzUProjection(#1,#3)(#2)
-   \pgfnodealias{ort at ptb}{tkzPointResult}
-   \tkzInterLL(#2,ort at ptb)(#3,ort at pta)
-   \endpgfinterruptboundingbox 
-\endgroup
-}
-\let\tkzDefOrthoCenter\tkzOrthoCenter
-%<--------------------------------------------------------------------------–>
-%                      GravityCenter modif 3.03
-%<--------------------------------------------------------------------------–>
-\def\tkzCentroid(#1,#2,#3){%
-\begingroup 
-   \pgf at process{\pgfpointanchor{#1}{center}}%
-   \tkz at ax\pgf at x%
-   \tkz at ay\pgf at y%
-   \pgf at process{\pgfpointanchor{#2}{center}}%
-   \tkz at bx\pgf at x%
-   \tkz at by\pgf at y%
-   \pgf at process{\pgfpointanchor{#3}{center}}%
-   \tkz at cx\pgf at x%
-   \tkz at cy\pgf at y%
-   \edef\tkzcax{\strip at pt\tkz at ax}%
-   \edef\tkzcay{\strip at pt\tkz at ay}%
-   \edef\tkzcbx{\strip at pt\tkz at bx}%
-   \edef\tkzcby{\strip at pt\tkz at by}%
-   \edef\tkzccx{\strip at pt\tkz at cx}%
-   \edef\tkzccy{\strip at pt\tkz at cy}%
-   \edef\tkztpmx{\tkz at Dec{(\tkzcax + \tkzcbx + \tkzccx)/3}}
-   \edef\tkztpmy{\tkz at Dec{(\tkzcay + \tkzcby + \tkzccy)/3}}
-   \pgfinterruptboundingbox 
-   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkztpmx pt}{\tkztpmy pt}}
-   \endpgfinterruptboundingbox   
-\endgroup
-}
-\let\tkzBaryCenter\tkzCentroid
-
-%<--------------------------------------------------------------------------–>
-%                      CircumCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzCircumCenter(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox 
- \tkzDefMediatorLine(#1,#2)
- \pgf at process{\pgfpointanchor{tkzFirstPointResult}{center}}%
- \tkz at ax\pgf at x%
- \tkz at ay\pgf at y%
- \pgf at process{\pgfpointanchor{tkzSecondPointResult}{center}}%
- \tkz at bx\pgf at x%
- \tkz at by\pgf at y%
- \tkzDefMediatorLine(#1,#3)
- \pgf at process{\pgfpointanchor{tkzFirstPointResult}{center}}%
- \tkz at cx\pgf at x%
- \tkz at cy\pgf at y%
- \pgf at process{\pgfpointanchor{tkzSecondPointResult}{center}}%
- \tkz at dx\pgf at x%
- \tkz at dy\pgf at y%
-\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
-\endpgfinterruptboundingbox
-\endgroup
-} 
-\let\tkzDefCircumCenter\tkzCircumCenter
-%<--------------------------------------------------------------------------–>
-%                     InCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzInCenter(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox 
-\tkzDefBisectorLine(#3,#1,#2)
-\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
-\tkz at bx\pgf at x%
-\tkz at by\pgf at y%
-\tkzDefBisectorLine(#3,#2,#1) 
-\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
-\tkz at dx\pgf at x%
-\tkz at dy\pgf at y%
-\pgf at process{\pgfpointanchor{#1}{center}}%
-\tkz at ax\pgf at x%
-\tkz at ay\pgf at y%
-\pgf at process{\pgfpointanchor{#2}{center}}%
-\tkz at cx\pgf at x%
-\tkz at cy\pgf at y%
-\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
-\endpgfinterruptboundingbox
-\endgroup
-} 
-\let\tkzDefInCenter\tkzInCenter
-%<--------------------------------------------------------------------------–>
-%                     ExCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzExCenter(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox 
-\tkzDefBisectorOutLine(#2,#1,#3)
-\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
-\tkz at bx\pgf at x%
-\tkz at by\pgf at y%
-\tkzDefBisectorOutLine(#2,#3,#1) 
-\pgf at process{\pgfpointanchor{tkzPointResult}{center}}%
-\tkz at dx\pgf at x%
-\tkz at dy\pgf at y%
-\pgf at process{\pgfpointanchor{#1}{center}}%
-\tkz at ax\pgf at x%
-\tkz at ay\pgf at y%
-\pgf at process{\pgfpointanchor{#3}{center}}%
-\tkz at cx\pgf at x%
-\tkz at cy\pgf at y%
-\tkzInterLLxy(\tkz at ax,\tkz at ay,\tkz at bx,\tkz at by)(\tkz at cx,\tkz at cy,\tkz at dx,\tkz at dy)%
-\endpgfinterruptboundingbox
-\endgroup
-} 
-\let\tkzDefExCenter\tkzExCenter
-%<--------------------------------------------------------------------------–>
-%                     EulerCenter neuf points
-%<--------------------------------------------------------------------------–>
-\def\tkzEulerCenter(#1,#2,#3){% 
-% mileu de orthocentre et centre cercle circonscrit
-% passe par les midpoints par les pieds des hauteurs
-\begingroup
-\pgfinterruptboundingbox 
-\tkzDefMidPoint(#1,#2)
-\pgfnodealias{eu at mic}{tkzPointResult}
-\tkzDefMidPoint(#1,#3)
-\pgfnodealias{eu at mib}{tkzPointResult}
-\tkzDefMidPoint(#2,#3)
-\pgfnodealias{eu at mia}{tkzPointResult}
-\tkzCircumCenter(eu at mia,eu at mib,eu at mic)
-\endpgfinterruptboundingbox
-\endgroup
-}
-\let\tkzNinePointCenter\tkzEulerCenter
-\let\tkzDefEulerCenter\tkzEulerCenter
-%<--------------------------------------------------------------------------–>
-%Symmedian center Lemoine point Grebe point K
-%<--------------------------------------------------------------------------–>
-\def\tkzSymmedianCenter(#1,#2,#3){%
-\begingroup
-\pgfinterruptboundingbox    
-\tkzDefMidPoint(#2,#3)
-\pgfnodealias{eu at mic}{tkzPointResult}
-\tkzDefMidPoint(#1,#3)
-\pgfnodealias{eu at mib}{tkzPointResult}
-\tkzUProjection(#2,#3)(#1)
-\pgfnodealias{ort at pta}{tkzPointResult}
-\tkzDefMidPoint(#1,ort at pta)
-\pgfnodealias{eu at mid}{tkzPointResult}
-\tkzUProjection(#1,#3)(#2)
-\pgfnodealias{ort at ptb}{tkzPointResult}
-\tkzDefMidPoint(#2,ort at ptb)
-\pgfnodealias{eu at mie}{tkzPointResult}
-\tkzInterLL(eu at mic,eu at mid)(eu at mib,eu at mie)
-\endpgfinterruptboundingbox
-\endgroup
-}
-\let\tkzLemoinePoint\tkzSymmedianCenter
-\let\tkzGrebePoint\tkzSymmedianCenter
-\let\tkzDefLemoinePoint\tkzLemoinePoint
-%<--------------------------------------------------------------------------–> 
-%                   Spieker center
-%<--------------------------------------------------------------------------–>
-\def\tkzSpiekerCenter(#1,#2,#3){%
-\begingroup
-% we need to get the midpoints
-\pgfcoordinate{tkz at m3}{%
-  \pgfpointscale{0.5}{%
-  \pgfpointadd{\pgfpointanchor{#1}{center}}%
-              {\pgfpointanchor{#2}{center}}}}%
-\pgfcoordinate{tkz at m2}{%
-  \pgfpointscale{0.5}{%
-  \pgfpointadd{\pgfpointanchor{#1}{center}}%
-              {\pgfpointanchor{#3}{center}}}}%
-\pgfcoordinate{tkz at m1}{%
-   \pgfpointscale{0.5}{%
-   \pgfpointadd{\pgfpointanchor{#2}{center}}%
-               {\pgfpointanchor{#3}{center}}}}%
-\tkzInCenter(tkz at m1,tkz at m2,tkz at m3)
-\endgroup
-} 
-\let\tkzDefSpiekerCenter\tkzSpiekerCenter 
-%<--------------------------------------------------------------------------–> 
-%                    Gergonne center Ge
-%<--------------------------------------------------------------------------–>
-\def\tkzGergonneCenter(#1,#2,#3){%  
-\begingroup
-\pgfinterruptboundingbox 
-\tkzInCenter(#1,#2,#3)
-\pgfnodealias{tkz at ptin}{tkzPointResult}
-\tkzUProjection(#2,#3)(tkz at ptin)
-\pgfnodealias{tkz at oca}{tkzPointResult}
-\tkzUProjection(#1,#3)(tkz at ptin)
-\pgfnodealias{tkz at ocb}{tkzPointResult}
-\tkzInterLL(#1,tkz at oca)(#2,tkz at ocb)
-\endpgfinterruptboundingbox
-\endgroup
-}
-\let\tkzDefGergonneCenter\tkzGergonneCenter 
-%<--------------------------------------------------------------------------–> 
-%                    Nagel center Na
-%<--------------------------------------------------------------------------–>
-%  INa = 3 IG. Nagel point % correction 02/02/20
-\def\tkzNagelCenter(#1,#2,#3){%  
-\begingroup
-\pgfinterruptboundingbox 
-\tkzDefExcentralTriangle(#1,#2,#3){tkz at a,tkz at b,tkz at c}
-\tkzUProjection(#2,#3)(tkz at a)
-\pgfnodealias{tkz at tgta}{tkzPointResult}
-\tkzUProjection(#1,#2)(tkz at c)
-\pgfnodealias{tkz at tgtc}{tkzPointResult}
-\tkzInterLL(#1,tkz at tgta)(#3,tkz at tgtc)
-\endpgfinterruptboundingbox
-\endgroup
-}
-\let\tkzDefNagelCenter\tkzNagelCenter 
-%<--------------------------------------------------------------------------–>
-%  Mittenpunkt
-%<--------------------------------------------------------------------------–>
-\def\tkzMittenpunktCenter(#1,#2,#3){%  
-\begingroup
-\pgfinterruptboundingbox 
-\tkzExCenter(#2,#3,#1)
-\pgfnodealias{tkz at a}{tkzPointResult}
-\tkzExCenter(#3,#1,#2)
-\pgfnodealias{tkz at b}{tkzPointResult}
-\pgfcoordinate{tkz at ma}{%
-\pgfpointscale{0.5}{%
-\pgfpointadd{\pgfpointanchor{#1}{center}}{\pgfpointanchor{#2}{center}}}}%
-\pgfcoordinate{tkz at mb}{%
-\pgfpointscale{0.5}{%
-\pgfpointadd{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}}}%
-\tkzInterLL(tkz at a,tkz at ma)(tkz at b,tkz at mb)
-\endpgfinterruptboundingbox
-\endgroup
-}
-\let\tkzDefMittenpunktCenter\tkzMittenpunktCenter 
-\let\tkzDefMiddlespoint\tkzMittenpunktCenter     
-%<--------------------------------------------------------------------------–> 
-%                   Feuerbach point
-%<--------------------------------------------------------------------------–>
-\def\tkzFeuerbachCenter(#1,#2,#3){%  
-\begingroup
-\pgfinterruptboundingbox 
-\tkzEulerCenter(#1,#2,#3)
-\pgfnodealias{tkz at euler}{tkzPointResult}
-\tkzInCenter(#1,#2,#3) 
-\pgfnodealias{tkz at in}{tkzPointResult}
-\tkzUProjection(#2,#3)(tkzPointResult)
-\tkzInterLC(tkz at in,tkz at euler)(tkz at in,tkzPointResult)\tkzGetFirstPoint{tkz at fe}
-\tkzRenamePoint(tkz at fe){tkzPointResult}
-\endpgfinterruptboundingbox  
-\endgroup
-}
-\let\tkzDefFeuerbachCenter\tkzFeuerbachCenter 
-%<--------------------------------------------------------------------------–>
-%                     Orthogonal center
-%<--------------------------------------------------------------------------–>
-\def\tkzOrthogonalCenter(#1,#2){%
-\begingroup
-\pgfinterruptboundingbox 
-\tkz at VecK[\tkz at koeff/(1+\tkz at koeff)](#1,#2)
-\pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-\tkz at VecK[\tkz at koeff/(\tkz at koeff-1)](#1,#2)
-\pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-\tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult) 
-\endpgfinterruptboundingbox 
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                  End Triangle center
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%                  Projection  center of excircles
-%<--------------------------------------------------------------------------–>
-\def\tkzDefProjExcenter{\pgfutil at ifnextchar[{%
-    \tkz at DefProjExcenter}{%
-    \tkz at DefProjExcenter[]}
-    }
-\def\tkz at DefProjExcenter[#1](#2,#3,#4)(#5)#6{
-\begingroup  
-  \SetUpPTTR{#1}
-   \foreach \name  [count=\i] in {#5} {%
-      \global\expandafter\edef\csname tkz at pt\i\endcsname{\name}
-        }
-   \foreach \name  [count=\i] in {#6} {%
-      \global\expandafter\edef\csname tkz at ppt\i\endcsname{\name}
-        }
-\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
-\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
-\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #3--#4 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
-\pgfnodealias{\csname tkz at ppt1\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
-\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
-\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #2--#4 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
-\pgfnodealias{\csname tkz at ppt2\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt1\endcsname) 
-\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt1\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt2\endcsname) 
-\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt2\endcsname}{tkzPointResult}
-\tkzDefPointBy[projection=onto #3--#2 ](\tkz at pttr@name \csname tkz at pt3\endcsname) 
-\pgfnodealias{\csname tkz at ppt3\endcsname\csname tkz at pt3\endcsname}{tkzPointResult}
-\endgroup 
-} 
-%<--------------------------------------------------------------------------–>
-%              Point on circle
-%<--------------------------------------------------------------------------–>
-\def\tkz at numptcirc{0}
-\pgfkeys{/tkzptcircle/.cd,
-through/.code  args = {center #1 angle #2 point #3}        { \def\tkz at center{#1}%
-                                                             \def\tkz at angle{#2}%
-                                                             \def\tkz at through{#3}%
-                                                             \def\tkz at numptcirc{0}},
-R/.code args = {center #1 angle #2 radius #3}              { \def\tkz at center{#1}%
-                                                             \def\tkz at angle{#2}%
-                                                             \def\tkz at radius{#3}%
-                                                             \def\tkz at numptcirc{1}},
-through in rad/.code  args = {center #1 angle #2 point #3} { \def\tkz at center{#1}%
-                                                             \def\tkz at angle{#2}%
-                                                             \def\tkz at through{#3}%
-                                                             \def\tkz at numptcirc{2}},
-R in rad/.code args = {center #1 angle #2 radius #3}       { \def\tkz at center{#1}%
-                                                             \def\tkz at angle{#2}%
-                                                             \def\tkz at radius{#3}%
-                                                             \def\tkz at numptcirc{3}}                                                 
-}
-                                                  
-\def\tkzDefPointOnCircle{\pgfutil at ifnextchar[{\tkz at DefPointOnCircle}{%
-                                              \tkz at DefPointOnCircle[]}}     
-\def\tkz at DefPointOnCircle[#1]{%
-\begingroup 
-\pgfqkeys{/tkzptcircle}{#1}
- \ifcase\tkz at numptcirc%
-    \tkz@@CalcLengthcm(\tkz at center,\tkz at through){tkz at radius}
-     \or% 1
-    \relax%
-    \or% 2
-    \pgfmathparse{\tkz at angle\space r}
-    \let\tkz at angle\pgfmathresult
-    \tkz@@CalcLengthcm(\tkz at center,\tkz at through){tkz at radius}
-    \or% 3
-    \pgfmathparse{\tkz at angle\space r}
-    \let\tkz at angle\pgfmathresult
-\fi
-\path (\tkz at center) --++(\tkz at angle:\tkz at radius) coordinate(tkzPointResult);
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%              Point on line
-%<--------------------------------------------------------------------------–>
-\def\tkzDefPointOnLine{\pgfutil at ifnextchar[{\tkz at DefPointOnLine}{\tkz at DefPointOnLine[]}}     
-\def\tkz at DefPointOnLine[#1](#2,#3){%
-\begingroup 
-\path (#2) to [#1] coordinate (tkzPointResult)  (#3);
-\endgroup
-} 
-
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-with.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-with.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points-with.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,269 +0,0 @@
-% tkz-obj-lua-points-with.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-obj-lua-points-with.tex}   
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%                          Vectors
-%<--------------------------------------------------------------------------–>
-% Objet :  outils mathématiques pour la géométrie euclideienne avec pgf/tikz
-% utilisable de préférence avec un repère orthonormé et le cm comme unité 
-% utile pour la compatibilité avec pgf 2
-%<--------------------------------------------------------------------------–>
-%             Duplicate Length      à revoir pas de pt pas de global
-% ||v(CN)||= ||v(AB)|| et v(CN) colineaire à v(CD) 
-% A-->#1 B-->#2 C-->#3 D-->#4 N-->#5   ?????
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%                 Outils pour les vecteurs
-%<--------------------------------------------------------------------------–>
-%  ce sont des outils élémentaires qui à partir de deux points en définissent 
-% un troisième 
-% #1 si c'est une option alors c'est un nombre réel
-% #2 et #3 sont deux points
-% #4 est le nom du point qui résulte de la transformation
-% exemple : \tkzVecKNorm (A,B){C} définit un point C tel que AC = 1 et C est %  %  un point de la droite (AC). #1 peut être négatif
-
-\def\tkzDuplicateSegment(#1,#2)(#3,#4){%
-\begingroup 
-    \tkz@@CalcLength(#1,#2){tkz at firstlen}% 
-    \tkz@@CalcLength(#3,#4){tkz at secondlen}%
-   \edef\tkz at ratio{\tkz at Dec{\tkz at firstlen/\tkz at secondlen}}
-    \tkz at VecKCoLinear[\tkz at ratio](#3,#4,#3)%
-\endgroup 
-}
-\let\tkzDuplicateLength\tkzDuplicateSegment     
-%<--------------------------------------------------------------------------–>
-%                    Coordonnées d'un vecteur  (couple de points)  
-% Deux points A et B donc un vecteur on récupère les coordonnées de v(AB)
-% en cm 
-% tkzGetVecCoord en cm ou en pt ???
-%<--------------------------------------------------------------------------–>
-%result in #3x et #3y #1 et #2 sont les points  
-% passage en cm avec fp ? 
-% 28.45274 =1 cm
-\def\tkzGetVectxy(#1,#2)#3{%
-\begingroup 
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
-             {\pgfpointanchor{#2}{center}}%
-\pgfmathparse{\pgf at sys@tonumber{\pgf at x}/1cm}%
-\let\tkzresultx\pgfmathresult
-\pgfmathparse{\pgf at sys@tonumber{\pgf at y}/1cm}%
-\let\tkzresulty\pgfmathresult
-\global\expandafter\edef\csname #3x\endcsname{\tkzresultx}% 
-\global\expandafter\edef\csname #3y\endcsname{\tkzresulty}% 
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% options #1 two points #2,#3 result in #4
-%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-%          tkzDefPointWith  
-%<--------------------------------------------------------------------------–>
-\def\tkz at numv{0}
-\pgfkeys{/@pointwith/.cd,
-      colinear/.code     args     = {at #1}{\def\tkz at numv{0}\def\tkz at frompoint{#1}},
-      orthogonal/.code            = {\def\tkz at numv{1}},
-      linear/.code                = {\def\tkz at numv{2}},
-      orthogonal normed/.code     = {\def\tkz at numv{3}},
-      linear normed/.code         = {\def\tkz at numv{4}},
-      colinear normed/.code  args = {at #1}{\def\tkz at numv{5}\def\tkz at frompoint{#1}},
-      K/.code                     = {\edef\tkz at coeff{\fpeval{#1}}},
-      K                           = 1,
-      normed/.is if               =  tkz at line@normed,
-      normed/.default             =  true,
-      normed                      =  false,
-      orthogonal  
-} 
-\def\tkzDefPointWith{\pgfutil at ifnextchar[{\tkz at DefPointWith}{\tkz at DefPointWith[]}}  
-
-\def\tkz at DefPointWith[#1](#2,#3){%
-\begingroup 
-\pgfkeys{/@pointwith/.cd,K=1}  
-\pgfqkeys{/@pointwith}{#1}
-\ifcase\tkz at numv%
- % first case 0
-   \tkz at DefVectorColinearat[\tkz at coeff](#2,#3)
-  \or% 1
-   \tkz at VecKOrth[\tkz at coeff](#2,#3)
-  \or% 2
-   \tkz at VecK[\tkz at coeff](#2,#3)
-  \or% 3
-   \tkz at VecKOrthNorm[\tkz at coeff](#2,#3)
-  \or% 4
-   \tkz at VecKNorm[\tkz at coeff](#2,#3)
-  \or% 5
-   \tkz at VecKColinearNorm[\tkz at coeff](#2,#3)
-  \fi    
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%         tkzDefVectorfrom  
-%<--------------------------------------------------------------------------–>
-% tkz at numv 0
-\def\tkz at DefVectorColinearat[#1](#2,#3){%
-\iftkz at line@normed
-   \tkz at VecKColinearNorm[#1](#2,#3)
-\else
-\begingroup
-  \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
-  \pgf at xa=\pgf at x\relax%
-  \pgf at ya=\pgf at y\relax%
-  \pgfinterruptboundingbox
-  \path (\tkz at frompoint)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
-  \endpgfinterruptboundingbox
-\endgroup
-\fi
-} 
-%<--------------------------------------------------------------------------–>
-%     tkzVector K Orth   coeff dans #1
-%     v(AN) perp v(AB)  (v(AB) , v(AN) ) sens direct cercle trigo 
-%     ||v(AN)||=||v(AB)||
-%<--------------------------------------------------------------------------–>
-% tkz at numv 1
-\def\tkzVecKOrth{\pgfutil at ifnextchar[{\tkz at VecKOrth}{\tkz at VecKOrth[1]}}  
-\def\tkz at VecKOrth[#1](#2,#3){%
-\iftkz at line@normed
-   \tkz at VecKOrthNorm[#1](#2,#3)
-\else
-\begingroup
-  \pgfpointdiff{\pgfpointanchor{#2}{center}}{\pgfpointanchor{#3}{center}}%
-  \pgf at xa=-\pgf at y%
-  \pgf at ya=\pgf at x%
-  \pgfinterruptboundingbox 
-  \path (#2)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
-  \endpgfinterruptboundingbox
-\endgroup
-\fi
-}%
-
-%<--------------------------------------------------------------------------–>
-%         v(AN)=#1 x v(AB)     
-%   #1 le coeff; #2--> A #3--> B   #4-->N  tq    #4-#2 = #1*(#3-#2)                                 
-%<--------------------------------------------------------------------------–>
-% tkz at numv 2
-\def\tkzVecK{\pgfutil at ifnextchar[{\tkz at VecK}{\tkz at VecK[1]}} 
-\def\tkz at VecK[#1](#2,#3){% 
-\iftkz at line@normed
-   \tkz at VecKNorm[#1](#2,#3)
-\else
-\begingroup 
-   \pgfpointdiff{\pgfpointanchor{#2}{center}}%
-                {\pgfpointanchor{#3}{center}}%
-   \pgf at xa=\pgf at x\relax%
-   \pgf at ya=\pgf at y\relax%
-   \pgfmathparse{#1}
-   \let\tkz at coeff\pgfmathresult
-      \pgfinterruptboundingbox 
-   \path (#2)--++(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya) coordinate (tkzPointResult);
-    \endpgfinterruptboundingbox   
-\endgroup
-\fi
-}% 
-%<--------------------------------------------------------------------------–>
-%              tkzVecKOrthNorm   coeff dans #1
-%    v(AN) perp v(AB)  v(AB) v(AN) sens direct cercle trigo 
-% ||v(AN||=1 si #1 est vide ou =1 sinon ||v(AN||=K
-%<--------------------------------------------------------------------------–>
-% tkz at numv 3
-\def\tkzVecKOrthNorm{\pgfutil at ifnextchar[{\tkz at VecKOrthNorm}%
-                                         {\tkz at VecKOrthNorm[1]}}
-\def\tkz at VecKOrthNorm[#1](#2,#3){%    
-\begingroup
- \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#2}{center}}%
-                                  {\pgfpointanchor{#3}{center}}} 
-  \pgf at xa=-\pgf at y\relax%
-  \pgf at ya=\pgf at x\relax%
-  \pgfmathparse{#1}
-  \let\tkz at tmp\pgfmathresult
-  \edef\tkz at x{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at xa}}
-  \edef\tkz at y{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at ya}}
-  \pgfinterruptboundingbox 
-  \path (#2)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
-  \endpgfinterruptboundingbox   
-\endgroup
-}%      
-%<--------------------------------------------------------------------------–>
-%              VectorNormalised ou K*VectorNormalised
-% A-->#2 B-->#3 N-->#4      v(AB)  devient v(AN) tq ||v(AN)||=1 si #1=1  
-%  sinon ||v(AN)||=#1 
-%<--------------------------------------------------------------------------–>
-% tkz at numv 4
-\def\tkzVecKNorm{\pgfutil at ifnextchar[{\tkz at VecKNorm}{\tkz at VecKNorm[1]}} 
-\def\tkz at VecKNorm[#1](#2,#3){%
-\begingroup
-    \tkzpointnormalised{%
-    \pgfpointdiff{\pgfpointanchor{#2}{center}}
-                 {\pgfpointanchor{#3}{center}}}
-    \pgf at xa=\pgf at x\relax%
-    \pgf at ya=\pgf at y\relax% 
-   \pgfmathparse{#1}
-   \let\tkz at tmp\pgfmathresult
-  \edef\tkz at x{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at xa}}
-  \edef\tkz at y{\tkz at Dec{28.45274*\tkz at tmp*\strip at pt\pgf at ya}}
-    \pgfinterruptboundingbox 
-    \path (#2)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
-    \endpgfinterruptboundingbox   
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-%            \tkz at VecKColinearNorm
-%<--------------------------------------------------------------------------–>
-%% tkz at numv 5
-\def\tkz at VecKColinearNorm[#1](#2,#3){%
-\begingroup   
-    \tkzpointnormalised{%
-    \pgfpointdiff{\pgfpointanchor{#2}{center}}
-                 {\pgfpointanchor{#3}{center}}}
-    \pgf at xa=\pgf at x\relax%
-    \pgf at ya=\pgf at y\relax% 
-  \edef\tkz at x{\tkz at Dec{28.45274*(\tkz at coeff)*\strip at pt\pgf at xa}}
-  \edef\tkz at y{\tkz at Dec{28.45274*(\tkz at coeff)*\strip at pt\pgf at ya}}
-    \pgfinterruptboundingbox
-    \path (\tkz at frompoint)--++(\tkz at x pt,\tkz at y pt) coordinate (tkzPointResult);
-    \endpgfinterruptboundingbox
-\endgroup
-}%
-%<--------------------------------------------------------------------------–>
-%  VecKCoLinear  CN = K x AB  #1 pt #2 pt #3 pt #4 nb #5 pt result   
-% il faut modifier cette macro : on supprime #3 pour la colinéarité
-% Il suffit d'utiliser Replicate ou Duplicate     coeff dans #1
-% v(CD)=#1 x v(AB) #1 le coeff; #2-->A #3-->B #4-->C 
-%<--------------------------------------------------------------------------–>
-\def\tkz at VecKCoLinear[#1](#2,#3,#4){% 
-\begingroup
-   \pgfpointdiff{\pgfpointanchor{#2}{center}}%
-                {\pgfpointanchor{#3}{center}}%
-   \pgf at xa=\pgf at x\relax%
-   \pgf at ya=\pgf at y\relax% 
-   \edef\tkz at coeff{\fpeval{#1}}
-   \pgfinterruptboundingbox 
-   \path (#4)--+(\tkz at coeff\pgf at xa,\tkz at coeff\pgf at ya)  coordinate (tkzPointResult);
-   \endpgfinterruptboundingbox                     
-\endgroup
-}%  
-\def\tkz at VecCoLinear(#1,#2,#3){% 
-\begingroup
-   \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                {\pgfpointanchor{#2}{center}}%
-   \pgf at xa=\pgf at x\relax%
-   \pgf at ya=\pgf at y\relax% 
-   \pgfinterruptboundingbox 
-   \path (#3)--+(\pgf at xa,\pgf at ya)  coordinate (tkzPointResult);
-   \endpgfinterruptboundingbox                     
-\endgroup
-}% 
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-lua-points.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,166 +0,0 @@
- % tkz-obj-lua-points.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”. 
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-obj-lua-points.tex} 
-\makeatletter
-%<--------------------------------------------------------------------------->
-%                             init def point 
-%<--------------------------------------------------------------------------->
-%                            tkzDefPoint
-%<--------------------------------------------------------------------------->
-%                     macros complémentaires  pour def point
-%<--------------------------------------------------------------------------->
-\def\tkz at parsecoordinate#1{%
-\tkz at getseparator#1,\@nil
-\iftkz at polar 
-   \tkz at getfrompolar#1\@nil
-\else
-   \tkz at getfromcart#1\@nil
-\fi
-}
-\def\tkz at getseparator#1,#2\@nil{%
-\ifx\tkzempty#2\tkzempty%
-   \tkz at polartrue
-\else
-   \tkz at polarfalse
-\fi
-}      
-\def\tkz at getfrompolar#1:#2\@nil{%
-\edef\tkz at a{\fpeval{#1}}
-\edef\tkz at r{\fpeval{#2}}
-\xdef\tkz at polarrad{\tkz at r}
-\xdef\tkz at polarangle{\tkz at a}
-} 
-\def\tkz at getfromcart#1,#2\@nil{%
-\edef\tkz at x{\fpeval{#1}}
-\edef\tkz at y{\fpeval{#2}}
-\xdef\tkz at absc{\tkz at x}
-\xdef\tkz at ord{\tkz at y}
-}
-%<--------------------------------------------------------------------------->
-%           options pour point definition
-%<--------------------------------------------------------------------------->
-\pgfkeys{/tkzPt/.cd,  
-         polar/.is if       = tkz at pt@polar,
-         polar/.default     = true,
-         polar              = false  
-}
-%<--------------------------------------------------------------------------->
-%        tkz at ptStar  
-%<--------------------------------------------------------------------------->
-\def\tkz at ptStar[#1](#2,#3)#{%
-\pgfkeys{/tkzPt/.cd, polar     = false} 
-\pgfqkeys{/tkzPt}{#1}  
-\iftkz at pt@polar%
-  \edef\tkz at x{\fpeval{#3*cosd(#2)}}
-  \edef\tkz at y{\fpeval{#3*sind(#2)}}
-\else
-  \edef\tkz at x{\fpeval{#2}}
-  \edef\tkz at y{\fpeval{#3}}
-\fi
-\edef\tkzpt at xa{\tkz at Dec{(\tkz at x-(\tkz at init@xorigine))/\tkz at init@xstep}}
-\edef\tkzpt at ya{\tkz at Dec{(\tkz at y-(\tkz at init@yorigine))/\tkz at init@ystep}}
-\tkz at node
-}
-%<--------------------------------------------------------------------------->
-% la macro defpoint les coordonnées cartésiennes ou polaires sont  traitées
-% afin de pouvoir être adaptées avec les unités choisies
-%<--------------------------------------------------------------------------->
-\def\tkzDefPoint{\pgfutil at ifnextchar[{\tkz at DefPoint}{\tkz at DefPoint[]}}
-
-\def\tkz at DefPoint[#1](#2)#{% 
-\tkz at parsecoordinate{#2}
-\iftkz at polar
-   \tkz at ptStar[polar](\tkz at polarangle,\tkz at polarrad){tkz at coord@temp}
-\else  
-    \tkz at ptStar[](#2){tkz at coord@temp}
-\fi
-\tkz at DefPointEnd[#1]
-}% 
-\def\tkz at DefPointEnd[#1]#2{\coordinate[#1] (#2) at (tkz at coord@temp);}
-%<--------------------------------------------------------------------------->
-%                            tkzDefPoints
-%<--------------------------------------------------------------------------->
-\def\tkzDefPoints{\pgfutil at ifnextchar[{\tkz at DefPoints}{\tkz at DefPoints[]}}
-\def\tkz at DefPoints[#1]#2{%
-  \begingroup
-  \def\tkz at parenthesis@for at err{(}%
-  \def\tkz at maybe@parenthesis{#2}%
-  \ifx\tkz at maybe@parenthesis\tkz at parenthesis@for at err
-    \PackageError{tkz-base}{Syntax error  use {} instead of ()}{You need to use {} instead of ()}%
-    \expandafter\@firstoftwo
-  \else
-    \expandafter\@secondoftwo
-  \fi
-  {\tkz at absorb@bad at arg}% 
-  {\foreach \ptx/\pty/\name in {#2}{\tkzDefPoint[#1](\ptx,\pty){\name}}%
-   \endgroup}%
-}
-\def\tkz at absorb@bad at arg#1){\endgroup}
-%<--------------------------------------------------------------------------->
-\def\tkz at node#1{ \pgfinterruptboundingbox
-\path[coordinate](\tkzpt at xa,\tkzpt at ya) coordinate(#1);
- \endpgfinterruptboundingbox}  
-%<--------------------------------------------------------------------------->
-\def\tkzRenamePoint(#1)#2{\coordinate (#2) at (#1);}
-\def\tkz at RenamePointEnd[#1]#2{\coordinate[#1] (#2) at (\tkz at ax,\tkz at ay);}
-\def\tkzGetPoint#1{\coordinate  (#1) at (tkzPointResult);} 
-\def\tkzGetPoints#1#2{\coordinate  (#1) at (tkzFirstPointResult);
-                      \coordinate  (#2) at (tkzSecondPointResult);}
-\def\tkzGetFirstPoint#1{\coordinate  (#1) at (tkzFirstPointResult);}
-\def\tkzGetSecondPoint#1{\coordinate  (#1) at (tkzSecondPointResult);}
-\def\tkzGetThirdPoint#1{\coordinate  (#1) at (tkzThirdPointResult);}
-\def\tkzDefShiftPointCoord[#1](#2)#3{%
-                \begin{scope}[shift={(#1)}]
-                     \coordinate  (#3) at (#2);
-                \end{scope}
-                           }%
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------->
-%            tkzDefShiftPoint
-%<--------------------------------------------------------------------------->
-\def\tkzDefShiftPoint[#1](#2)#3{%
-   \tkz@@extractxy{#1}
-   \tkz at ax\pgf at x %
-   \tkz at ay\pgf at y %
-\begin{scope}[shift={(\tkz at ax,\tkz at ay)}]
-   \coordinate  (#3) at (#2);
-\end{scope}
-}
-%<--------------------------------------------------------------------------->
-%                    Coordonnées d'un point 
-%    result in #2x et #2y    #1 est le point et on récupère ses coordonnées
-% usage soit A un point \tkzGetPointCoord(A){V} alors \Vx = xA et \Vy = yA
-% en cm 
-% tkzGetPointCoord avec [#1] cm ou bien pt ?? todo
-%<--------------------------------------------------------------------------->
-\def\tkzGetPointCoord(#1)#2{%
-\begingroup
-   \pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
-   \pgfmathparse{\pgf at sys@tonumber{\pgf at x}/28.45274}
-   \global\let\tkzresultx\pgfmathresult
-   \global\expandafter\edef\csname #2x\endcsname{\tkzresultx}% 
-   \pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
-   \pgfmathparse{\pgf at sys@tonumber{\pgf at y}/28.45274}
-   \global\let\tkzresulty\pgfmathresult
-   \global\expandafter\edef\csname #2y\endcsname{\tkzresulty}
-\endgroup
-}  
-\def\tkz@@extractxy#1{%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}} 
-}
-\let\tkzGetPointxy\tkzGetPointCoord
-\makeatother
-\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-obj-eu-BB.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-obj-eu-BB.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>
 \def\tkzShowBB{\pgfutil at ifnextchar[{\tkz at ShowBB}{\tkz at ShowBB[]}} 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-angles.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-angles.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %<--------------------------------------------------------------------------–>

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-base.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-base.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 \global\let\tkz at tmp@xa\tkz at init@xmin% modif  2016

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-tools-eu-colors}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-tools-eu-colors}  
 \makeatletter
 
 %<------  Initialisation of the colors with tkzSetUpColors  -----------------> 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -13,9 +13,9 @@
 % The Current Maintainer of this work is Alain Matthes.
 %  utf8 encoding
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-intersections.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-intersections.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                 intersection  de deux lignes

Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,102 @@
+% tkz-tools-lua-angles.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”. 
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-lua-angles.tex}   
+\makeatletter
+\def\tkzmathrotatepointaround#1#2#3{%
+  \pgf at process{%
+    \pgf at process{#1}%
+    \pgf at xc=\pgf at x%
+    \pgf at yc=\pgf at y%
+    \pgf at process{#2}%
+    \pgf at xa\pgf at x%
+    \pgf at ya\pgf at y%
+    \pgf at xb\pgf at x%
+    \pgf at yb\pgf at y%
+    \pgf at x=\pgf at xc%
+    \pgf at y=\pgf at yc%
+    \advance\pgf at x-\pgf at xa%
+    \advance\pgf at y-\pgf at ya%
+    \pgfmathsetmacro\angle{#3}%
+    \edef\sineangle{\tkz at Dec{\tkz at Sin{\tkz at Rad{\angle}}}}%
+    \edef\cosineangle{\tkz at Dec{\tkz at Cos{\tkz at Rad{\angle}}}}%
+    \pgf at xa\cosineangle\pgf at x%
+    \advance\pgf at xa-\sineangle\pgf at y%
+    \pgf at ya\sineangle\pgf at x%
+    \advance\pgf at ya\cosineangle\pgf at y%
+    \pgf at x\pgf at xb%
+    \pgf at y\pgf at yb%
+    \advance\pgf at x\pgf at xa%
+    \advance\pgf at y\pgf at ya%
+  }%
+}
+
+%<-------------------------------------------------------------------------->
+%                           Angles
+%<-------------------------------------------------------------------------->
+\def\tkzmathanglebetweenpoints#1#2{
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}%
+\edef\tkzax{\strip at pt\pgf at x}%
+\edef\tkzay{\strip at pt\pgf at y}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}%
+\edef\tkzbx{\strip at pt\pgf at x}%
+\edef\tkzby{\strip at pt\pgf at y}%
+\edef\tkz at tmp{\tkz at Angle{\tkzax}{\tkzay}{\tkzbx}{\tkzby}}
+\edef\pgfmathresult{\tkz at Dec{\tkz at Round{\tkz at tmp}{2}}}
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224  
+% \tkzGetAngle strange behavior
+% defines \tkz at FirstAngle and \tkz at SecondAngle sens  trigo
+%<--------------------------------------------------------------------------–>
+
+\def\tkzNormalizeAngle(#1,#2){%
+\directlua{angleA, angleB = normalize(#1,#2)
+token.set_macro("tkz at FirstAngle", angleA)
+token.set_macro("tkz at SecondAngle", angleB)
+}}
+%<--------------------------------------------------------------------------–>
+%                          Angle 
+% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
+%<--------------------------------------------------------------------------–>
+\def\tkzFindSlopeAngle(#1,#2){%
+\begingroup
+  \tkzmathanglebetweenpoints{#1}{#2}
+ \global\let\tkzAngleResult\pgfmathresult  
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                          Angle  avec trois nodes
+%<--------------------------------------------------------------------------–>
+\def\tkzFindAngle(#1,#2,#3){% new code 2016
+\begingroup
+    \tkzFindSlopeAngle(#2,#1)\tkzGetAngle{tkz at FirstAngle}
+    \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at SecondAngle}
+    \tkzNormalizeAngle(\tkz at FirstAngle,\tkz at SecondAngle)
+    \edef\tkz at Angle{\fpeval{\tkz at SecondAngle-\tkz at FirstAngle}}
+    \global\let\tkzAngleResult\tkz at Angle
+\endgroup
+}
+
+%<--------------------------------------------------------------------------–>
+% Find angle
+%<--------------------------------------------------------------------------–>
+\def\tkzGetAngle#1{%
+  \global\expandafter\edef\csname #1\endcsname{\tkzAngleResult}
+}  
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-angles.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,89 @@
+% tkz-tools-lua-base.tex    
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”. 
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-lua-base.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+\global\let\tkz at tmp@xa\tkz at init@xmin% modif  2016
+\global\let\tkz at tmp@xb\tkz at init@xmax% modif  2016
+\global\let\tkz at tmp@ya\tkz at init@ymin% modif  2016
+\global\let\tkz at tmp@yb\tkz at init@ymax% modif  2016 
+%<--------------------------------------------------------------------------–>
+\pgfkeys{
+         /tkzInit/.cd,
+         xmin/.store in     = \tkz at init@xmin,
+         xmax/.store in     = \tkz at init@xmax,
+         xstep/.store in    = \tkz at init@xstep,
+         ymin/.store in     = \tkz at init@ymin,
+         ymax/.store in     = \tkz at init@ymax,
+         ystep/.store in    = \tkz at init@ystep, 
+         NO/.is if          = tkz at init@NO,
+         NO/.default        = true, 
+         xmin               = 0,
+         xmax               = 10,
+         xstep              = 1,
+         ymin               = 0,
+         ymax               = 10,
+         ystep              = 1,
+         NO                 = false 
+         } 
+  
+\def\tkzInit{\pgfutil at ifnextchar[{\tkz at Init}{\tkz at Init[]}} 
+\def\tkz at Init[#1]{%
+    \pgfqkeys{/tkzInit}{#1}
+  \ifx\tkzfctloaded\undefined
+    \else   
+      \tkz at tkzf@fct=0 %  only if tkz-fct loaded
+   \fi   
+  \xdef\tkz at init@xorigine{0}
+  \xdef\tkz at init@yorigine{0}
+  \edef\@xsgmin{\fpeval{sign(\tkz at init@xmin)}}
+  \edef\@xsgmax{\fpeval{sign(\tkz at init@xmax)}}
+  \edef\@ysgmin{\fpeval{sign(\tkz at init@ymin)}}
+  \edef\@ysgmax{\fpeval{sign(\tkz at init@ymax)}}
+  \let\tkz at tmp@xa\tkz at init@xmin %modif 2016
+  \let\tkz at tmp@xb\tkz at init@xmax %modif 2016
+  \let\tkz at tmp@ya\tkz at init@ymin %modif 2016
+  \let\tkz at tmp@yb\tkz at init@ymax %modif 2016
+  \tkz at init@NOfalse                   
+  \ifx\@xsgmin\@xsgmax \tkz at init@NOtrue \fi
+  \ifx\@ysgmin\@ysgmax \tkz at init@NOtrue \fi
+  \iftkz at init@NO%
+  \ifx\@xsgmin\@xsgmax
+      \edef\tkz at init@xmax{\tkz at Dec{\tkz at init@xmax-(\tkz at init@xmin)}}
+      \edef\tkz at init@xorigine{\tkz at init@xmin}
+      \edef\tkz at init@xmin{0}
+  \fi
+  \ifx\@ysgmin\@ysgmax
+      \edef\tkz at init@ymax{\tkz at Dec{\tkz at init@ymax-(\tkz at init@ymin)}}
+      \edef\tkz at init@yorigine{\tkz at init@ymin}
+      \edef\tkz at init@ymin{0}
+  \fi
+  \fi
+  \edef\tkz at xa{\tkz at Dec{\tkz at init@xmin/\tkz at init@xstep}}
+  \edef\tkz at xb{\tkz at Dec{\tkz at init@xmax/\tkz at init@xstep}}
+  \edef\tkz at ya{\tkz at Dec{\tkz at init@ymin/\tkz at init@ystep}}
+  \edef\tkz at yb{\tkz at Dec{\tkz at init@ymax/\tkz at init@ystep}}
+  \tkz at getdecimal{\tkz at init@xstep} % amélioration nb dec et integer
+  \xdef\tkz at init@xdec{\number\c at pgfmath@countb}
+  \tkz at getdecimal{\tkz at init@ystep}
+  \xdef\tkz at init@ydec{\number\c at pgfmath@countb}
+}%
+\def\tkzAddName{\pgfutil at ifnextchar[{\tkz at AddName}{\tkz at AddName[]}} 
+\def\tkz at AddName[#1]#2{%
+\node[above left,#1] at (\pgf at path@lastx,\pgf at path@lasty){#2};  
+}% 
+%<--------------------------------------------------------------------------–>
+\makeatother 
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-base.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,525 @@
+% tkz-tools-lua-intersections.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status “maintained”.
+% 
+% The Current Maintainer of this work is Alain Matthes.
+%  utf8 encoding
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-lua-intersections.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%                 intersection  de deux lignes
+%<--------------------------------------------------------------------------–>
+\def\tkzInterLL(#1,#2)(#3,#4){% méthode avec xfp
+\tkz at InterLL(#1,#2)(#3,#4){tkzPointResult}
+}
+
+\def\tkz at InterLL(#1,#2)(#3,#4)#5{%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}%
+\tkz at ax\pgf at x%
+\tkz at ay\pgf at y%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
+\tkz at bx\pgf at x%
+\tkz at by\pgf at y%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}%
+\tkz at cx\pgf at x%
+\tkz at cy\pgf at y%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}%
+\tkz at dx\pgf at x%
+\tkz at dy\pgf at y%
+\edef\tkzax{\strip at pt\tkz at ax}%
+\edef\tkzay{\strip at pt\tkz at ay}%
+\edef\tkzbx{\strip at pt\tkz at bx}%
+\edef\tkzby{\strip at pt\tkz at by}%
+\edef\tkzcx{\strip at pt\tkz at cx}%
+\edef\tkzcy{\strip at pt\tkz at cy}%
+\edef\tkzdx{\strip at pt\tkz at dx}%
+\edef\tkzdy{\strip at pt\tkz at dy}%
+\edef\tkz at deltax{\tkz at Dec{(\tkzax-(\tkzbx))/(28.45274)}}
+\edef\tkz at deltaxx{\tkz at Dec{(\tkzcx-(\tkzdx))/(28.45274)}}
+\edef\tkz at deltay{\tkz at Dec{(\tkzay-(\tkzby))/(28.45274)}}
+\edef\tkz at deltayy{\tkz at Dec{(\tkzcy-(\tkzdy))/(28.45274)}}
+\edef\tkz at deltaxy{\tkz at Dec{((\tkzax*\tkzby)-(\tkzay*\tkzbx))/(809.55841)}}
+\edef\tkz at deltaxxyy{\tkz at Dec{((\tkzcx*\tkzdy)-(\tkzcy*\tkzdx))/(809.55841)}}
+\edef\tkz at div{\tkz at Dec{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
+\edef\tkz at numx{\tkz at Dec{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
+\edef\tkz at numy{\tkz at Dec{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
+\edef\tkz at xs{\tkz at Dec{\tkz at numx/\tkz at div}}
+\edef\tkz at ys{\tkz at Dec{\tkz at numy/\tkz at div}}
+\edef\tkz at xs{\tkz at Round{\tkz at xs}{5}}
+\edef\tkz at ys{\tkz at Round{\tkz at ys}{5}}
+\path[coordinate](\tkz at xs,\tkz at ys) coordinate (#5);
+}
+
+
+% méthode with coordinates
+\def\tkzInterLLxy(#1,#2,#3,#4)(#5,#6,#7,#8){%
+%\path (intersection of #1--#2 and #3--#4) coordinate(#5);%
+\tkz at ax#1%
+\tkz at ay#2%
+\tkz at bx#3%
+\tkz at by#4%
+\tkz at cx#5%
+\tkz at cy#6%
+\tkz at dx#7%
+\tkz at dy#8%
+\edef\tkzax{\strip at pt\tkz at ax}%
+\edef\tkzay{\strip at pt\tkz at ay}%
+\edef\tkzbx{\strip at pt\tkz at bx}%
+\edef\tkzby{\strip at pt\tkz at by}%
+\edef\tkzcx{\strip at pt\tkz at cx}%
+\edef\tkzcy{\strip at pt\tkz at cy}%
+\edef\tkzdx{\strip at pt\tkz at dx}%
+\edef\tkzdy{\strip at pt\tkz at dy}%
+\edef\tkz at deltax{\tkz at Dec{(\tkzax-(\tkzbx))/(28.45274)}}
+\edef\tkz at deltaxx{\tkz at Dec{(\tkzcx-(\tkzdx))/(28.45274)}}
+\edef\tkz at deltay{\tkz at Dec{(\tkzay-(\tkzby))/(28.45274)}}
+\edef\tkz at deltayy{\tkz at Dec{(\tkzcy-(\tkzdy))/(28.45274)}}
+\edef\tkz at deltaxy{\tkz at Dec{((\tkzax*\tkzby)-(\tkzay*\tkzbx))/(809.55841)}}
+\edef\tkz at deltaxxyy{\tkz at Dec{((\tkzcx*\tkzdy)-(\tkzcy*\tkzdx))/(809.55841)}}
+\edef\tkz at div{\tkz at Dec{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
+\edef\tkz at numx{\tkz at Dec{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
+\edef\tkz at numy{\tkz at Dec{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
+\edef\tkz at xs{\tkz at Dec{\tkz at numx/\tkz at div}}
+\edef\tkz at ys{\tkz at Dec{\tkz at numy/\tkz at div}}
+\edef\tkz at xs{\tkz at Round{\tkz at xs}{5}}
+\edef\tkz at ys{\tkz at Round{\tkz at ys}{5}}
+\path[coordinate](\tkz at xs,\tkz at ys) coordinate (tkzPointResult);
+}
+
+%<--------------------------------------------------------------------------–>
+%                 intersection  de Ligne Cercle rayon connu
+%<--------------------------------------------------------------------------–>
+% /*
+%    Calculate the intersection of a ray and a sphere
+%    The line segment is defined from p1 to p2
+%    The sphere is of radius r and centered at sc
+%    There are potentially two points of intersection given by
+%    p = p1 + mu1 (p2 - p1)
+%    p = p1 + mu2 (p2 - p1)
+%    Return FALSE if the ray doesn't intersect the sphere.
+% */
+% int RaySphere(XYZ p1,XYZ p2,XYZ sc,double r,double *mu1,double *mu2)
+% {
+%    double a,b,c;
+%    double bb4ac;
+%    XYZ dp;
+% 
+%    dp.x = p2.x - p1.x;
+%    dp.y = p2.y - p1.y;
+%    dp.z = p2.z - p1.z;
+%    a = dp.x * dp.x + dp.y * dp.y + dp.z * dp.z;
+%    b = 2 * (dp.x * (p1.x - sc.x) + dp.y * (p1.y - sc.y) + dp.z * (p1.z - sc.z));
+%    c = sc.x * sc.x + sc.y * sc.y + sc.z * sc.z;
+%    c += p1.x * p1.x + p1.y * p1.y + p1.z * p1.z;
+%    c -= 2 * (sc.x * p1.x + sc.y * p1.y + sc.z * p1.z);
+%    c -= r * r;
+%    bb4ac = b * b - 4 * a * c;
+%    if (ABS(a) < EPS || bb4ac < 0) {
+%       *mu1 = 0;
+%       *mu2 = 0;
+%       return(FALSE);
+%    }
+% 
+%    *mu1 = (-b + sqrt(bb4ac)) / (2 * a);
+%    *mu2 = (-b - sqrt(bb4ac)) / (2 * a);
+% 
+%    return(TRUE);
+% }
+%<---------- test ------------------------------------------------------–>
+\def\tkzTestInterLC(#1,#2)(#3,#4){%
+\begingroup
+\tkz at Projection(#1,#2)(#3){tkz at pth}% distance centre à la ligne
+\tkz@@CalcLength(#3,tkz at pth){tkz at mathLen}%  
+\tkz@@CalcLength(#3,#4){tkzLengthResult}%calcul du rayon
+\ifdim\tkz at mathLen pt>\tkzLengthResult pt\relax%
+\global\tkzFlagLCfalse
+\else
+\global\tkzFlagLCtrue
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkz at numlc{0}
+\pgfkeys{/linecircle/.cd,
+  node/.code               = \def\tkz at numlc{0},
+  R/.code                  = \def\tkz at numlc{1}, 
+  with nodes/.code         = \def\tkz at numlc{2},
+  common/.store in         = \tkz at common,
+  common                   = {},
+  near/.is if              =  tkz at near,
+  near/.default            =  true,
+  near                     =  false,
+  next to/.store in        = \tkz at nextto,
+  next to/.initial         = {},
+  next/.default            = {},
+  next to                  = {},
+  next to/.value required,
+  node  
+ }
+%<--------------------------------------------------------------------------–>
+\def\tkzInterLC{\pgfutil at ifnextchar[{\tkz at InterLC}{\tkz at InterLC[]}}
+\def\tkz at InterLC[#1](#2,#3)(#4,#5){%
+\begingroup      
+\pgfqkeys{/linecircle}{#1}
+ \pgfinterruptboundingbox 
+\ifcase\tkz at numlc%
+    % first case 0
+  \tkz@@CalcLength(#4,#5){tkzLengthResult}
+  \tkzInterLCR(#2,#3)(#4,\tkzLengthResult pt){tkzFirstPointResult}%
+                         {tkzSecondPointResult}
+\or% 1
+    \tkzInterLCR(#2,#3)(#4,#5 cm){tkzFirstPointResult}
+                   {tkzSecondPointResult}%
+\or% 2
+    \tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}%
+                        {tkzSecondPointResult}%
+\fi
+\iftkz at near
+  \tkz@@CalcLength(#2,tkzFirstPointResult){tkzLengthFirst}
+  \tkz@@CalcLength(#2,tkzSecondPointResult){tkzLengthSecond}
+      \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax%
+      \else
+       \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+       \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+       \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+      \fi
+\else
+    \ifx\tkz at common\tkzutil at empty 
+      \ifx\tkz at nextto\tkzutil at empty 
+         \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4)   
+         \tkzGetAngle{tkz at an}
+          \ifdim\tkz at an pt<180 pt\relax%
+          \else
+           \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+           \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+           \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+          \fi
+      \else
+         \tkz@@CalcLength(\tkz at nextto,tkzFirstPointResult){tkzLengthFirst}
+         \tkz@@CalcLength(\tkz at nextto,tkzSecondPointResult){tkzLengthSecond}
+             \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax%
+             \else
+              \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+              \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+              \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+             \fi
+       \fi
+    \else 
+         \tkz@@CalcLength(\tkz at common,tkzSecondPointResult){tkz at mathLen}
+         \ifdim\tkz at mathLen pt<1pt\relax%
+         \else
+          \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+          \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+          \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+         \fi
+     \fi
+\fi%near
+\endpgfinterruptboundingbox    
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzInterLCR(#1,#2)(#3,#4)#5#6{%
+\begingroup
+\tkz at radi=#4%
+\tkz@@extractxy{#3}
+\tkz at bx =\pgf at x\relax%
+\tkz at by =\pgf at y\relax%
+\tkz at Projection(#1,#2)(#3){tkz at pth}
+\tkz@@CalcLength(#3,tkz at pth){tkz at mathLen}
+ \ifdim\tkz at mathLen pt<0.05pt\relax%
+        \pgfpointdiff{\pgfpointanchor{#1}{center}}%
+                     {\pgfpointanchor{#2}{center}}%
+        \tkz at ax=\pgf at x%
+        \tkz at ay=\pgf at y%
+        \pgfpointborderellipse{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                              {\pgfpoint{\tkz at radi}{\tkz at radi}}
+        \tkz at ax=\pgf at x\relax%
+        \tkz at ay=\pgf at y\relax%
+        \advance\tkz at bx by\tkz at ax\relax%
+        \advance\tkz at by by\tkz at ay\relax%
+        \pgfcoordinate{#6}{\pgfqpoint{\tkz at bx}{\tkz at by}}
+        \tkzCSym(#3)(#6){#5}
+  \else
+       \edef\pgfmathresult{\fpeval{\tkz at mathLen/\tkz at radi}}
+      % \edef\tkz at angle{\fpeval{acosd(\pgfmathresult)}}
+        \pgfmathacos@{\pgfmathresult}%
+        \let\tkz at angle\pgfmathresult%
+        \pgfpointdiff{\pgfpointanchor{#3}{center}}%
+                     {\pgfpointanchor{tkz at pth}{center}}%
+        \tkz at ax=\pgf at x%
+        \tkz at ay=\pgf at y%
+        \pgfpointborderellipse{\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                              {\pgfpoint{\tkz at radi}{\tkz at radi}}
+        \tkz at ax =\pgf at x\relax%
+        \tkz at ay =\pgf at y\relax%
+        \advance\tkz at bx by\tkz at ax\relax%
+        \advance\tkz at by by\tkz at ay\relax%
+        \tkz@@extractxy{#3}
+        \tkz at ax =\pgf at x\relax%
+        \tkz at ay =\pgf at y\relax%
+        \tkz@@extractxy{tkz at pth}
+        \pgfmathrotatepointaround{\pgfpoint{\tkz at bx}{\tkz at by}}%
+                                 {\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                                 {\tkz at angle}
+         \pgfcoordinate{#5}{\pgfqpoint{\pgf at x}{\pgf at y}}
+        \pgfmathrotatepointaround{\pgfpoint{\tkz at bx}{\tkz at by}}%
+                                 {\pgfpoint{\tkz at ax}{\tkz at ay}}%
+                                 {-\tkz at angle}
+  \pgfcoordinate{#6}{\pgfqpoint{\pgf at x}{\pgf at y}}
+
+\fi   
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                 intersection  de Ligne Cercle 
+% #4 center #5 point sur le cercle
+%<--------------------------------------------------------------------------–>
+% \def\tkzInterLC(#1,#2)(#3,#4)#5#6{%
+%     \begingroup
+%     \tkz@@CalcLength(#3,#4){tkz at rad}
+%     \tkzInterLCR(#1,#2)(#3,\tkz at rad pt){#5}{#6}
+% \endgroup
+% } 
+%<--------------------------------------------------------------------------–>
+%                 intersection  de Ligne Cercle rayon inconnu
+%<--------------------------------------------------------------------------–>
+\def\tkzInterLCWithNodes(#1,#2)(#3,#4,#5)#6#7{%
+\begingroup
+    \tkz@@CalcLength(#4,#5){tkz at radius}
+    \tkzInterLCR(#1,#2)(#3,\tkz at radius pt){#6}{#7}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%  Intersection of 2 circles
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% méthode
+% /* circle_circle_intersection() *
+%  * Determine the points where 2 circles in a common plane intersect.
+%  *
+%  * int circle_circle_intersection(
+%  *                                // center and radius of 1st circle
+%  *                                double x0, double y0, double r0,
+%  *                                // center and radius of 2nd circle
+%  *                                double x1, double y1, double r1,
+%  *                                // 1st intersection point      
+%  *                                // 2nd intersection point
+%  *
+%  * This is a public domain work. 3/26/2005 Tim Voght
+%  *
+% int circle_circle_intersection(double x0, double y0, double r0,
+%                                double x1, double y1, double r1,
+%                                double *xi, double *yi,
+%                                double *xi_prime, double *yi_prime)
+% {
+%   double a, dx, dy, d, h, rx, ry;
+%   double x2, y2;
+% 
+%   /* dx and dy are the vertical and horizontal distances between
+%    * the circle centers.
+%    */
+%   dx = x1 - x0;
+%   dy = y1 - y0;
+% 
+%   /* Determine the straight-line distance between the centers. */
+%   //d = sqrt((dy*dy) + (dx*dx));
+%   d = hypot(dx,dy); // Suggested by Keith Briggs
+% 
+%   /* Check for solvability. */
+%   if (d > (r0 + r1))
+%   {
+%     /* no solution. circles do not intersect. */
+%     return 0;
+%   }
+%   if (d < fabs(r0 - r1))
+%   {
+%     /* no solution. one circle is contained in the other */
+%     return 0;
+%   }
+% 
+%   /* 'point 2' is the point where the line through the circle
+%    * intersection points crosses the line between the circle
+%    * centers.  
+%    */
+% 
+%   /* Determine the distance from point 0 to point 2. */
+%   a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ;
+% 
+%   /* Determine the coordinates of point 2. */
+%   x2 = x0 + (dx * a/d);
+%   y2 = y0 + (dy * a/d);
+% 
+%   /* Determine the distance from point 2 to either of the
+%    * intersection points.
+%    */
+%   h = sqrt((r0*r0) - (a*a));
+% 
+%   /* Now determine the offsets of the intersection points from
+%    * point 2.
+%    */
+%   rx = -dy * (h/d);
+%   ry = dx * (h/d);
+% 
+%   /* Determine the absolute intersection points. */
+%   *xi = x2 + rx;
+%   *xi_prime = x2 - rx;
+%   *yi = y2 + ry;
+%   *yi_prime = y2 - ry;
+% 
+%   return 1;
+% } 
+%<--------------------------------------------------------------------------–>
+%    Intersection de deux cercles  
+%<--------------------------------------------------------------------------–>
+%<---------- test ------------------------------------------------------–>
+% test avec des nodes  R-r <= d <= R+r
+\def\tkzTestInterCC(#1,#2)(#3,#4){%
+\begingroup
+\tkz@@CalcLength(#1,#3){tkz at mathLen}% distance entre les centres  
+\tkz@@CalcLength(#2,#1){tkz at rA}%calcul du rayon
+\tkz@@CalcLength(#4,#3){tkz at rB}%calcul du rayon
+% test if d <= rA + rB ?
+\edef\tkz at rS{\fpeval{\tkz at rA+\tkz at rB}}
+\ifdim\tkz at mathLen pt > \tkz at rS pt\relax%
+\global\tkzFlagCCfalse
+\else
+% now test if d>= rA - rB or rB-rA
+  \ifdim \tkz at rA pt >  \tkz at rB pt\relax%
+       \edef\tkz at rD{\fpeval{\tkz at rA-\tkz at rB}}
+   \else
+       \edef\tkz at rD{\fpeval{\tkz at rB-\tkz at rA}}
+   \fi
+\ifdim  \tkz at rD pt > \tkz at mathLen pt\relax%
+ \global\tkzFlagCCfalse
+\else
+\global\tkzFlagCCtrue
+\fi
+\fi
+\endgroup
+}
+
+\def\tkz at numcc{0}
+\pgfkeys{
+/circlecircle/.cd,
+  node/.code           = \def\tkz at numcc{0},
+  R/.code              = \def\tkz at numcc{1},
+  with nodes/.code     = \def\tkz at numcc{2},
+  common/.store in     = \tkz at common,
+  common               = {},
+  node
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzInterCC{\pgfutil at ifnextchar[{\tkz at InterCC}{\tkz at InterCC[]}}
+\def\tkz at InterCC[#1](#2,#3)(#4,#5){%
+\begingroup      
+\pgfqkeys{/circlecircle}{#1}
+\ifcase\tkz at numcc%
+ % first case 0 
+  \tkz at save@length 
+  \tkz@@CalcLengthcm(#2,#3){tkz at rayA}
+  \tkz@@CalcLengthcm(#4,#5){tkz at rayB}
+   \tkz at restore@length
+\tkzInterCCR(#2,\tkz at rayA)(#4,\tkz at rayB){tkzFirstPointResult}{tkzSecondPointResult}
+  \or% 1
+ \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
+  \or%2
+ \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
+\fi
+ \ifx\tkz at common\tkzutil at empty
+ \tkzFindAngle(#2,tkzFirstPointResult,#4)   \tkzGetAngle{tkz at an}
+ \ifdim\tkz at an pt<180 pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+  \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
+ \else
+\tkz@@CalcLength(\tkz at common,tkzSecondPointResult){tkz at mathLen}
+ \ifdim\tkz at mathLen pt<0.05pt\relax%
+ \else
+  \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+   \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+  \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+  \fi
+  \fi
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+
+\def\tkzInterCCR(#1,#2)(#3,#4)#5#6{%
+\begingroup
+\pgfinterruptboundingbox  
+\tkz at save@length  
+\tkz@@CalcLength(#1,#3){tkz at dd}
+\tkz at restore@length 
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
+\tkz at ax\pgf at x %
+\tkz at ay\pgf at y %
+\edef\tkzcax{\strip at pt\tkz at ax}%
+\edef\tkzcay{\strip at pt\tkz at ay}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}
+\tkz at bx\pgf at x %
+\tkz at by\pgf at y %
+\edef\tkzcbx{\strip at pt\tkz at bx}%
+\edef\tkzcby{\strip at pt\tkz at by}%
+\tkz at cx#2cm %
+\tkz at cy#4cm %
+\edef\tkzccx{\strip at pt\tkz at cx}%
+\edef\tkzccy{\strip at pt\tkz at cy}%
+\edef\tkz at aa{\tkz at Dec{((\tkzccx+\tkzccy)/(2*\tkz at dd))*(\tkzccx-(\tkzccy))+\tkz at dd/2}}
+\edef\tkz at xx{\tkz at Dec{\tkzcax+\tkz at aa/\tkz at dd*(\tkzcbx - (\tkzcax))}}
+\edef\tkz at yy{\tkz at Dec{\tkzcay+\tkz at aa/\tkz at dd*(\tkzcby - (\tkzcay))}}
+\path[coordinate](\tkz at xx pt,\tkz at yy pt) coordinate (tkzRadialCenter);
+\edef\tkz at hh{\tkz at Abs{(\tkzccx+\tkz at aa)*(\tkzccx-(\tkz at aa))}}
+\edef\tkz at hh{\tkz at Dec{\tkz at Sqrt{\tkz at hh}}}
+ \edef\tkz at rx{\tkz at Dec{\tkz at hh / \tkz at dd * (\tkzcay - (\tkzcby))}}
+\edef\tkz at ry{\tkz at Dec{\tkz at hh / \tkz at dd * (\tkzcbx - (\tkzcax))}}
+\edef\tkz at xs{\tkz at Dec{\tkz at xx + \tkz at rx}}
+\edef\tkz at ys{\tkz at Dec{\tkz at yy + \tkz at ry}}
+\path[coordinate](\tkz at xs pt,\tkz at ys pt) coordinate (#5);
+\edef\tkz at xss{\tkz at Dec{\tkz at xx - \tkz at rx}}
+\edef\tkz at yss{\tkz at Dec{\tkz at yy - \tkz at ry}}
+\path[coordinate](\tkz at xss pt,\tkz at yss pt) coordinate (#6);
+\endpgfinterruptboundingbox   
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+% #2 node #3 node #4 node #5 node
+% \def\tkzInterCC(#1,#2)(#3,#4)#5#6{%
+% \begingroup
+%   \tkz@@CalcLength(#1,#2){tkz at rayA}
+%   \tkz@@CalcLength(#3,#4){tkz at rayB}
+%   \tkzInterCCR(#1,\tkz at rayA pt)(#3,\tkz at rayB pt){#5}{#6}
+% \endgroup
+% }  
+%<--------------------------------------------------------------------------–>
+%    Intersection de deux cercles   Avec deux points
+%<--------------------------------------------------------------------------–>
+% la première variante devrait être #2 #3  avec #4 #5
+\def\tkzInterCCWithNodes(#1,#2,#3)(#4,#5,#6)#7#8{%
+\begingroup
+  \tkz@@CalcLengthcm(#2,#3){tkz at rayA}
+  \tkz@@CalcLengthcm(#5,#6){tkz at rayB}
+  \tkzInterCCR(#1,\tkz at rayA)(#4,\tkz at rayB){#7}{#8}
+\endgroup
+} 
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-intersections.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -0,0 +1,310 @@
+% tkz-tools-lua-math.tex
+% Copyright 2023  Alain Matthes
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%   http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+% This work has the LPPL maintenance status “maintained”.
+% The Current Maintainer of this work is Alain Matthes.
+
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-lua-math.tex}     
+\makeatletter
+%<-------------------------------------------------------------------------->
+%<-------------------------------------------------------------------------->
+%                           Lengths
+%<-------------------------------------------------------------------------->
+%<-------------------------------------------------------------------------->
+
+\begin{luacode*} 
+  function normalize(angleA,angleB)       
+      if angleA > 0 then
+       if angleA > angleB then
+          angleA = angleA - 360
+          end
+      else
+     if angleA > angleB then
+          angleB = angleB + 360
+        end
+      end
+      return angleA, angleB
+  end
+  
+  function math.angle(x1, y1, x2, y2)
+      local a = math.deg(math.atan(y2 - y1, x2 - x1))
+      if a < 0 then
+          return a + 360
+      else
+          return a
+      end
+  end
+  
+  function tkzop(...)
+  inf = math.huge
+  return ...
+end
+ 
+function tkzround(nb, ND)
+  local p = 10^(ND or 0)
+   return math.floor(nb * p + 0.5) / p
+end   
+\end{luacode*}
+
+\def\tkz at Dec#1{%
+     \directlua{tex.print(string.format('\@percentchar.6f',#1))}
+     }
+\def\tkz at Op#1{\directlua{tex.sprint(tostring(tkzop(#1)))}}
+\def\tkz at Log#1{\directlua{tex.sprint(math.log(#1))}}
+\def\tkz at Exp#1{\directlua{tex.sprint(math.exp(#1))}}
+\def\tkz at Sqrt#1{\directlua{tex.sprint(math.sqrt(#1))}}
+\def\tkz at Abs#1{\directlua{tex.sprint(math.abs(#1))}}
+\def\tkz at Pi{\directlua{tex.sprint(math.pi)}}
+\def\tkz at Cos#1{\directlua{tex.sprint(math.cos(#1))}}
+\def\tkz at Sin#1{\directlua{tex.sprint(tostring(math.sin(#1)))}}
+\def\tkz at Tan#1{\directlua{tex.sprint(math.tan(#1))}}
+\def\tkz at Rad#1{\directlua{tex.sprint(math.rad(#1))}}
+\def\tkz at Acos#1{\directlua{tex.sprint(math.acos(#1))}}
+\def\tkz at Asin#1{\directlua{tex.sprint(math.asin(#1))}}
+\def\tkz at Atan#1{\directlua{tex.sprint(math.atan(#1))}}
+\def\tkz at Round#1#2{\directlua{tex.sprint(tostring(tkzround(#1,#2)))}}
+\def\tkz at Angle#1#2#3#4{\directlua{tex.sprint(math.angle(#1,#2,#3,#4))}}
+\def\tkz at Ceil#1{\directlua{tex.sprint(math.ceil(#1))}}
+\def\tkz at Floor#1{\directlua{tex.sprint(math.floor(#1))}}
+\def\tkz at Huge{\directlua{tex.sprint(math.huge)}}
+\def\tkz at Max#1{\directlua{tex.sprint(math.max(#1))}}
+\def\tkz at Min#1{\directlua{tex.sprint(math.min(#1))}}
+\def\tkz at Random#1{\directlua{tex.sprint(math.random(#1))}}
+\def\tkz at veclen#1#2{%
+  \directlua{%
+    tex.print(string.format('\@percentchar.6f',math.sqrt((#1)^2+(#2)^2)))%
+  }%
+}
+\let\tkzSqrt\tkz at Sqrt
+\let\tkzPi\tkz at Pi
+\let\tkzExp\tkz at Exp
+\let\tkzLog\tkz at Log
+\let\tkzSin\tkz at Sin
+\let\tkzCos\tkz at Cos
+
+%  \tkzpointnormalised    normalise un point A-->A' tq ||v(OA')=1||
+% example
+% \tkzpointnormalised{%
+% \pgfpointdiff{\pgfpointanchor{A}{center}}
+%              {\pgfpointanchor{B}{center}}}
+
+% or
+% \pgf at x=1 cm
+% \pgf at y=12 cm 
+% \tkzpointnormalised{}
+%<--------------------------------------------------------------------------
+\def\tkzpointnormalised#1{%
+\pgf at process{#1}%
+\pgf at xa=\pgf at x%
+\pgf at ya=\pgf at y%
+\edef\tkz at temp@xa{\strip at pt\pgf at xa}%
+\edef\tkz at temp@ya{\strip at pt\pgf at ya}%
+\edef\tkz at den{\tkz at veclen{\tkz at temp@xa}{\tkz at temp@ya}}
+\edef\tkz at coordx{\tkz at Op{\tkz at temp@xa/\tkz at den}}
+\edef\tkz at coordx{\tkz at Dec{\tkz at Round{\tkz at coordx}{5}}}
+\edef\tkz at coordy{\tkz at Op{\tkz at temp@ya/\tkz at den}}
+\edef\tkz at coordy{\tkz at Dec{\tkz at Round{\tkz at coordy}{5}}}
+\pgf at x = \tkz at coordx pt
+\pgf at y = \tkz at coordy pt
+}
+%\def\tkz at Dec#1{\directlua{tex.print(string.format('\@percentchar.12f',#1))}}
+%<-------------------------------------------------------------------------->
+% restaure and save length
+\def\tkz at save@length{\global\let\tkz at temp@length\tkzLengthResult}%
+\def\tkz at restore@length{\global\let\tkzLengthResult\tkz at temp@length }% 
+%<-------------------------------------------------------------------------->
+%    \tkzCalcLength      Distance entre deux points en pt ou en cm  avec xfp 
+% \veclen mais avec fp 
+%  option cm le résultat est en cm sinon en pt with cm=false
+%<-------------------------------------------------------------------------->
+\pgfkeys{tkzcalclen/.cd,
+       cm/.is if         = tkzLengthIncm,
+       cm/.default       = true,
+       cm                = true}   
+
+\def\tkzCalcLength{\pgfutil at ifnextchar[{\tkz at CalcLength}{\tkz at CalcLength[]}}  
+\def\tkz at CalcLength[#1](#2,#3){%
+\pgfqkeys{/tkzcalclen}{#1}%   
+\begingroup
+\tkz@@CalcLength(#2,#3){tkzLengthResult}
+\iftkzLengthIncm 
+   \edef\tkz at xfpMathLen{\tkz at Dec{\tkz at Round{\tkzLengthResult/28.45274}{6}}}
+   \global\let\tkzLengthResult\tkz at xfpMathLen  
+\fi 
+\endgroup
+}%
+
+\def\tkz@@CalcLength(#1,#2)#3{%
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+             {\pgfpointanchor{#2}{center}}%
+\edef\tkz at xa{\strip at pt\pgf at x}%
+\edef\tkz at ya{\strip at pt\pgf at y}%
+\edef\tkz at xfpMathLen{\tkz at veclen{\tkz at xa}{\tkz at ya}}
+\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
+}
+
+\def\tkz@@CalcLengthcm(#1,#2)#3{%
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+             {\pgfpointanchor{#2}{center}}%
+\edef\tkz at xa{\strip at pt\pgf at x}%
+\edef\tkz at ya{\strip at pt\pgf at y}%
+\edef\tkz at xfpMathLen{\tkz at veclen{\tkz at xa}{\tkz at ya}}
+\edef\tkz at xfpMathLen{\tkz at Dec{\tkz at Round{\tkz at xfpMathLen/28.45274}{6}}}
+\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
+}
+\def\tkz@@CalcLengthb(#1,#2)#3{%
+\pgfpointdiff{\pgfpointanchor{#1}{center}}%
+             {\pgfpointanchor{#2}{center}}%
+\edef\tkz at xfpMathLen{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
+\edef\tkz at xfpMathLen{\fpeval{round(\tkz at xfpMathLen,6)}}
+\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
+}
+%<-------------------------------------------------------------------------->
+\def\tkzGetLength#1{%
+\global\expandafter\edef\csname #1\endcsname{\tkzLengthResult}}  
+%<-------------------------------------------------------------------------->
+%     \tkzpttocm  passage de pt   cm div par 28.45274
+%<-------------------------------------------------------------------------->
+\def\tkzpttocm(#1)#2{%
+\begingroup  
+  \edef\tkz at mathresult{\tkz at Round{#1/28.45274}{6}}
+ \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}%
+\endgroup
+}%
+%<-------------------------------------------------------------------------->
+%     \tkzcmtopt  passage de cm   pt mul par 28.45274
+%<--------------------------------------------------------------------------
+\def\tkzcmtopt(#1)#2{%
+\begingroup 
+  \edef\tkz at mathresult{\tkz at Round{#1*28.45274}{6}}
+  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
+\endgroup  
+}% 
+%<---------------------------------------------------------–>
+ \def\tkzGetResult#1{%
+   \global\expandafter\edef\csname #1\endcsname{\tkzMathResult}}
+%<---------------------------------------------------------–>
+%  Schrodinger's cat idea 03/01/20
+\tikzset{veclen/.code={%
+\pgfmathdeclarefunction*{veclen}{2}{%
+\begingroup%
+    \pgfmath at x##1pt\relax%
+    \pgfmath at y##2pt\relax%
+    \pgf at xa=\pgf at x%
+    \pgf at ya=\pgf at y%
+    \edef\tkz at temp@xa{\strip at pt\pgf at xa}% 
+    \edef\tkz at temp@ya{\strip at pt\pgf at ya}%
+    \edef\tkz at xfpMathLen{\tkz at veclen{\tkz at temp@xa}{\tkz at temp@ya}}%
+    \pgfmath at returnone\tkz at xfpMathLen pt%
+\endgroup%
+}}}%
+%<---------------------------------------------------------–>
+\def\tkzSwapPoints(#1,#2){
+   \pgfnodealias{tkzPointTmp}{#2}
+   \pgfnodealias{#2}{#1}
+   \pgfnodealias{#1}{tkzPointTmp}}
+%<---------------------------------------------------------–>
+\def\tkzPermute(#1,#2,#3){
+   \tkzURotateWithNodes(#1,#3,#2)(#3)  \tkzGetPoint{tkzpt}
+   \tkzURotateWithNodes(#1,#2,#3)(#2)  \tkzGetPoint{#2}
+   \tkzSwapPoints(tkzpt,#3)
+}
+%<---------------------------------------------------------–>
+\def\tkzDotProduct(#1,#2,#3){%
+\begingroup
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}% 
+\edef\tkzax{\strip at pt\pgf at x}%
+\edef\tkzay{\strip at pt\pgf at y}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}% 
+\edef\tkzbx{\strip at pt\pgf at x}%
+\edef\tkzby{\strip at pt\pgf at y}%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}%
+\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}% 
+\edef\tkzcx{\strip at pt\pgf at x}%
+\edef\tkzcy{\strip at pt\pgf at y}%
+\edef\tkz at tmp{\tkz at Dec{\tkz at Round{((\tkzbx-(\tkzax))*(\tkzcx-(\tkzax))+(\tkzby-(\tkzay))*(\tkzcy-(\tkzay)))/809.55841}{6}}}
+\global\let\tkzMathResult\tkz at tmp
+\endgroup
+}
+
+% #1,#2 and #3 aligned
+\def\tkzIsLinear(#1,#2,#3){%
+\begingroup
+\tkz@@CalcLengthcm(#1,#2){tkz at la}
+\tkz@@CalcLengthcm(#1,#3){tkz at lb}
+\tkzDotProduct(#1,#2,#3)
+\edef\tkzResult{\tkz at Dec{\tkz at Abs{\tkzMathResult}-(\tkz at la)*(\tkz at lb)}}
+\ifdim \tkzResult pt < 0.01 pt\relax%
+\global\tkzLineartrue
+\else
+\global\tkzLinearfalse
+\fi
+\endgroup
+}
+%<---------------------------------------------------------–>
+% syntax : vec(#2,#1) ortho vec(#3,#1)
+\def\tkzIsOrtho(#1,#2,#3){%
+\begingroup
+\tkzDotProduct(#1,#2,#3)
+\edef\tkzResult{\tkz at Dec{\tkz at Abs{\tkzMathResult}}}
+\ifdim \tkzResult pt < 1 pt\relax%
+\global\tkzOrthotrue
+\else
+\global\tkzOrthofalse
+\fi
+\endgroup
+}
+%<---------------------------------------------------------–>
+% \tkzPowerCircle(M)(O,A) --> OM^2-OA^2
+\def\tkzPowerCircle(#1)(#2,#3){%     
+\begingroup 
+\tkz@@CalcLengthcm(#2,#3){tkz at ra}
+\tkz@@CalcLengthcm(#1,#2){tkz at om}
+\gdef\tkzMathResult{\tkz at Dec{(\tkz at om)^2-(\tkz at ra)^2}}
+\endgroup
+}
+%<---------------------------------------------------------–>
+\def\tkzDefRadicalAxis(#1,#2)(#3,#4){%
+\begingroup
+\tkz@@CalcLengthcm(#1,#3){tkz at d}
+\tkz@@CalcLengthcm(#1,#2){tkz at ra}
+\tkz@@CalcLengthcm(#3,#4){tkz at rb}
+\edef\tkzMathResult{\tkz at Dec{\tkz at d-(\tkz at ra+\tkz at rb)}}
+\edef\tkzMathResultb{\tkz at Dec{\tkz at Abs{(\tkz at d-(\tkz at ra+\tkz at rb))}}}
+\edef\tkzMathResultc{\tkz at Dec{\tkz at Abs{\tkz at d-\tkz at Abs{(\tkz at ra-(\tkz at rb))}}}}
+\ifdim \tkzMathResultc pt < 0.1 pt\relax%
+ \tkzURotateAngle(#2,90)(#3) \tkzGetPoint{tkzFirstPointResult}
+  \tkzURotateAngle(#2,-90)(#3) \tkzGetPoint{tkzSecondPointResult}
+\else
+\ifdim \tkzMathResultb pt < 0.1 pt\relax%
+ \tkzURotateAngle(#2,90)(#3) \tkzGetPoint{tkzFirstPointResult}
+  \tkzURotateAngle(#2,-90)(#3) \tkzGetPoint{tkzSecondPointResult}
+  \else
+\ifdim \tkzMathResult pt > 1 pt\relax%
+  \tkzURotateAngle(#1,60)(#3)    \tkzGetPoint{tkz at aux}
+  \tkzInterCC(#1,#2)(tkz at aux,#1) \tkzGetPoints{tkz at pta}{tkz at ptb}
+  \tkzInterCC(#3,#4)(tkz at aux,#1) \tkzGetPoints{tkz at ptc}{tkz at ptd}
+  \tkzInterLL(tkz at pta,tkz at ptb)(tkz at ptc,tkz at ptd) \tkzGetPoint{tkz at pta}
+  \tkzUProjection(#1,#3)(tkz at pta)  \tkzGetPoint{tkz at ptb}
+  \pgfnodealias{tkzSecondPointResult}{tkz at ptb}
+  \pgfnodealias{tkzFirstPointResult}{tkz at pta}
+\else
+\tkzInterCCR(#1,\tkz at ra)(#3,\tkz at rb){tkzFirstPointResult}{tkzSecondPointResult}
+\fi
+\fi
+\fi
+\endgroup
+} 
+
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-lua-math.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-math.tex}     
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-math.tex}     
 \makeatletter
 %<-------------------------------------------------------------------------->
 % \tkzpointnormalised#

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-utilities.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-utilities.tex}  
 \makeatletter
 %<------------- % chargement des modules ---------------------------------->
 \def\tkz at obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}%

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-eu-text.tex}   
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c tkz-tools-eu-text.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                                         tkzText

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -10,9 +10,9 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c  tkz-tools-eu-utilities.tex}  
+\def\fileversion{5.04c}
+\def\filedate{2023/10/26} 
+\typeout{2023/10/26 5.04c  tkz-tools-eu-utilities.tex}  
 \makeatletter
 \pgfkeys{/tkzClip/.cd, 
 space/.store in    = {\tkz at CLI@space},

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-angles.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-angles.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,102 +0,0 @@
-% tkz-tools-lua-angles.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”. 
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-lua-angles.tex}   
-\makeatletter
-\def\tkzmathrotatepointaround#1#2#3{%
-  \pgf at process{%
-    \pgf at process{#1}%
-    \pgf at xc=\pgf at x%
-    \pgf at yc=\pgf at y%
-    \pgf at process{#2}%
-    \pgf at xa\pgf at x%
-    \pgf at ya\pgf at y%
-    \pgf at xb\pgf at x%
-    \pgf at yb\pgf at y%
-    \pgf at x=\pgf at xc%
-    \pgf at y=\pgf at yc%
-    \advance\pgf at x-\pgf at xa%
-    \advance\pgf at y-\pgf at ya%
-    \pgfmathsetmacro\angle{#3}%
-    \edef\sineangle{\tkz at Dec{\tkz at Sin{\tkz at Rad{\angle}}}}%
-    \edef\cosineangle{\tkz at Dec{\tkz at Cos{\tkz at Rad{\angle}}}}%
-    \pgf at xa\cosineangle\pgf at x%
-    \advance\pgf at xa-\sineangle\pgf at y%
-    \pgf at ya\sineangle\pgf at x%
-    \advance\pgf at ya\cosineangle\pgf at y%
-    \pgf at x\pgf at xb%
-    \pgf at y\pgf at yb%
-    \advance\pgf at x\pgf at xa%
-    \advance\pgf at y\pgf at ya%
-  }%
-}
-
-%<-------------------------------------------------------------------------->
-%                           Angles
-%<-------------------------------------------------------------------------->
-\def\tkzmathanglebetweenpoints#1#2{
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}%
-\edef\tkzax{\strip at pt\pgf at x}%
-\edef\tkzay{\strip at pt\pgf at y}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}%
-\edef\tkzbx{\strip at pt\pgf at x}%
-\edef\tkzby{\strip at pt\pgf at y}%
-\edef\tkz at tmp{\tkz at Angle{\tkzax}{\tkzay}{\tkzbx}{\tkzby}}
-\edef\pgfmathresult{\tkz at Dec{\tkz at Round{\tkz at tmp}{2}}}
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224  
-% \tkzGetAngle strange behavior
-% defines \tkz at FirstAngle and \tkz at SecondAngle sens  trigo
-%<--------------------------------------------------------------------------–>
-
-\def\tkzNormalizeAngle(#1,#2){%
-\directlua{angleA, angleB = normalize(#1,#2)
-token.set_macro("tkz at FirstAngle", angleA)
-token.set_macro("tkz at SecondAngle", angleB)
-}}
-%<--------------------------------------------------------------------------–>
-%                          Angle 
-% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
-%<--------------------------------------------------------------------------–>
-\def\tkzFindSlopeAngle(#1,#2){%
-\begingroup
-  \tkzmathanglebetweenpoints{#1}{#2}
- \global\let\tkzAngleResult\pgfmathresult  
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                          Angle  avec trois nodes
-%<--------------------------------------------------------------------------–>
-\def\tkzFindAngle(#1,#2,#3){% new code 2016
-\begingroup
-    \tkzFindSlopeAngle(#2,#1)\tkzGetAngle{tkz at FirstAngle}
-    \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at SecondAngle}
-    \tkzNormalizeAngle(\tkz at FirstAngle,\tkz at SecondAngle)
-    \edef\tkz at Angle{\fpeval{\tkz at SecondAngle-\tkz at FirstAngle}}
-    \global\let\tkzAngleResult\tkz at Angle
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-% Find angle
-%<--------------------------------------------------------------------------–>
-\def\tkzGetAngle#1{%
-  \global\expandafter\edef\csname #1\endcsname{\tkzAngleResult}
-}  
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-base.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-base.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-base.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,89 +0,0 @@
-% tkz-tools-lua-base.tex    
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”. 
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-lua-base.tex}   
-\makeatletter
-%<--------------------------------------------------------------------------–>
-\global\let\tkz at tmp@xa\tkz at init@xmin% modif  2016
-\global\let\tkz at tmp@xb\tkz at init@xmax% modif  2016
-\global\let\tkz at tmp@ya\tkz at init@ymin% modif  2016
-\global\let\tkz at tmp@yb\tkz at init@ymax% modif  2016 
-%<--------------------------------------------------------------------------–>
-\pgfkeys{
-         /tkzInit/.cd,
-         xmin/.store in     = \tkz at init@xmin,
-         xmax/.store in     = \tkz at init@xmax,
-         xstep/.store in    = \tkz at init@xstep,
-         ymin/.store in     = \tkz at init@ymin,
-         ymax/.store in     = \tkz at init@ymax,
-         ystep/.store in    = \tkz at init@ystep, 
-         NO/.is if          = tkz at init@NO,
-         NO/.default        = true, 
-         xmin               = 0,
-         xmax               = 10,
-         xstep              = 1,
-         ymin               = 0,
-         ymax               = 10,
-         ystep              = 1,
-         NO                 = false 
-         } 
-  
-\def\tkzInit{\pgfutil at ifnextchar[{\tkz at Init}{\tkz at Init[]}} 
-\def\tkz at Init[#1]{%
-    \pgfqkeys{/tkzInit}{#1}
-  \ifx\tkzfctloaded\undefined
-    \else   
-      \tkz at tkzf@fct=0 %  only if tkz-fct loaded
-   \fi   
-  \xdef\tkz at init@xorigine{0}
-  \xdef\tkz at init@yorigine{0}
-  \edef\@xsgmin{\fpeval{sign(\tkz at init@xmin)}}
-  \edef\@xsgmax{\fpeval{sign(\tkz at init@xmax)}}
-  \edef\@ysgmin{\fpeval{sign(\tkz at init@ymin)}}
-  \edef\@ysgmax{\fpeval{sign(\tkz at init@ymax)}}
-  \let\tkz at tmp@xa\tkz at init@xmin %modif 2016
-  \let\tkz at tmp@xb\tkz at init@xmax %modif 2016
-  \let\tkz at tmp@ya\tkz at init@ymin %modif 2016
-  \let\tkz at tmp@yb\tkz at init@ymax %modif 2016
-  \tkz at init@NOfalse                   
-  \ifx\@xsgmin\@xsgmax \tkz at init@NOtrue \fi
-  \ifx\@ysgmin\@ysgmax \tkz at init@NOtrue \fi
-  \iftkz at init@NO%
-  \ifx\@xsgmin\@xsgmax
-      \edef\tkz at init@xmax{\tkz at Dec{\tkz at init@xmax-(\tkz at init@xmin)}}
-      \edef\tkz at init@xorigine{\tkz at init@xmin}
-      \edef\tkz at init@xmin{0}
-  \fi
-  \ifx\@ysgmin\@ysgmax
-      \edef\tkz at init@ymax{\tkz at Dec{\tkz at init@ymax-(\tkz at init@ymin)}}
-      \edef\tkz at init@yorigine{\tkz at init@ymin}
-      \edef\tkz at init@ymin{0}
-  \fi
-  \fi
-  \edef\tkz at xa{\tkz at Dec{\tkz at init@xmin/\tkz at init@xstep}}
-  \edef\tkz at xb{\tkz at Dec{\tkz at init@xmax/\tkz at init@xstep}}
-  \edef\tkz at ya{\tkz at Dec{\tkz at init@ymin/\tkz at init@ystep}}
-  \edef\tkz at yb{\tkz at Dec{\tkz at init@ymax/\tkz at init@ystep}}
-  \tkz at getdecimal{\tkz at init@xstep} % amélioration nb dec et integer
-  \xdef\tkz at init@xdec{\number\c at pgfmath@countb}
-  \tkz at getdecimal{\tkz at init@ystep}
-  \xdef\tkz at init@ydec{\number\c at pgfmath@countb}
-}%
-\def\tkzAddName{\pgfutil at ifnextchar[{\tkz at AddName}{\tkz at AddName[]}} 
-\def\tkz at AddName[#1]#2{%
-\node[above left,#1] at (\pgf at path@lastx,\pgf at path@lasty){#2};  
-}% 
-%<--------------------------------------------------------------------------–>
-\makeatother 
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-intersections.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-intersections.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-intersections.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,525 +0,0 @@
-% tkz-tools-lua-intersections.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work has the LPPL maintenance status “maintained”.
-% 
-% The Current Maintainer of this work is Alain Matthes.
-%  utf8 encoding
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-lua-intersections.tex}   
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%                 intersection  de deux lignes
-%<--------------------------------------------------------------------------–>
-\def\tkzInterLL(#1,#2)(#3,#4){% méthode avec xfp
-\tkz at InterLL(#1,#2)(#3,#4){tkzPointResult}
-}
-
-\def\tkz at InterLL(#1,#2)(#3,#4)#5{%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}%
-\tkz at ax\pgf at x%
-\tkz at ay\pgf at y%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}
-\tkz at bx\pgf at x%
-\tkz at by\pgf at y%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}%
-\tkz at cx\pgf at x%
-\tkz at cy\pgf at y%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#4}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#4}{center}}%
-\tkz at dx\pgf at x%
-\tkz at dy\pgf at y%
-\edef\tkzax{\strip at pt\tkz at ax}%
-\edef\tkzay{\strip at pt\tkz at ay}%
-\edef\tkzbx{\strip at pt\tkz at bx}%
-\edef\tkzby{\strip at pt\tkz at by}%
-\edef\tkzcx{\strip at pt\tkz at cx}%
-\edef\tkzcy{\strip at pt\tkz at cy}%
-\edef\tkzdx{\strip at pt\tkz at dx}%
-\edef\tkzdy{\strip at pt\tkz at dy}%
-\edef\tkz at deltax{\tkz at Dec{(\tkzax-(\tkzbx))/(28.45274)}}
-\edef\tkz at deltaxx{\tkz at Dec{(\tkzcx-(\tkzdx))/(28.45274)}}
-\edef\tkz at deltay{\tkz at Dec{(\tkzay-(\tkzby))/(28.45274)}}
-\edef\tkz at deltayy{\tkz at Dec{(\tkzcy-(\tkzdy))/(28.45274)}}
-\edef\tkz at deltaxy{\tkz at Dec{((\tkzax*\tkzby)-(\tkzay*\tkzbx))/(809.55841)}}
-\edef\tkz at deltaxxyy{\tkz at Dec{((\tkzcx*\tkzdy)-(\tkzcy*\tkzdx))/(809.55841)}}
-\edef\tkz at div{\tkz at Dec{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
-\edef\tkz at numx{\tkz at Dec{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
-\edef\tkz at numy{\tkz at Dec{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
-\edef\tkz at xs{\tkz at Dec{\tkz at numx/\tkz at div}}
-\edef\tkz at ys{\tkz at Dec{\tkz at numy/\tkz at div}}
-\edef\tkz at xs{\tkz at Round{\tkz at xs}{5}}
-\edef\tkz at ys{\tkz at Round{\tkz at ys}{5}}
-\path[coordinate](\tkz at xs,\tkz at ys) coordinate (#5);
-}
-
-
-% méthode with coordinates
-\def\tkzInterLLxy(#1,#2,#3,#4)(#5,#6,#7,#8){%
-%\path (intersection of #1--#2 and #3--#4) coordinate(#5);%
-\tkz at ax#1%
-\tkz at ay#2%
-\tkz at bx#3%
-\tkz at by#4%
-\tkz at cx#5%
-\tkz at cy#6%
-\tkz at dx#7%
-\tkz at dy#8%
-\edef\tkzax{\strip at pt\tkz at ax}%
-\edef\tkzay{\strip at pt\tkz at ay}%
-\edef\tkzbx{\strip at pt\tkz at bx}%
-\edef\tkzby{\strip at pt\tkz at by}%
-\edef\tkzcx{\strip at pt\tkz at cx}%
-\edef\tkzcy{\strip at pt\tkz at cy}%
-\edef\tkzdx{\strip at pt\tkz at dx}%
-\edef\tkzdy{\strip at pt\tkz at dy}%
-\edef\tkz at deltax{\tkz at Dec{(\tkzax-(\tkzbx))/(28.45274)}}
-\edef\tkz at deltaxx{\tkz at Dec{(\tkzcx-(\tkzdx))/(28.45274)}}
-\edef\tkz at deltay{\tkz at Dec{(\tkzay-(\tkzby))/(28.45274)}}
-\edef\tkz at deltayy{\tkz at Dec{(\tkzcy-(\tkzdy))/(28.45274)}}
-\edef\tkz at deltaxy{\tkz at Dec{((\tkzax*\tkzby)-(\tkzay*\tkzbx))/(809.55841)}}
-\edef\tkz at deltaxxyy{\tkz at Dec{((\tkzcx*\tkzdy)-(\tkzcy*\tkzdx))/(809.55841)}}
-\edef\tkz at div{\tkz at Dec{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
-\edef\tkz at numx{\tkz at Dec{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
-\edef\tkz at numy{\tkz at Dec{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
-\edef\tkz at xs{\tkz at Dec{\tkz at numx/\tkz at div}}
-\edef\tkz at ys{\tkz at Dec{\tkz at numy/\tkz at div}}
-\edef\tkz at xs{\tkz at Round{\tkz at xs}{5}}
-\edef\tkz at ys{\tkz at Round{\tkz at ys}{5}}
-\path[coordinate](\tkz at xs,\tkz at ys) coordinate (tkzPointResult);
-}
-
-%<--------------------------------------------------------------------------–>
-%                 intersection  de Ligne Cercle rayon connu
-%<--------------------------------------------------------------------------–>
-% /*
-%    Calculate the intersection of a ray and a sphere
-%    The line segment is defined from p1 to p2
-%    The sphere is of radius r and centered at sc
-%    There are potentially two points of intersection given by
-%    p = p1 + mu1 (p2 - p1)
-%    p = p1 + mu2 (p2 - p1)
-%    Return FALSE if the ray doesn't intersect the sphere.
-% */
-% int RaySphere(XYZ p1,XYZ p2,XYZ sc,double r,double *mu1,double *mu2)
-% {
-%    double a,b,c;
-%    double bb4ac;
-%    XYZ dp;
-% 
-%    dp.x = p2.x - p1.x;
-%    dp.y = p2.y - p1.y;
-%    dp.z = p2.z - p1.z;
-%    a = dp.x * dp.x + dp.y * dp.y + dp.z * dp.z;
-%    b = 2 * (dp.x * (p1.x - sc.x) + dp.y * (p1.y - sc.y) + dp.z * (p1.z - sc.z));
-%    c = sc.x * sc.x + sc.y * sc.y + sc.z * sc.z;
-%    c += p1.x * p1.x + p1.y * p1.y + p1.z * p1.z;
-%    c -= 2 * (sc.x * p1.x + sc.y * p1.y + sc.z * p1.z);
-%    c -= r * r;
-%    bb4ac = b * b - 4 * a * c;
-%    if (ABS(a) < EPS || bb4ac < 0) {
-%       *mu1 = 0;
-%       *mu2 = 0;
-%       return(FALSE);
-%    }
-% 
-%    *mu1 = (-b + sqrt(bb4ac)) / (2 * a);
-%    *mu2 = (-b - sqrt(bb4ac)) / (2 * a);
-% 
-%    return(TRUE);
-% }
-%<---------- test ------------------------------------------------------–>
-\def\tkzTestInterLC(#1,#2)(#3,#4){%
-\begingroup
-\tkz at Projection(#1,#2)(#3){tkz at pth}% distance centre à la ligne
-\tkz@@CalcLength(#3,tkz at pth){tkz at mathLen}%  
-\tkz@@CalcLength(#3,#4){tkzLengthResult}%calcul du rayon
-\ifdim\tkz at mathLen pt>\tkzLengthResult pt\relax%
-\global\tkzFlagLCfalse
-\else
-\global\tkzFlagLCtrue
-\fi
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz at numlc{0}
-\pgfkeys{/linecircle/.cd,
-  node/.code               = \def\tkz at numlc{0},
-  R/.code                  = \def\tkz at numlc{1}, 
-  with nodes/.code         = \def\tkz at numlc{2},
-  common/.store in         = \tkz at common,
-  common                   = {},
-  near/.is if              =  tkz at near,
-  near/.default            =  true,
-  near                     =  false,
-  next to/.store in        = \tkz at nextto,
-  next to/.initial         = {},
-  next/.default            = {},
-  next to                  = {},
-  next to/.value required,
-  node  
- }
-%<--------------------------------------------------------------------------–>
-\def\tkzInterLC{\pgfutil at ifnextchar[{\tkz at InterLC}{\tkz at InterLC[]}}
-\def\tkz at InterLC[#1](#2,#3)(#4,#5){%
-\begingroup      
-\pgfqkeys{/linecircle}{#1}
- \pgfinterruptboundingbox 
-\ifcase\tkz at numlc%
-    % first case 0
-  \tkz@@CalcLength(#4,#5){tkzLengthResult}
-  \tkzInterLCR(#2,#3)(#4,\tkzLengthResult pt){tkzFirstPointResult}%
-                         {tkzSecondPointResult}
-\or% 1
-    \tkzInterLCR(#2,#3)(#4,#5 cm){tkzFirstPointResult}
-                   {tkzSecondPointResult}%
-\or% 2
-    \tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}%
-                        {tkzSecondPointResult}%
-\fi
-\iftkz at near
-  \tkz@@CalcLength(#2,tkzFirstPointResult){tkzLengthFirst}
-  \tkz@@CalcLength(#2,tkzSecondPointResult){tkzLengthSecond}
-      \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax%
-      \else
-       \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-       \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
-       \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
-      \fi
-\else
-    \ifx\tkz at common\tkzutil at empty 
-      \ifx\tkz at nextto\tkzutil at empty 
-         \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4)   
-         \tkzGetAngle{tkz at an}
-          \ifdim\tkz at an pt<180 pt\relax%
-          \else
-           \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-           \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
-           \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
-          \fi
-      \else
-         \tkz@@CalcLength(\tkz at nextto,tkzFirstPointResult){tkzLengthFirst}
-         \tkz@@CalcLength(\tkz at nextto,tkzSecondPointResult){tkzLengthSecond}
-             \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax%
-             \else
-              \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-              \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
-              \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
-             \fi
-       \fi
-    \else 
-         \tkz@@CalcLength(\tkz at common,tkzSecondPointResult){tkz at mathLen}
-         \ifdim\tkz at mathLen pt<1pt\relax%
-         \else
-          \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-          \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
-          \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
-         \fi
-     \fi
-\fi%near
-\endpgfinterruptboundingbox    
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-\def\tkzInterLCR(#1,#2)(#3,#4)#5#6{%
-\begingroup
-\tkz at radi=#4%
-\tkz@@extractxy{#3}
-\tkz at bx =\pgf at x\relax%
-\tkz at by =\pgf at y\relax%
-\tkz at Projection(#1,#2)(#3){tkz at pth}
-\tkz@@CalcLength(#3,tkz at pth){tkz at mathLen}
- \ifdim\tkz at mathLen pt<0.05pt\relax%
-        \pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                     {\pgfpointanchor{#2}{center}}%
-        \tkz at ax=\pgf at x%
-        \tkz at ay=\pgf at y%
-        \pgfpointborderellipse{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                              {\pgfpoint{\tkz at radi}{\tkz at radi}}
-        \tkz at ax=\pgf at x\relax%
-        \tkz at ay=\pgf at y\relax%
-        \advance\tkz at bx by\tkz at ax\relax%
-        \advance\tkz at by by\tkz at ay\relax%
-        \pgfcoordinate{#6}{\pgfqpoint{\tkz at bx}{\tkz at by}}
-        \tkzCSym(#3)(#6){#5}
-  \else
-       \edef\pgfmathresult{\fpeval{\tkz at mathLen/\tkz at radi}}
-      % \edef\tkz at angle{\fpeval{acosd(\pgfmathresult)}}
-        \pgfmathacos@{\pgfmathresult}%
-        \let\tkz at angle\pgfmathresult%
-        \pgfpointdiff{\pgfpointanchor{#3}{center}}%
-                     {\pgfpointanchor{tkz at pth}{center}}%
-        \tkz at ax=\pgf at x%
-        \tkz at ay=\pgf at y%
-        \pgfpointborderellipse{\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                              {\pgfpoint{\tkz at radi}{\tkz at radi}}
-        \tkz at ax =\pgf at x\relax%
-        \tkz at ay =\pgf at y\relax%
-        \advance\tkz at bx by\tkz at ax\relax%
-        \advance\tkz at by by\tkz at ay\relax%
-        \tkz@@extractxy{#3}
-        \tkz at ax =\pgf at x\relax%
-        \tkz at ay =\pgf at y\relax%
-        \tkz@@extractxy{tkz at pth}
-        \pgfmathrotatepointaround{\pgfpoint{\tkz at bx}{\tkz at by}}%
-                                 {\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                                 {\tkz at angle}
-         \pgfcoordinate{#5}{\pgfqpoint{\pgf at x}{\pgf at y}}
-        \pgfmathrotatepointaround{\pgfpoint{\tkz at bx}{\tkz at by}}%
-                                 {\pgfpoint{\tkz at ax}{\tkz at ay}}%
-                                 {-\tkz at angle}
-  \pgfcoordinate{#6}{\pgfqpoint{\pgf at x}{\pgf at y}}
-
-\fi   
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                 intersection  de Ligne Cercle 
-% #4 center #5 point sur le cercle
-%<--------------------------------------------------------------------------–>
-% \def\tkzInterLC(#1,#2)(#3,#4)#5#6{%
-%     \begingroup
-%     \tkz@@CalcLength(#3,#4){tkz at rad}
-%     \tkzInterLCR(#1,#2)(#3,\tkz at rad pt){#5}{#6}
-% \endgroup
-% } 
-%<--------------------------------------------------------------------------–>
-%                 intersection  de Ligne Cercle rayon inconnu
-%<--------------------------------------------------------------------------–>
-\def\tkzInterLCWithNodes(#1,#2)(#3,#4,#5)#6#7{%
-\begingroup
-    \tkz@@CalcLength(#4,#5){tkz at radius}
-    \tkzInterLCR(#1,#2)(#3,\tkz at radius pt){#6}{#7}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%  Intersection of 2 circles
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% méthode
-% /* circle_circle_intersection() *
-%  * Determine the points where 2 circles in a common plane intersect.
-%  *
-%  * int circle_circle_intersection(
-%  *                                // center and radius of 1st circle
-%  *                                double x0, double y0, double r0,
-%  *                                // center and radius of 2nd circle
-%  *                                double x1, double y1, double r1,
-%  *                                // 1st intersection point      
-%  *                                // 2nd intersection point
-%  *
-%  * This is a public domain work. 3/26/2005 Tim Voght
-%  *
-% int circle_circle_intersection(double x0, double y0, double r0,
-%                                double x1, double y1, double r1,
-%                                double *xi, double *yi,
-%                                double *xi_prime, double *yi_prime)
-% {
-%   double a, dx, dy, d, h, rx, ry;
-%   double x2, y2;
-% 
-%   /* dx and dy are the vertical and horizontal distances between
-%    * the circle centers.
-%    */
-%   dx = x1 - x0;
-%   dy = y1 - y0;
-% 
-%   /* Determine the straight-line distance between the centers. */
-%   //d = sqrt((dy*dy) + (dx*dx));
-%   d = hypot(dx,dy); // Suggested by Keith Briggs
-% 
-%   /* Check for solvability. */
-%   if (d > (r0 + r1))
-%   {
-%     /* no solution. circles do not intersect. */
-%     return 0;
-%   }
-%   if (d < fabs(r0 - r1))
-%   {
-%     /* no solution. one circle is contained in the other */
-%     return 0;
-%   }
-% 
-%   /* 'point 2' is the point where the line through the circle
-%    * intersection points crosses the line between the circle
-%    * centers.  
-%    */
-% 
-%   /* Determine the distance from point 0 to point 2. */
-%   a = ((r0*r0) - (r1*r1) + (d*d)) / (2.0 * d) ;
-% 
-%   /* Determine the coordinates of point 2. */
-%   x2 = x0 + (dx * a/d);
-%   y2 = y0 + (dy * a/d);
-% 
-%   /* Determine the distance from point 2 to either of the
-%    * intersection points.
-%    */
-%   h = sqrt((r0*r0) - (a*a));
-% 
-%   /* Now determine the offsets of the intersection points from
-%    * point 2.
-%    */
-%   rx = -dy * (h/d);
-%   ry = dx * (h/d);
-% 
-%   /* Determine the absolute intersection points. */
-%   *xi = x2 + rx;
-%   *xi_prime = x2 - rx;
-%   *yi = y2 + ry;
-%   *yi_prime = y2 - ry;
-% 
-%   return 1;
-% } 
-%<--------------------------------------------------------------------------–>
-%    Intersection de deux cercles  
-%<--------------------------------------------------------------------------–>
-%<---------- test ------------------------------------------------------–>
-% test avec des nodes  R-r <= d <= R+r
-\def\tkzTestInterCC(#1,#2)(#3,#4){%
-\begingroup
-\tkz@@CalcLength(#1,#3){tkz at mathLen}% distance entre les centres  
-\tkz@@CalcLength(#2,#1){tkz at rA}%calcul du rayon
-\tkz@@CalcLength(#4,#3){tkz at rB}%calcul du rayon
-% test if d <= rA + rB ?
-\edef\tkz at rS{\fpeval{\tkz at rA+\tkz at rB}}
-\ifdim\tkz at mathLen pt > \tkz at rS pt\relax%
-\global\tkzFlagCCfalse
-\else
-% now test if d>= rA - rB or rB-rA
-  \ifdim \tkz at rA pt >  \tkz at rB pt\relax%
-       \edef\tkz at rD{\fpeval{\tkz at rA-\tkz at rB}}
-   \else
-       \edef\tkz at rD{\fpeval{\tkz at rB-\tkz at rA}}
-   \fi
-\ifdim  \tkz at rD pt > \tkz at mathLen pt\relax%
- \global\tkzFlagCCfalse
-\else
-\global\tkzFlagCCtrue
-\fi
-\fi
-\endgroup
-}
-
-\def\tkz at numcc{0}
-\pgfkeys{
-/circlecircle/.cd,
-  node/.code           = \def\tkz at numcc{0},
-  R/.code              = \def\tkz at numcc{1},
-  with nodes/.code     = \def\tkz at numcc{2},
-  common/.store in     = \tkz at common,
-  common               = {},
-  node
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzInterCC{\pgfutil at ifnextchar[{\tkz at InterCC}{\tkz at InterCC[]}}
-\def\tkz at InterCC[#1](#2,#3)(#4,#5){%
-\begingroup      
-\pgfqkeys{/circlecircle}{#1}
-\ifcase\tkz at numcc%
- % first case 0 
-  \tkz at save@length 
-  \tkz@@CalcLengthcm(#2,#3){tkz at rayA}
-  \tkz@@CalcLengthcm(#4,#5){tkz at rayB}
-   \tkz at restore@length
-\tkzInterCCR(#2,\tkz at rayA)(#4,\tkz at rayB){tkzFirstPointResult}{tkzSecondPointResult}
-  \or% 1
- \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
-  \or%2
- \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
-\fi
- \ifx\tkz at common\tkzutil at empty
- \tkzFindAngle(#2,tkzFirstPointResult,#4)   \tkzGetAngle{tkz at an}
- \ifdim\tkz at an pt<180 pt\relax%
- \else
- \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-  \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
- \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
- \fi
- \else
-\tkz@@CalcLength(\tkz at common,tkzSecondPointResult){tkz at mathLen}
- \ifdim\tkz at mathLen pt<0.05pt\relax%
- \else
-  \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
-   \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
-  \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
-  \fi
-  \fi
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-
-\def\tkzInterCCR(#1,#2)(#3,#4)#5#6{%
-\begingroup
-\pgfinterruptboundingbox  
-\tkz at save@length  
-\tkz@@CalcLength(#1,#3){tkz at dd}
-\tkz at restore@length 
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
-\tkz at ax\pgf at x %
-\tkz at ay\pgf at y %
-\edef\tkzcax{\strip at pt\tkz at ax}%
-\edef\tkzcay{\strip at pt\tkz at ay}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}
-\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}
-\tkz at bx\pgf at x %
-\tkz at by\pgf at y %
-\edef\tkzcbx{\strip at pt\tkz at bx}%
-\edef\tkzcby{\strip at pt\tkz at by}%
-\tkz at cx#2cm %
-\tkz at cy#4cm %
-\edef\tkzccx{\strip at pt\tkz at cx}%
-\edef\tkzccy{\strip at pt\tkz at cy}%
-\edef\tkz at aa{\tkz at Dec{((\tkzccx+\tkzccy)/(2*\tkz at dd))*(\tkzccx-(\tkzccy))+\tkz at dd/2}}
-\edef\tkz at xx{\tkz at Dec{\tkzcax+\tkz at aa/\tkz at dd*(\tkzcbx - (\tkzcax))}}
-\edef\tkz at yy{\tkz at Dec{\tkzcay+\tkz at aa/\tkz at dd*(\tkzcby - (\tkzcay))}}
-\path[coordinate](\tkz at xx pt,\tkz at yy pt) coordinate (tkzRadialCenter);
-\edef\tkz at hh{\tkz at Abs{(\tkzccx+\tkz at aa)*(\tkzccx-(\tkz at aa))}}
-\edef\tkz at hh{\tkz at Dec{\tkz at Sqrt{\tkz at hh}}}
- \edef\tkz at rx{\tkz at Dec{\tkz at hh / \tkz at dd * (\tkzcay - (\tkzcby))}}
-\edef\tkz at ry{\tkz at Dec{\tkz at hh / \tkz at dd * (\tkzcbx - (\tkzcax))}}
-\edef\tkz at xs{\tkz at Dec{\tkz at xx + \tkz at rx}}
-\edef\tkz at ys{\tkz at Dec{\tkz at yy + \tkz at ry}}
-\path[coordinate](\tkz at xs pt,\tkz at ys pt) coordinate (#5);
-\edef\tkz at xss{\tkz at Dec{\tkz at xx - \tkz at rx}}
-\edef\tkz at yss{\tkz at Dec{\tkz at yy - \tkz at ry}}
-\path[coordinate](\tkz at xss pt,\tkz at yss pt) coordinate (#6);
-\endpgfinterruptboundingbox   
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% #2 node #3 node #4 node #5 node
-% \def\tkzInterCC(#1,#2)(#3,#4)#5#6{%
-% \begingroup
-%   \tkz@@CalcLength(#1,#2){tkz at rayA}
-%   \tkz@@CalcLength(#3,#4){tkz at rayB}
-%   \tkzInterCCR(#1,\tkz at rayA pt)(#3,\tkz at rayB pt){#5}{#6}
-% \endgroup
-% }  
-%<--------------------------------------------------------------------------–>
-%    Intersection de deux cercles   Avec deux points
-%<--------------------------------------------------------------------------–>
-% la première variante devrait être #2 #3  avec #4 #5
-\def\tkzInterCCWithNodes(#1,#2,#3)(#4,#5,#6)#7#8{%
-\begingroup
-  \tkz@@CalcLengthcm(#2,#3){tkz at rayA}
-  \tkz@@CalcLengthcm(#5,#6){tkz at rayB}
-  \tkzInterCCR(#1,\tkz at rayA)(#4,\tkz at rayB){#7}{#8}
-\endgroup
-} 
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-math.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-math.tex	2023-10-26 19:52:45 UTC (rev 68662)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-lua-math.tex	2023-10-26 19:54:11 UTC (rev 68663)
@@ -1,310 +0,0 @@
-% tkz-tools-lua-math.tex
-% Copyright 2023  Alain Matthes
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
-%   http://www.latex-project.org/lppl.txt
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-% This work has the LPPL maintenance status “maintained”.
-% The Current Maintainer of this work is Alain Matthes.
-
-\def\fileversion{5.03c}
-\def\filedate{2023/10/20} 
-\typeout{2023/10/20 5.03c tkz-tools-lua-math.tex}     
-\makeatletter
-%<-------------------------------------------------------------------------->
-%<-------------------------------------------------------------------------->
-%                           Lengths
-%<-------------------------------------------------------------------------->
-%<-------------------------------------------------------------------------->
-
-\begin{luacode*} 
-  function normalize(angleA,angleB)       
-      if angleA > 0 then
-       if angleA > angleB then
-          angleA = angleA - 360
-          end
-      else
-     if angleA > angleB then
-          angleB = angleB + 360
-        end
-      end
-      return angleA, angleB
-  end
-  
-  function math.angle(x1, y1, x2, y2)
-      local a = math.deg(math.atan(y2 - y1, x2 - x1))
-      if a < 0 then
-          return a + 360
-      else
-          return a
-      end
-  end
-  
-  function tkzop(...)
-  inf = math.huge
-  return ...
-end
- 
-function tkzround(nb, ND)
-  local p = 10^(ND or 0)
-   return math.floor(nb * p + 0.5) / p
-end   
-\end{luacode*}
-
-\def\tkz at Dec#1{%
-     \directlua{tex.print(string.format('\@percentchar.6f',#1))}
-     }
-\def\tkz at Op#1{\directlua{tex.sprint(tostring(tkzop(#1)))}}
-\def\tkz at Log#1{\directlua{tex.sprint(math.log(#1))}}
-\def\tkz at Exp#1{\directlua{tex.sprint(math.exp(#1))}}
-\def\tkz at Sqrt#1{\directlua{tex.sprint(math.sqrt(#1))}}
-\def\tkz at Abs#1{\directlua{tex.sprint(math.abs(#1))}}
-\def\tkz at Pi{\directlua{tex.sprint(math.pi)}}
-\def\tkz at Cos#1{\directlua{tex.sprint(math.cos(#1))}}
-\def\tkz at Sin#1{\directlua{tex.sprint(tostring(math.sin(#1)))}}
-\def\tkz at Tan#1{\directlua{tex.sprint(math.tan(#1))}}
-\def\tkz at Rad#1{\directlua{tex.sprint(math.rad(#1))}}
-\def\tkz at Acos#1{\directlua{tex.sprint(math.acos(#1))}}
-\def\tkz at Asin#1{\directlua{tex.sprint(math.asin(#1))}}
-\def\tkz at Atan#1{\directlua{tex.sprint(math.atan(#1))}}
-\def\tkz at Round#1#2{\directlua{tex.sprint(tostring(tkzround(#1,#2)))}}
-\def\tkz at Angle#1#2#3#4{\directlua{tex.sprint(math.angle(#1,#2,#3,#4))}}
-\def\tkz at Ceil#1{\directlua{tex.sprint(math.ceil(#1))}}
-\def\tkz at Floor#1{\directlua{tex.sprint(math.floor(#1))}}
-\def\tkz at Huge{\directlua{tex.sprint(math.huge)}}
-\def\tkz at Max#1{\directlua{tex.sprint(math.max(#1))}}
-\def\tkz at Min#1{\directlua{tex.sprint(math.min(#1))}}
-\def\tkz at Random#1{\directlua{tex.sprint(math.random(#1))}}
-\def\tkz at veclen#1#2{%
-  \directlua{%
-    tex.print(string.format('\@percentchar.6f',math.sqrt((#1)^2+(#2)^2)))%
-  }%
-}
-\let\tkzSqrt\tkz at Sqrt
-\let\tkzPi\tkz at Pi
-\let\tkzExp\tkz at Exp
-\let\tkzLog\tkz at Log
-\let\tkzSin\tkz at Sin
-\let\tkzCos\tkz at Cos
-
-%  \tkzpointnormalised    normalise un point A-->A' tq ||v(OA')=1||
-% example
-% \tkzpointnormalised{%
-% \pgfpointdiff{\pgfpointanchor{A}{center}}
-%              {\pgfpointanchor{B}{center}}}
-
-% or
-% \pgf at x=1 cm
-% \pgf at y=12 cm 
-% \tkzpointnormalised{}
-%<--------------------------------------------------------------------------
-\def\tkzpointnormalised#1{%
-\pgf at process{#1}%
-\pgf at xa=\pgf at x%
-\pgf at ya=\pgf at y%
-\edef\tkz at temp@xa{\strip at pt\pgf at xa}%
-\edef\tkz at temp@ya{\strip at pt\pgf at ya}%
-\edef\tkz at den{\tkz at veclen{\tkz at temp@xa}{\tkz at temp@ya}}
-\edef\tkz at coordx{\tkz at Op{\tkz at temp@xa/\tkz at den}}
-\edef\tkz at coordx{\tkz at Dec{\tkz at Round{\tkz at coordx}{5}}}
-\edef\tkz at coordy{\tkz at Op{\tkz at temp@ya/\tkz at den}}
-\edef\tkz at coordy{\tkz at Dec{\tkz at Round{\tkz at coordy}{5}}}
-\pgf at x = \tkz at coordx pt
-\pgf at y = \tkz at coordy pt
-}
-%\def\tkz at Dec#1{\directlua{tex.print(string.format('\@percentchar.12f',#1))}}
-%<-------------------------------------------------------------------------->
-% restaure and save length
-\def\tkz at save@length{\global\let\tkz at temp@length\tkzLengthResult}%
-\def\tkz at restore@length{\global\let\tkzLengthResult\tkz at temp@length }% 
-%<-------------------------------------------------------------------------->
-%    \tkzCalcLength      Distance entre deux points en pt ou en cm  avec xfp 
-% \veclen mais avec fp 
-%  option cm le résultat est en cm sinon en pt with cm=false
-%<-------------------------------------------------------------------------->
-\pgfkeys{tkzcalclen/.cd,
-       cm/.is if         = tkzLengthIncm,
-       cm/.default       = true,
-       cm                = true}   
-
-\def\tkzCalcLength{\pgfutil at ifnextchar[{\tkz at CalcLength}{\tkz at CalcLength[]}}  
-\def\tkz at CalcLength[#1](#2,#3){%
-\pgfqkeys{/tkzcalclen}{#1}%   
-\begingroup
-\tkz@@CalcLength(#2,#3){tkzLengthResult}
-\iftkzLengthIncm 
-   \edef\tkz at xfpMathLen{\tkz at Dec{\tkz at Round{\tkzLengthResult/28.45274}{6}}}
-   \global\let\tkzLengthResult\tkz at xfpMathLen  
-\fi 
-\endgroup
-}%
-
-\def\tkz@@CalcLength(#1,#2)#3{%
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
-             {\pgfpointanchor{#2}{center}}%
-\edef\tkz at xa{\strip at pt\pgf at x}%
-\edef\tkz at ya{\strip at pt\pgf at y}%
-\edef\tkz at xfpMathLen{\tkz at veclen{\tkz at xa}{\tkz at ya}}
-\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
-}
-
-\def\tkz@@CalcLengthcm(#1,#2)#3{%
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
-             {\pgfpointanchor{#2}{center}}%
-\edef\tkz at xa{\strip at pt\pgf at x}%
-\edef\tkz at ya{\strip at pt\pgf at y}%
-\edef\tkz at xfpMathLen{\tkz at veclen{\tkz at xa}{\tkz at ya}}
-\edef\tkz at xfpMathLen{\tkz at Dec{\tkz at Round{\tkz at xfpMathLen/28.45274}{6}}}
-\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
-}
-\def\tkz@@CalcLengthb(#1,#2)#3{%
-\pgfpointdiff{\pgfpointanchor{#1}{center}}%
-             {\pgfpointanchor{#2}{center}}%
-\edef\tkz at xfpMathLen{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
-\edef\tkz at xfpMathLen{\fpeval{round(\tkz at xfpMathLen,6)}}
-\global\expandafter\edef\csname #3\endcsname{\tkz at xfpMathLen}
-}
-%<-------------------------------------------------------------------------->
-\def\tkzGetLength#1{%
-\global\expandafter\edef\csname #1\endcsname{\tkzLengthResult}}  
-%<-------------------------------------------------------------------------->
-%     \tkzpttocm  passage de pt   cm div par 28.45274
-%<-------------------------------------------------------------------------->
-\def\tkzpttocm(#1)#2{%
-\begingroup  
-  \edef\tkz at mathresult{\tkz at Round{#1/28.45274}{6}}
- \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}%
-\endgroup
-}%
-%<-------------------------------------------------------------------------->
-%     \tkzcmtopt  passage de cm   pt mul par 28.45274
-%<--------------------------------------------------------------------------
-\def\tkzcmtopt(#1)#2{%
-\begingroup 
-  \edef\tkz at mathresult{\tkz at Round{#1*28.45274}{6}}
-  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
-\endgroup  
-}% 
-%<---------------------------------------------------------–>
- \def\tkzGetResult#1{%
-   \global\expandafter\edef\csname #1\endcsname{\tkzMathResult}}
-%<---------------------------------------------------------–>
-%  Schrodinger's cat idea 03/01/20
-\tikzset{veclen/.code={%
-\pgfmathdeclarefunction*{veclen}{2}{%
-\begingroup%
-    \pgfmath at x##1pt\relax%
-    \pgfmath at y##2pt\relax%
-    \pgf at xa=\pgf at x%
-    \pgf at ya=\pgf at y%
-    \edef\tkz at temp@xa{\strip at pt\pgf at xa}% 
-    \edef\tkz at temp@ya{\strip at pt\pgf at ya}%
-    \edef\tkz at xfpMathLen{\tkz at veclen{\tkz at temp@xa}{\tkz at temp@ya}}%
-    \pgfmath at returnone\tkz at xfpMathLen pt%
-\endgroup%
-}}}%
-%<---------------------------------------------------------–>
-\def\tkzSwapPoints(#1,#2){
-   \pgfnodealias{tkzPointTmp}{#2}
-   \pgfnodealias{#2}{#1}
-   \pgfnodealias{#1}{tkzPointTmp}}
-%<---------------------------------------------------------–>
-\def\tkzPermute(#1,#2,#3){
-   \tkzURotateWithNodes(#1,#3,#2)(#3)  \tkzGetPoint{tkzpt}
-   \tkzURotateWithNodes(#1,#2,#3)(#2)  \tkzGetPoint{#2}
-   \tkzSwapPoints(tkzpt,#3)
-}
-%<---------------------------------------------------------–>
-\def\tkzDotProduct(#1,#2,#3){%
-\begingroup
-\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}% 
-\edef\tkzax{\strip at pt\pgf at x}%
-\edef\tkzay{\strip at pt\pgf at y}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#2}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#2}{center}}% 
-\edef\tkzbx{\strip at pt\pgf at x}%
-\edef\tkzby{\strip at pt\pgf at y}%
-\pgfextractx{\pgf at x}{\pgfpointanchor{#3}{center}}%
-\pgfextracty{\pgf at y}{\pgfpointanchor{#3}{center}}% 
-\edef\tkzcx{\strip at pt\pgf at x}%
-\edef\tkzcy{\strip at pt\pgf at y}%
-\edef\tkz at tmp{\tkz at Dec{\tkz at Round{((\tkzbx-(\tkzax))*(\tkzcx-(\tkzax))+(\tkzby-(\tkzay))*(\tkzcy-(\tkzay)))/809.55841}{6}}}
-\global\let\tkzMathResult\tkz at tmp
-\endgroup
-}
-
-% #1,#2 and #3 aligned
-\def\tkzIsLinear(#1,#2,#3){%
-\begingroup
-\tkz@@CalcLengthcm(#1,#2){tkz at la}
-\tkz@@CalcLengthcm(#1,#3){tkz at lb}
-\tkzDotProduct(#1,#2,#3)
-\edef\tkzResult{\tkz at Dec{\tkz at Abs{\tkzMathResult}-(\tkz at la)*(\tkz at lb)}}
-\ifdim \tkzResult pt < 0.01 pt\relax%
-\global\tkzLineartrue
-\else
-\global\tkzLinearfalse
-\fi
-\endgroup
-}
-%<---------------------------------------------------------–>
-% syntax : vec(#2,#1) ortho vec(#3,#1)
-\def\tkzIsOrtho(#1,#2,#3){%
-\begingroup
-\tkzDotProduct(#1,#2,#3)
-\edef\tkzResult{\tkz at Dec{\tkz at Abs{\tkzMathResult}}}
-\ifdim \tkzResult pt < 1 pt\relax%
-\global\tkzOrthotrue
-\else
-\global\tkzOrthofalse
-\fi
-\endgroup
-}
-%<---------------------------------------------------------–>
-% \tkzPowerCircle(M)(O,A) --> OM^2-OA^2
-\def\tkzPowerCircle(#1)(#2,#3){%     
-\begingroup 
-\tkz@@CalcLengthcm(#2,#3){tkz at ra}
-\tkz@@CalcLengthcm(#1,#2){tkz at om}
-\gdef\tkzMathResult{\tkz at Dec{(\tkz at om)^2-(\tkz at ra)^2}}
-\endgroup
-}
-%<---------------------------------------------------------–>
-\def\tkzDefRadicalAxis(#1,#2)(#3,#4){%
-\begingroup
-\tkz@@CalcLengthcm(#1,#3){tkz at d}
-\tkz@@CalcLengthcm(#1,#2){tkz at ra}
-\tkz@@CalcLengthcm(#3,#4){tkz at rb}
-\edef\tkzMathResult{\tkz at Dec{\tkz at d-(\tkz at ra+\tkz at rb)}}
-\edef\tkzMathResultb{\tkz at Dec{\tkz at Abs{(\tkz at d-(\tkz at ra+\tkz at rb))}}}
-\edef\tkzMathResultc{\tkz at Dec{\tkz at Abs{\tkz at d-\tkz at Abs{(\tkz at ra-(\tkz at rb))}}}}
-\ifdim \tkzMathResultc pt < 0.1 pt\relax%
- \tkzURotateAngle(#2,90)(#3) \tkzGetPoint{tkzFirstPointResult}
-  \tkzURotateAngle(#2,-90)(#3) \tkzGetPoint{tkzSecondPointResult}
-\else
-\ifdim \tkzMathResultb pt < 0.1 pt\relax%
- \tkzURotateAngle(#2,90)(#3) \tkzGetPoint{tkzFirstPointResult}
-  \tkzURotateAngle(#2,-90)(#3) \tkzGetPoint{tkzSecondPointResult}
-  \else
-\ifdim \tkzMathResult pt > 1 pt\relax%
-  \tkzURotateAngle(#1,60)(#3)    \tkzGetPoint{tkz at aux}
-  \tkzInterCC(#1,#2)(tkz at aux,#1) \tkzGetPoints{tkz at pta}{tkz at ptb}
-  \tkzInterCC(#3,#4)(tkz at aux,#1) \tkzGetPoints{tkz at ptc}{tkz at ptd}
-  \tkzInterLL(tkz at pta,tkz at ptb)(tkz at ptc,tkz at ptd) \tkzGetPoint{tkz at pta}
-  \tkzUProjection(#1,#3)(tkz at pta)  \tkzGetPoint{tkz at ptb}
-  \pgfnodealias{tkzSecondPointResult}{tkz at ptb}
-  \pgfnodealias{tkzFirstPointResult}{tkz at pta}
-\else
-\tkzInterCCR(#1,\tkz at ra)(#3,\tkz at rb){tkzFirstPointResult}{tkzSecondPointResult}
-\fi
-\fi
-\fi
-\endgroup
-} 
-
-\makeatother
-\endinput
\ No newline at end of file



More information about the tex-live-commits mailing list.