texlive[61496] Master/texmf-dist: tkz-euclide (4jan22)

commits+karl at tug.org commits+karl at tug.org
Tue Jan 4 23:31:15 CET 2022


Revision: 61496
          http://tug.org/svn/texlive?view=revision&revision=61496
Author:   karl
Date:     2022-01-04 23:31:15 +0100 (Tue, 04 Jan 2022)
Log Message:
-----------
tkz-euclide (4jan22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-angles.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circles.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-compass.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-installation.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-intersec.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-lines.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-news.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointby.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-points.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointsSpc.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointwith.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-polygons.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-presentation.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rapporteur.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rnd.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-show.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-triangles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.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-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-protractor.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circleby.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-clipping.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-drawing.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-elements.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-examples.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-filling.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-labelling.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-marking.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-others.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-styles.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg
    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-draw-angles.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-points-spc.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

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/Euclidean_geometry.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-arcs.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-base.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-config.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-exemples.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-sectors.tex
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/cheatsheet_euclide_1.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/cheatsheet_euclide_2.pdf
    trunk/Master/texmf-dist/doc/latex/tkz-euclide/examples/
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-arcs.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-angles.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-intersections.tex
    trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-math.tex

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

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/README.md	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,33 +1,31 @@
-# tkz-euclide — for euclidan geometry
+# tkz-euclide — for euclidean geometry
 
-Release 3.0§c 2020/04/06
+Release 4.00 b 2022/01/04
 
 ## Description
 
 `tkz-euclide` is a package (latex) which allows you to draw  two-dimensional
 geometric figures, in other words to create figures of Euclidean geometry.
-It uses a Cartesian coordinate system orthogonal provided by the `tkz-base`
-package as well as tools to define the unique coordinates of points and to
+It uses a Cartesian coordinate system orthogonormal (unit 1cm) 
+ as well as tools to define the unique coordinates of points and to
 manipulate them. The idea is to allow you to follow step by step a construction
 that would be done by hand as naturally as possible.
 
 ## Licence
 
-The scontents package may be modified and distributed under the terms and
-conditions of the [LaTeX Project Public License](https://www.latex-project.org/lppl/), version 1.3c or greater.
+This package may be modified and distributed under the terms and
+conditions of the [LaTeX Project Public License](https://www.latex-project.org/lppl/), version 1.3 or greater.
 
 
 ## Requirements
 
 The package compiles with utf8, pdflatex and lualatex, loads and depends on updated versions of:
-- [tkz-base](https://ctan.org/pkg/tkz-base)
 - [xfp](https://ctan.org/pkg/xfp)
-- [numprint](https://ctan.org/pkg/numprint)
 - [tikz](https://ctan.org/pkg/tikz)
 
 ## Installation
 
-The package `tkz-eculide` is present in TeXLive and MiKTeX, use the package
+The package `tkz-euclide` is present in TeXLive and MiKTeX, use the package
 manager to install.
 
 You can experiment with the `tkz-euclide` package by placing all of the
@@ -36,16 +34,6 @@
 The different files must be moved into the different directories in your
 installation `TDS` tree or in your `TEXMFHOME`:
 
-```
-  doc/cheatsheet_euclide_2.pdf -> TDS:doc/latex/tkz-euclide/cheatsheet_euclide_2.pdf
-  doc/cheatsheet_euclide_1.pdf -> TDS:doc/latex/tkz-euclide/cheatsheet_euclide_1.pdf
-  doc/Euclidean_geometry.pdf   -> TDS:doc/latex/tkz-euclide/Euclidean_geometry.pdf
-  doc/TKZdoc-euclide.pdf       -> TDS:doc/latex/tkz-euclide/TKZdoc-euclide.pdf
-  doc/README.md                -> TDS:doc/latex/tkz-euclide/README.md
-  doc/examples/*.*             -> TDS:doc/latex/tkz-euclide/examples/*.*
-  doc/sourcedoc/*.*            -> TDS:doc/latex/tkz-euclide/sourcedoc/*.*
-  code/*.*                     -> TDS:tex/latex/tkz-euclide/*.*
-```
 
 ## How to use it
 
@@ -54,7 +42,13 @@
 
 ```
 \usepackage{tkz-euclide}
+\begin{document}
+\begin{tikzpicture}
 ```
+your code
+```
+\end{tikzpicture}
+```
 
 The line `\usetkzobj{all}` is no longer required with `tkz-euclide` but you can use it with
 other packages.
@@ -64,26 +58,24 @@
 
 ## Documentation
 
-Documentation for `tkz-euclide` is available on `CTAN`. You have two
-cheatsheets about tkz-euclide in the archive. Use `texdoc tkz-euclide`.
+Documentation for `tkz-euclide` is available on `CTAN`. 
 
 ## Examples
 
-All  examples given in documentation will be stored on `CTAN` as standalone
-files, ready for compilation. You can use the main.tex file to load and
-compile  an example.
+All  examples given in documentation will be stored on my site : [http://altermundus.fr](http://altermundus.fr) as standalone
+files, ready for compilation. 
 
-The archive contains a litle document about Euclidean Geometry with four
-examples.
+Other examples, in French, are on my site.
 
-Other examples, en français, are on my site: [http://altermundus.fr](http://altermundus.fr)
-
 ## Compatibility
 
 The new version of `tkz-euclide` is *not* fully compatible with the version
-1.16 but the differences are minor.
+3.06 but the differences are minor.
 
 ## History
+- 4.00 correction of bugs, tkz-euclide no longer depends on tkz-base. The unit is "cm". 
+       The bounding box is controlled. The documentation has been restructured according to the rule:
+        set, calculate, draw, mark and fill, label.
 - 3.06 correction of bugs, amelioration of the documentation. 
 - 3.05 correction of bugs, amelioration of the documentation.
 - 3.02 replacement french documentation by english documentation, correction of bugs.

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-FAQ.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -4,6 +4,35 @@
  For the moment, I'm basing myself on my own, because having changed syntax several times, I've made a number of mistakes. This section is going to be expanded.
  
 \begin{itemize}\setlength{\itemsep}{10pt}
+ \item  Error "dimension too large"  : In some cases, this error occurs. One way to avoid it is to use the "\tkzname{xfp}" option. When this option is used in an environment, the "veclen" function is replaced by a function dependent on "xfp".  For example, an error occurs if you use the macro \tkzcname{tkzDrawArc}
+ with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present.
+
+\begin{tkzexample}[]
+\begin{tikzpicture}[scale=1.25]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2.5,0){N}
+  \tkzDefPoint(-4.2,0.5){M}
+  \tkzDefPointBy[rotation=center O angle 30](N)
+  \tkzGetPoint{B}
+  \tkzDefPointBy[rotation=center O angle -50](N)
+  \tkzGetPoint{A}
+  \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
+  \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
+  \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
+  \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
+  \tkzDrawSegments(A,C M,A M,B)
+  \tkzDrawCircle(O,N)
+  \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
+  \begin{scope}[xfp]
+    \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
+  \end{scope}
+  \tkzDrawPoints(O, A, B, M, B, C)
+  \tkzLabelPoints[right](O,A,B)
+  \tkzLabelPoints[above left](M,C)
+  \tkzLabelPoint[below left](A'){$A'$}
+\end{tikzpicture}
+\end{tkzexample}
+  
 \item \tkzcname{tkzDrawPoint(A,B)} when you need  \tkzcname{tkzDrawPoints}.
 
 \item  \tkzcname{tkzGetPoint(A)} When defining an object, use braces and not brackets, so write: \tkzcname{tkzGetPoint\{A\}}.
@@ -10,7 +39,7 @@
   
 \item \tkzcname{tkzGetPoint\{A\}} in place of \tkzcname{tkzGetFirstPoint\{A\}}. When a macro gives two points as results, either we retrieve these points using \tkzcname{tkzGetPoints\{A\}\{B\}}, or we retrieve only one of the two points, using \tkzcname{tkzGetFirstPoint\{A\}} or 
 \tkzcname{tkzGetSecondPoint\{A\}}. These two points can be used with the reference \tkzname{tkzFirstPointResult} or 
-\tkzname{tkzSecondPointResult}. It is possible that a third point is given as \tkzname{tkzPointResult}.  
+\tkzname{tkzSecondPointResult}. It is possible that a third point is given as\\ \tkzname{tkzPointResult}.  
      
 \item \tkzcname{tkzDrawSegment(A,B A,C)} when you need \tkzcname{tkzDrawSegments}. It is possible to use only the versions with an "s" but it is less efficient!
 
@@ -25,8 +54,5 @@
 
 \item Use of \tkzcname{tkzClip}: In order to get accurate results, I avoided using normalized vectors. The advantage of normalization is to control the dimension of the manipulated objects, the disadvantage is that with TeX, this implies inaccuracies. These inaccuracies are often small, in the order of a thousandth, but they lead to disasters if the drawing is enlarged. Not normalizing implies that some points are far away from the working area and \tkzcname{tkzClip} allows you to reduce the size of the drawing. 
 
-\item  An error occurs if you use the macro \tkzcname{tkzDrawAngle}
- with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present. It is possible to get around this difficulty with the option \tkzname{mkpos=.2} for example, which will place the mark before the arc. Another possibility is to use the macro \tkzcname{tkzFillAngle}.
-
 \end{itemize}    
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-angles.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-angles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-angles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,432 +1,8 @@
 \section{The angles} 
 
-\subsection{Colour an angle: fill}
 
-The simplest operation
-\begin{NewMacroBox}{tkzFillAngle}{\oarg{local options}\parg{A,O,B}}%
-$O$ is the vertex of the angle. $OA$ and $OB$ are the sides. Attention the angle is determined by the order of the points.
+%\section{Angles tools}
 
-\medskip
-
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                        \\ 
-\midrule
-\TOline{size}{1 cm}{this option determines the radius of the coloured angular sector.}
-
-\bottomrule
-\end{tabular} 
-
-\medskip
-Of course, you have to add all the styles of \TIKZ, like the use of fill and shade... 
-\end{NewMacroBox}  
-
-\subsubsection{Example with \tkzname{size}}  
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture} 
-   \tkzInit 
-   \tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
-   \tkzFillAngle[size=2cm, fill=gray!10](A,O,B)
-   \tkzDrawLines(O,A O,B)
-   \tkzDrawPoints(O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Changing the order of items} 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture} 
-   \tkzInit 
-   \tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
-   \tkzFillAngle[size=2cm,fill=gray!10](B,O,A)
-   \tkzDrawLines(O,A O,B)
-   \tkzDrawPoints(O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture} 
-   \tkzInit 
-   \tkzDefPoints{0/0/O,5/0/A,3/4/B}
-   % Don't forget {} to get, () to use
-   \tkzFillAngle[size=4cm,left color=white, 
-                 right color=red!50](A,O,B)
-   \tkzDrawLines(O,A O,B)
-   \tkzDrawPoints(O,A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{NewMacroBox}{tkzFillAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
-With common options, there is a macro for multiple angles.
-  \end{NewMacroBox}  
-  
-\subsubsection{Multiples angles}  
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=0.75]
-  \tkzDefPoint(0,0){B}
-  \tkzDefPoint(8,0){C}
-  \tkzDefPoint(0,8){A}
-  \tkzDefPoint(8,8){D}
-  \tkzDrawPolygon(B,C,D,A)
-  \tkzDefTriangle[equilateral](B,C) 
-  \tkzGetPoint{M}
-  \tkzInterLL(D,M)(A,B) \tkzGetPoint{N}
-  \tkzDefPointBy[rotation=center N angle -60](D) 
-  \tkzGetPoint{L}
-  \tkzInterLL(N,L)(M,B)     \tkzGetPoint{P}
-  \tkzInterLL(M,C)(D,L)     \tkzGetPoint{Q}
-  \tkzDrawSegments(D,N N,L L,D B,M M,C)
-  \tkzDrawPoints(L,N,P,Q,M,A,D) 
-  \tkzLabelPoints[left](N,P,Q)
-  \tkzLabelPoints[above](M,A,D)
-  \tkzLabelPoints(L,B,C)
-  \tkzMarkAngles(C,B,M B,M,C M,C,B%
-                 D,L,N L,N,D N,D,L)
-  \tkzFillAngles[fill=red!20,opacity=.2](C,B,M%
-      B,M,C M,C,B D,L,N L,N,D N,D,L)
-\end{tikzpicture}
-\end{tkzexample} 
- 
-\subsection{Mark an angle mark}
-More delicate operation because there are many options. The symbols used for marking in addition to those of \TIKZ\ are defined in the file |tkz-lib-marks.tex| and designated by the following characters:\begin{tkzltxexample}[]
-|, ||,|||, z, s, x, o, oo 
-\end{tkzltxexample}
-
-Their definitions are as follows
-
-\begin{tkzltxexample}[]
-\pgfdeclareplotmark{||}
-  %double bar
-{%
-  \pgfpathmoveto{\pgfqpoint{2\pgflinewidth}{\pgfplotmarksize}}
-  \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-\pgfplotmarksize}}
-  \pgfpathmoveto{\pgfqpoint{-2\pgflinewidth}{\pgfplotmarksize}}
-  \pgfpathlineto{\pgfqpoint{-2\pgflinewidth}{-\pgfplotmarksize}}
-  \pgfusepathqstroke
-}
-\end{tkzltxexample}
-
-\begin{tkzltxexample}[]
-  %triple bar
-  \pgfdeclareplotmark{|||}
-  {%
-    \pgfpathmoveto{\pgfqpoint{0 pt}{\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{0 pt}{-\pgfplotmarksize}}
-    \pgfpathmoveto{\pgfqpoint{-3\pgflinewidth}{\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{-3\pgflinewidth}{-\pgfplotmarksize}}
-    \pgfpathmoveto{\pgfqpoint{3\pgflinewidth}{\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{3\pgflinewidth}{-\pgfplotmarksize}}
-    \pgfusepathqstroke
-  } 
-\end{tkzltxexample}
-
-\begin{tkzltxexample}[]
-  % An bar slant
-  \pgfdeclareplotmark{s|}
-  {%
-    \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}%
-                             {-.70710678\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}%
-                             {.70710678\pgfplotmarksize}}
-    \pgfusepathqstroke
-  } 
-\end{tkzltxexample}
-
-
-\begin{tkzltxexample}[]
-  % An double bar slant
-  \pgfdeclareplotmark{s||}
-  {%
-   \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
-   \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}} 
-   \pgfpathmoveto{\pgfqpoint{0\pgfplotmarksize}{-\pgfplotmarksize}}
-   \pgfpathlineto{\pgfqpoint{1\pgfplotmarksize}{\pgfplotmarksize}} 
-   \pgfusepathqstroke
-  }   
-\end{tkzltxexample}
-
-
-\begin{tkzltxexample}[]
-  % z
-  \pgfdeclareplotmark{z}
-  {%
-    \pgfpathmoveto{\pgfqpoint{0.75\pgfplotmarksize}{-\pgfplotmarksize}} 
-    \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{0.75\pgfplotmarksize}{\pgfplotmarksize}}
-    \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{\pgfplotmarksize}}
-    \pgfusepathqstroke
-  }
-\end{tkzltxexample}
-
-\begin{tkzltxexample}[]
-  % s
-  \pgfdeclareplotmark{s}
-  {%
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
-     \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{-\pgfplotmarksize}{\pgfplotmarksize}}
-         {\pgfpoint{\pgfplotmarksize}{\pgfplotmarksize}}
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
-      \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{\pgfplotmarksize}{-\pgfplotmarksize}}
-         {\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}} 
-      \pgfusepathqstroke
-  }  
-\end{tkzltxexample}
-
-\begin{tkzltxexample}[]
-  % infinity
-  \pgfdeclareplotmark{oo}
-  {%
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
-     \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{.5\pgfplotmarksize}{1\pgfplotmarksize}}
-         {\pgfpoint{\pgfplotmarksize}{0pt}}
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
-      \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{-.5\pgfplotmarksize}{1\pgfplotmarksize}}
-         {\pgfpoint{-\pgfplotmarksize}{0pt}}  
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}  
-        \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{.5\pgfplotmarksize}{-1\pgfplotmarksize}}
-         {\pgfpoint{\pgfplotmarksize}{0pt}}
-     \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
-      \pgfpathcurveto
-         {\pgfpoint{0pt}{0pt}}
-         {\pgfpoint{-.5\pgfplotmarksize}{-1\pgfplotmarksize}}
-         {\pgfpoint{-\pgfplotmarksize}{0pt}}      
-      \pgfusepathqstroke
-  } 
-\end{tkzltxexample}
-
-
-
-%                \tkzMarkAngle(B, A, C)
-%
-% Marque d'angle
-% arc de cercle (simple/double/triple) et marque d'églité.
-%
-% Par défaut: 
-%                 arc       = simple
-%                 mksize  = 1cm (rayon de l'arc)
-%                 style traits pleins
-%                 mkpos ?  position: 0.5 (position de la marque)
-%                 mark rien du tout (ignoré si type est utilisé)
-%
-% Paramètres (optionnels)
-%             arc     : l, ll, lll
-%             mksize  : 1cm
-%             gap     : 3pt
-%             dist    : 1?
-%             style   : type de traits
-%             mkpos   : 0.5
-%             mark    : none  , |, ||,|||, z, s, x, o, oo mais tous les 
-%  % symboles de tikz sont permis
-
-\begin{NewMacroBox}{tkzMarkAngle}{\oarg{local options}\parg{A,O,B}}%
-$O$ is the vertex. Attention the arguments vary according to the options. Several markings are possible. You can simply draw an arc or  add a mark on this arc. The style of the arc is chosen with the option \tkzname{arc}, the radius of the arc is given by \tkzname{mksize}, the arc can, of course, be colored.
-
-\medskip
-
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                        \\ 
-\midrule
-\TOline{arc}{l}{choice of l, ll and lll (single, double or triple).}
-\TOline{size}{1 cm}{arc radius.}
-\TOline{mark}{none}{choice of mark.}
-\TOline{mksize}{4pt}{symbol size (mark).}
-\TOline{mkcolor}{black}{symbol color (mark).}
-\TOline{mkpos}{0.5}{position of the symbol on the arc.}
-\end{tabular} 
-\end{NewMacroBox}  
-
-\subsubsection{Example with \tkzname{mark = x}}
-\begin{tkzexample}[latex=6cm,small]
-    \begin{tikzpicture}[scale=.75]
-        \tkzDefPoints{0/0/O,5/0/A,3/4/B}
-        \tkzMarkAngle[size = 4cm,mark = x,
-                      arc=ll,mkcolor = red](A,O,B)
-        \tkzDrawLines(O,A O,B)
-        \tkzDrawPoints(O,A,B)
-    \end{tikzpicture}
-\end{tkzexample}
-\DeleteShortVerb{\|}
-\subsubsection{Example with \tkzname{mark =||}}
-\MakeShortVerb{\|}
-\begin{tkzexample}[latex=6cm,small]
-    \begin{tikzpicture}[scale=.75]
-        \tkzDefPoints{0/0/O,5/0/A,3/4/B}
-        \tkzMarkAngle[size = 4cm,mark = ||,
-                    arc=ll,mkcolor = red](A,O,B)
-        \tkzDrawLines(O,A O,B)
-        \tkzDrawPoints(O,A,B)
-    \end{tikzpicture}
-\end{tkzexample}
-
-\begin{NewMacroBox}{tkzMarkAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
-With common options, there is a macro for multiple angles.
-  \end{NewMacroBox}  
-  
-  
-\subsection{Label at an angle}
-
-\begin{NewMacroBox}{tkzLabelAngle}{\oarg{local options}\parg{A,O,B}}%
-There is only one option, dist (with or without unit), which can be replaced by the TikZ's pos option (without unit for the latter). By default, the value is in centimeters.
-
-\begin{tabular}{lll}%
-	\toprule
-options             & default & definition                        \\ 
-\midrule
-\TOline{pos}{1}{ or dist, controls the distance from the top to the label.}
-\bottomrule
-\end{tabular} 
-
-\medskip 
-It is possible to move the label with all TikZ options : rotate, shift, below, etc.
-\end{NewMacroBox}  
-
-\subsubsection{Example with \tkzname{pos}} 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
-  \tkzDefPoints{0/0/O,5/0/A,3/4/B}
-  \tkzMarkAngle[size = 4cm,mark = ||,
-      arc=ll,color = red](A,O,B)%     
-  \tkzDrawLines(O,A O,B)
-  \tkzDrawPoints(O,A,B)
-  \tkzLabelAngle[pos=2,draw,circle,
-      fill=blue!10](A,O,B){$\alpha$} 
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[rotate=30]
-  \tkzDefPoint(2,1){S} 
-  \tkzDefPoint(7,3){T}
-  \tkzDefPointBy[rotation=center S angle 60](T)
-  \tkzGetPoint{P} 
-  \tkzDefLine[bisector,normed](T,S,P)
-  \tkzGetPoint{s}
-  \tkzDrawPoints(S,T,P)   
-  \tkzDrawPolygon[color=blue](S,T,P) 
-  \tkzDrawLine[dashed,color=blue,add=0 and 3](S,s)  
-  \tkzLabelPoint[above right](P){$P$}
-  \tkzLabelPoints(S,T)
-  \tkzMarkAngle[size = 1.8cm,mark = |,arc=ll,
-                    color = blue](T,S,P)
-  \tkzMarkAngle[size = 2.1cm,mark = |,arc=l,
-                    color = blue](T,S,s)
-  \tkzMarkAngle[size = 2.3cm,mark = |,arc=l,
-                    color = blue](s,S,P)  
- \tkzLabelAngle[pos = 1.5](T,S,P){$60^{\circ}$}%    
- \tkzLabelAngles[pos = 2.7](T,S,s s,S,P){$30^{\circ}$}%   
-\end{tikzpicture}
-\end{tkzexample}
-
-\begin{NewMacroBox}{tkzLabelAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
-With common options, there is a macro for multiple angles.
-\end{NewMacroBox}  
-  
-\subsection{Marking a right angle}
-
-\begin{NewMacroBox}{tkzMarkRightAngle}{\oarg{local options}\parg{A,O,B}}%
-The \tkzname{german} option allows you to change the style of the drawing. The option \tkzname{size} allows to change the size of the drawing.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition         \\ 
-\midrule
-\TOline{german}{normal}{ german arc with inner point.}
-\TOline{size}{0.2}{ side size.}
-\end{tabular} 
-\end{NewMacroBox}  
-
-\subsubsection{Example of marking a right angle} 
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-  \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
-  \tkzDefPointBy[projection = onto B--A](P)  \tkzGetPoint{H}
-  \tkzDrawLines[add=.5 and .5](P,H)
-  \tkzMarkRightAngle[fill=blue!20,size=.5,draw](A,H,P) 
-  \tkzDrawLines[add=.5 and .5](A,B)
-  \tkzMarkRightAngle[fill=red!20,size=.8](B,H,P)
-  \tkzDrawPoints[](A,B,P,H)  
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example of marking a right angle, german style} 
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-  \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
-  \tkzDefPointBy[projection = onto B--A](P)  \tkzGetPoint{H}
-  \tkzDrawLines[add=.5 and .5](P,H)
-  \tkzMarkRightAngle[german,size=.5,draw](A,H,P) 
-  \tkzDrawPoints[](A,B,P,H) 
-  \tkzDrawLines[add=.5 and .5,fill=blue!20](A,B)
-  \tkzMarkRightAngle[german,size=.8](P,H,B) 
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Mix of styles} 
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.75]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(4,1){B}
-  \tkzDefPoint(2,5){C}
-  \tkzDefPointBy[projection=onto B--A](C) 
-      \tkzGetPoint{H}
-  \tkzDrawLine(A,B)
-  \tkzDrawLine[add = .5 and .2,color=red](C,H)
-  \tkzMarkRightAngle[,size=1,color=red](C,H,A)
-  \tkzMarkRightAngle[german,size=.8,color=blue](B,H,C)
-  \tkzFillAngle[opacity=.2,fill=blue!20,size=.8](B,H,C)
-  \tkzLabelPoints(A,B,C,H)
-  \tkzDrawPoints(A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Full example} 
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[rotate=-90]
-\tkzDefPoint(0,1){A}
-\tkzDefPoint(2,4){C}
-\tkzDefPointWith[orthogonal normed,K=7](C,A)
-\tkzGetPoint{B}
-\tkzDrawSegment[green!60!black](A,C)
-\tkzDrawSegment[green!60!black](C,B)
-\tkzDrawSegment[green!60!black](B,A)
-\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
-\tkzGetPoint{P}
-\tkzLabelPoint[left](A){$A$}
-\tkzLabelPoint[right](B){$B$}
-\tkzLabelPoint[above](C){$C$}
-\tkzLabelPoint[left](P){$P$}
-\tkzLabelSegment[auto](B,A){$c$}
-\tkzLabelSegment[auto,swap](B,C){$a$}
-\tkzLabelSegment[auto,swap](C,A){$b$}
-\tkzMarkAngle[size=1cm,color=cyan,mark=|](C,B,A)
-\tkzMarkAngle[size=1cm,color=cyan,mark=|](A,C,P)
-\tkzMarkAngle[size=0.75cm,color=orange,mark=||](P,C,B)
-\tkzMarkAngle[size=0.75cm,color=orange,mark=||](B,A,C)
-\tkzMarkRightAngle[german](A,C,B)
-\tkzMarkRightAngle[german](B,P,C)
-\end{tikzpicture} 
-\end{tkzexample} 
-
-\subsection{\tkzcname{tkzMarkRightAngles}}
-\begin{NewMacroBox}{tkzMarkRightAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
-With common options, there is a macro for multiple angles.
-\end{NewMacroBox}
-
-\section{Angles tools}
-
 \subsection{Recovering an angle \tkzcname{tkzGetAngle}}
 \begin{NewMacroBox}{tkzGetAngle}{\parg{name of macro}}%
 Assigns the value in degree of an angle to a macro. This macro retrieves \tkzcname{tkzAngleResult} and stores the result in a new macro.
@@ -446,9 +22,8 @@
  The point here is that $(AB)$ is the bisector of $\widehat{CAD}$, such that the $AD$ slope is zero. We recover the slope of $(AB)$ and then rotate twice.
 
 
-\begin{tkzexample}[vbox,small]
+\begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
-  \tkzInit
   \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}  
   \tkzDrawSegment(A,B)
   \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
@@ -456,7 +31,7 @@
    \tkzGetPoint{C}
   \tkzDefPointBy[rotation= center A angle -\tkzang ](B) 
   \tkzGetPoint{D}
-  \tkzCompass[length=1,dashed,color=red](A,C)
+  \tkzCompass[length=1](A,C)
   \tkzCompass[delta=10,brown](B,C)  
    \tkzDrawPoints(A,B,C,D)
   \tkzLabelPoints(B,C,D)  
@@ -483,7 +58,7 @@
 \end{tabular}
 
 \medskip
-The result is between -180 degrees and +180 degrees. pt2 is the vertex and \tkzcname{tkzGetAngle} can retrieve the angle.
+The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tkzcname{tkzGetAngle} can retrieve the angle.
 \end{NewMacroBox}
  
 \subsubsection{Verification of angle measurement}
@@ -502,104 +77,61 @@
   \tkzLabelPoints(A,B)
   \tkzLabelPoint[right](C){$C$}
   \tkzLabelAngle(B,A,C){\angleBAC$^\circ$}
-  \tkzMarkAngle[size=1.5cm](B,A,C)
+  \tkzMarkAngle[size=1.5](B,A,C)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsection{Example of the use of \tkzcname{tkzFindAngle} }
+\subsubsection{Determination of the three angles of a triangle}
 
-\begin{tkzexample}[vbox,small]
+\begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
-   \tkzInit[xmin=-1,ymin=-1,xmax=7,ymax=7]
-   \tkzClip  
-   \tkzDefPoint (0,0){O}  \tkzDefPoint (6,0){A}
-   \tkzDefPoint (5,5){B}  \tkzDefPoint (3,4){M}
-   \tkzFindAngle (A,O,M)  \tkzGetAngle{an}   
-   \tkzDefPointBy[rotation=center O angle \an](A) 
-   \tkzGetPoint{C}
-   \tkzDrawSector[fill = blue!50,opacity=.5](O,A)(C)
-   \tkzFindAngle(M,B,A)   \tkzGetAngle{am}
-   \tkzDefPointBy[rotation = center O angle \am](A) 
-   \tkzGetPoint{D} 
-   \tkzDrawSector[fill = red!50,opacity = .5](O,A)(D) 
-   \tkzDrawPoints(O,A,B,M,C,D)   
-   \tkzLabelPoints(O,A,B,M,C,D) 
-	\edef\an{\fpeval{round(\an,2)}}\edef\am{\fpeval{round(\am,2)}}
-   \tkzDrawSegments(M,B B,A)
-   \tkzText(4,2){$\widehat{AOC}=\widehat{AOM}=\an^{\circ}$} 
-   \tkzText(1,4){$\widehat{AOD}=\widehat{MBA}=\am^{\circ}$}  
+\tkzDefPoints{0/0/a,5/3/b,3/6/c}
+\tkzDrawPolygon(a,b,c)
+\tkzFindAngle(c,b,a)
+\tkzGetAngle{angleCBA}
+\pgfmathparse{round(1+\angleCBA)}
+\let\angleCBA\pgfmathresult
+\tkzFindAngle(a,c,b)
+\tkzGetAngle{angleACB}
+\pgfmathparse{round(\angleACB)}
+\let\angleACB\pgfmathresult
+\tkzFindAngle(b,a,c)
+\tkzGetAngle{angleBAC}
+\pgfmathparse{round(\angleBAC)}
+\let\angleBAC\pgfmathresult
+\tkzMarkAngle(c,b,a)
+\tkzLabelAngle[pos=1.4](c,b,a)%
+              {\tiny $\angleCBA^\circ$}
+\tkzMarkAngle(a,c,b)
+\tkzLabelAngle[pos=1.4](a,c,b)%
+              {\tiny $\angleACB^\circ$}
+\tkzMarkAngle(b,a,c)
+\tkzLabelAngle[pos=1.4](b,a,c)%
+              {\tiny $\angleBAC^\circ$}
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Determination of the three angles of a triangle}
+\subsubsection{Angle between two circles}
 
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}[scale=1.25,rotate=30]
-  \tkzDefPoints{0.5/1.5/A, 3.5/4/B, 6/2.5/C}
-  \tkzDrawPolygon(A,B,C) 
-  \tkzDrawPoints(A,B,C) 
-  \tkzLabelPoints[below](A,C)
-  \tkzLabelPoints[above](B)
-  \tkzMarkAngle[size=1cm](B,C,A)
-  \tkzFindAngle(B,C,A) 
-  \tkzGetAngle{angleBCA}
-  \edef\angleBCA{\fpeval{round(\angleBCA,2)}}
-  \tkzLabelAngle[pos = 1](B,C,A){$\angleBCA^{\circ}$}
-  \tkzMarkAngle[size=1cm](C,A,B)
-  \tkzFindAngle(C,A,B) 
-  \tkzGetAngle{angleBAC}
-  \edef\angleBAC{\fpeval{round(\angleBAC,2)}}
-  \tkzLabelAngle[pos = 1.8](C,A,B){%
-             $\angleBAC^{\circ}$} 
-  \tkzMarkAngle[size=1cm](A,B,C)
-  \tkzFindAngle(A,B,C) 
-  \tkzGetAngle{angleABC}
-  \edef\angleABC{\fpeval{round(\angleABC,2)}}
-  \tkzLabelAngle[pos = 1](A,B,C){$\angleABC^{\circ}$}
-  \end{tikzpicture}
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=.4]
+\pgfkeys{/pgf/number format/.cd,fixed,precision=1}
+\tkzDefPoints{0/0/A,6/0/B,4/2/C}
+\tkzDrawCircles(A,C B,C)
+\tkzDefTangent[at=C](A) \tkzGetPoint{a}
+\tkzDefPointsBy[symmetry = center C](a){d}
+\tkzDefTangent[at=C](B) \tkzGetPoint{b}
+\tkzDrawLines[add=1 and 4](a,C  C,b)
+\tkzDrawSegments(A,C B,C)
+\tkzFindAngle(b,C,d)\tkzGetAngle{bcd}
+\tkzMarkAngle[size=3,arc=ll,mark=s](b,C,d)
+\tkzFillAngle[fill=teal,opacity=.2,size=2](b,C,d)
+\tkzLabelAngle[pos=1.25](b,C,d){%
+  \tiny $\pgfmathprintnumber{\bcd}^\circ$}
+\end{tikzpicture}
 \end{tkzexample}
 
- \subsection{Determining a slope}
-It is a question of determining whether it exists, the slope of a straight line defined by two points. No verification of the existence is made.
 
-\begin{NewMacroBox}{tkzFindSlope}{\parg{pt1,pt2}\marg{name of macro}}%
-The result is stored in a macro.
-
-\medskip
-
-\begin{tabular}{lll}%
-\toprule
-arguments             & example & explication                         \\
-\midrule
-\TAline{(pt1,pt2){pt3}} {\tkzcname{tkzFindSlope}(A,B)\{slope\}}{\tkzcname{slope} will give the result of $\frac{y_B-y_A}{x_B-x_A}$} \\
-\bottomrule
-\end{tabular}
-
-\medskip
-\tkzHandBomb\ Careful not to have $x_B=x_A$.
-\end{NewMacroBox}
-
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.5]
-  \tkzInit[xmax=4,ymax=5]\tkzGrid[sub]
-  \tkzDefPoint(1,2){A}    \tkzDefPoint(3,4){B}
-  \tkzDefPoint(3,2){C}    \tkzDefPoint(3,1){D}
-  \tkzDrawSegments(A,B A,C A,D)
-  \tkzDrawPoints[color=red](A,B,C,D)  
-  \tkzLabelPoints(A,B,C,D)
-  \tkzFindSlope(A,B){SAB} \tkzFindSlope(A,C){SAC}
-  \tkzFindSlope(A,D){SAD}
-  \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
-  \tkzText[fill=Gold!50,draw=brown](1,4)%
-  {The slope of (AB) is : $\pgfmathprintnumber{\SAB}$}     
-  \tkzText[fill=Gold!50,draw=brown](1,3.5)%
-  {The slope of (AC) is : $\pgfmathprintnumber{\SAC}$}    
-  \tkzText[fill=Gold!50,draw=brown](1,3)%
-  {The slope of (AD) is : $\pgfmathprintnumber{\SAD}$}
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsection{Angle formed by a straight line with the horizontal axis \tkzcname{tkzFindSlopeAngle}}
 Much more interesting than the last one. The result is between -180 degrees and +180 degrees.
 
@@ -618,55 +150,49 @@
 \medskip
 \tkzcname{tkzGetAngle} can retrieve the result. If retrieval is not necessary, you can use \tkzcname{tkzAngleResult}.
 \end{NewMacroBox}
- 
- \subsubsection{Folding}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture} 
-  \tkzDefPoint(1,5){A}
-  \tkzDefPoint(5,2){B}  
-  \tkzDrawSegment(A,B) 
-  \tkzFindSlopeAngle(A,B)
-  \tkzGetAngle{tkzang}
-  \tkzDefPointBy[rotation= center A angle \tkzang ](B) 
-  \tkzGetPoint{C} 
-  \tkzDefPointBy[rotation= center A angle -\tkzang ](B) 
-  \tkzGetPoint{D} 
-  \tkzCompass[orange,length=1](A,C) 
-  \tkzCompass[orange,delta=10](B,C)   
-  \tkzDrawPoints(A,B,C,D) 
-  \tkzLabelPoints(B,C,D)  
-  \tkzLabelPoints[above left](A) 
-  \tkzDrawSegments[style=dashed,color=orange](A,C A,D)
-\end{tikzpicture}
-\end{tkzexample}
 
-\subsubsection{Example of the use of \tkzcname{tkzFindSlopeAngle}}
+
+\subsubsection{Use of \tkzcname{tkzFindSlopeAngle} and \tkzcname{tkzGetAngle}}
 Here is another version of the construction of a mediator
 
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}
  \tkzInit
- \tkzDefPoint(0,0){A}        
- \tkzDefPoint(3,2){B}
- \tkzDefLine[mediator](A,B)  
- \tkzGetPoints{I}{J}
- \tkzCalcLength[cm](A,B)     
- \tkzGetLength{dAB}
- \tkzFindSlopeAngle(A,B)     
- \tkzGetAngle{tkzangle}
+ \tkzDefPoint(0,0){A}        \tkzDefPoint(3,2){B}
+ \tkzDefLine[mediator](A,B)  \tkzGetPoints{I}{J}
+ \tkzCalcLength(A,B)         \tkzGetLength{dAB}
+ \tkzFindSlopeAngle(A,B)     \tkzGetAngle{tkzangle}
  \begin{scope}[rotate=\tkzangle]
-   \tikzset{arc/.style={color=gray,delta=10}}
-   \tkzDrawArc[orange,R,arc](B,3/4*\dAB)(120,240)
-   \tkzDrawArc[orange,R,arc](A,3/4*\dAB)(-45,60)
-   \tkzDrawLine(I,J)         
-   \tkzDrawSegment(A,B)
+   \tkzSetUpArc[color=gray,line width=0.2pt,/tkzcompass/delta=10]
+   \tkzDrawArc[R,arc](B,3/4*\dAB)(120,240)
+   \tkzDrawArc[R,arc](A,3/4*\dAB)(-45,60)
+   \tkzDrawLine(I,J)         \tkzDrawSegment(A,B)
   \end{scope}
-  \tkzDrawPoints(A,B,I,J)    
-  \tkzLabelPoints(A,B)
+  \tkzDrawPoints(A,B,I,J)    \tkzLabelPoints(A,B)
    \tkzLabelPoints[right](I,J)
 \end{tikzpicture}
 \end{tkzexample}
- 
-\endinput
 
+\subsubsection{Another use of \tkzcname{tkzFindSlopeAngle}}
 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.5]
+  \tkzDefPoint(1,2){A}    \tkzDefPoint(3,4){B}
+  \tkzDefPoint(3,2){C}    \tkzDefPoint(3,1){D}
+  \tkzDrawSegments(A,B A,C A,D)
+  \tkzDrawPoints[color=red](A,B,C,D)  
+  \tkzLabelPoints(A,B,C,D)
+  \tkzFindSlopeAngle(A,B)\tkzGetAngle{SAB} 
+  \tkzFindSlopeAngle(A,C)\tkzGetAngle{SAC}
+  \tkzFindSlopeAngle(A,D)\tkzGetAngle{SAD}
+  \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+  \tkzText(1,5){The slope of (AB) is : 
+     $\pgfmathprintnumber{\SAB}$}     
+  \tkzText(1,4.5){The slope of (AC) is : 
+     $\pgfmathprintnumber{\SAC}$}    
+  \tkzText(1,4){The slope of (AD) is : 
+     $\pgfmathprintnumber{\SAD}$}
+\end{tikzpicture}
+\end{tkzexample}
+ 
+\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-arcs.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-arcs.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-arcs.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,178 +0,0 @@
-\section{The arcs} 
-\begin{NewMacroBox}{tkzDrawArc}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
-
-This macro traces the arc of center $O$. Depending on the options, the arguments differ.   It is a question of determining a starting point and an end point. Either the starting point is given, which is the simplest, or the radius of the arc is given. In the latter case, it is necessary to have two angles. Either the angles can be given directly, or nodes associated with the center can be given to determine them. The angles are in degrees.
-
-\medskip
-
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                        \\ 
-\midrule
-\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$} 
-\TOline{rotate} {towards}{the arc starts from $A$ and the angle determines its length} 
-\TOline{R}{towards}{We give the radius and two angles} 
-\TOline{R with nodes}{towards}{We give the radius and two points}
-\TOline{angles}{towards}{We give the radius and two points}
-\TOline{delta}{0}{angle added on each side } 
-\bottomrule
-\end{tabular}
-
-\medskip
-Of course, you have to add all the styles of \TIKZ\ for the tracings...
-
-\medskip
-
-\begin{tabular}{lll}%
-\toprule
-options             & arguments & example                         \\ 
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawArc[delta=10](O,A)(B)}} 
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawArc[rotate,color=red](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawArc[R](O,2 cm)(30,90)}}
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawArc[R with nodes](O,2 cm)(A,B)}}
-\TOline{angles}{\parg{pt,pt}\parg{an,an}}{\tkzcname{tkzDrawArc[angles](O,A)(0,90)}}
-\end{tabular}
-\end{NewMacroBox}
-
-Here are a few examples: 
-
-\subsection{Option \tkzname{towards}}
-It's useless to put \tkzname{towards}. In this first example the arc starts from $A$ and goes to $B$. The arc going from $B$ to $A$ is different. The salient is obtained by going in the direct direction of the trigonometric circle.
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-1){A}
-  \tkzDefPointBy[rotation= center O angle 90](A)
-  \tkzGetPoint{B}
-  \tkzDrawArc[color=blue,<->](O,A)(B) 
-  \tkzDrawArc(O,B)(A)
-  \tkzDrawLines[add = 0 and .5](O,A O,B)
-  \tkzDrawPoints(O,A,B)
-  \tkzLabelPoints[below](O,A,B)  
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Option \tkzname{towards}}
-In this one, the arc starts from A but stops on the right (OB).
- 
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1.5] 
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-1){A}
-  \tkzDefPoint(1,1){B} 
-  \tkzDrawArc[color=blue,->](O,A)(B)
-  \tkzDrawArc[color=gray](O,B)(A)
-  \tkzDrawArc(O,B)(A)
-  \tkzDrawLines[add = 0 and .5](O,A O,B) 
-  \tkzDrawPoints(O,A,B)
-  \tkzLabelPoints[below](O,A,B)  
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Option \tkzname{rotate}}
-\begin{tkzexample}[latex=5cm,small] 
-\begin{tikzpicture} 
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-2){A}
-  \tkzDefPoint(60:2){B}
-  \tkzDrawLines[add = 0 and .5](O,A O,B)
-  \tkzDrawArc[rotate,color=red](O,A)(180)
-  \tkzDrawPoints(O,A,B)
-  \tkzLabelPoints[below](O,A,B) 
-\end{tikzpicture}
-\end{tkzexample} 
-
-
-\subsection{Option \tkzname{R}} 
-\begin{tkzexample}[latex=5cm,small]   
-\begin{tikzpicture}
-  \tkzDefPoints{0/0/O}
-  \tikzset{compass style/.append style={<->}}   
-  \tkzDrawArc[R,color=orange,double](O,3cm)(270,360)
-  \tkzDrawArc[R,color=blue,double](O,2cm)(0,270) 
-  \tkzDrawPoint(O)
-  \tkzLabelPoint[below](O){$O$}  
-\end{tikzpicture} 
-\end{tkzexample}
-
-\subsection{Option \tkzname{R with nodes}} 
-\begin{tkzexample}[latex=5cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-1){A}
-  \tkzDefPoint(1,1){B}
-  \tkzCalcLength(B,A)\tkzGetLength{radius}
-  \tkzDrawArc[R with nodes](B,\radius pt)(A,O)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Option \tkzname{delta}}
-This option allows a bit like \tkzcname{tkzCompass} to place an arc and overflow on either side. delta is a measure in degrees.
-
-\begin{tkzexample}[latex=7cm,small] 
-\begin{tikzpicture} 
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(5,0){B}
- \tkzDefPointBy[rotation= center A angle 60](B)
- \tkzGetPoint{C} 
- \tkzSetUpLine[color=gray]
- \tkzDefPointBy[symmetry= center C](A)
- \tkzGetPoint{D} 
- \tkzDrawSegments(A,B A,D)
- \tkzDrawLine(B,D)
- \tkzSetUpCompass[color=orange]
- \tkzDrawArc[orange,delta=10](A,B)(C)
- \tkzDrawArc[orange,delta=10](B,C)(A)
- \tkzDrawArc[orange,delta=10](C,D)(D)
- \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(A,B,C,D)
- \tkzMarkRightAngle(D,B,A)
-\end{tikzpicture}
-\end{tkzexample} 
-
-\subsection{Option \tkzname{angles}: example 1}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(5,0){B}  
-  \tkzDefPoint(2.5,0){O} 
-  \tkzDefPointBy[rotation=center O angle 60](B)
-  \tkzGetPoint{D}
-  \tkzDefPointBy[symmetry=center D](O)
-  \tkzGetPoint{E}
-  \tkzSetUpLine[color=Maroon]   
-  \tkzDrawArc[angles](O,B)(0,180)
-  \tkzDrawArc[angles,](B,O)(100,180)  
-  \tkzCompass[delta=20](D,E) 
-  \tkzDrawLines(A,B O,E B,E)
-  \tkzDrawPoints(A,B,O,D,E)
-  \tkzLabelPoints(A,B,O,D,E)
-  \tkzMarkRightAngle(O,B,E) 
-\end{tikzpicture} 
-\end{tkzexample}
-
-\subsection{Option \tkzname{angles}: example 2}
-
-
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}
-   \tkzDefPoint(0,0){O}
-   \tkzDefPoint(5,0){I} 
-   \tkzDefPoint(0,5){J}
-   \tkzInterCC(O,I)(I,O)\tkzGetPoints{B}{C}  
-   \tkzInterCC(O,I)(J,O)\tkzGetPoints{D}{A}
-   \tkzInterCC(I,O)(J,O)\tkzGetPoints{L}{K}
-   \tkzDrawArc[angles](O,I)(0,90)
-   \tkzDrawArc[angles,color=gray,style=dashed](I,O)(90,180)
-   \tkzDrawArc[angles,color=gray,style=dashed](J,O)(-90,0)
-   \tkzDrawPoints(A,B,K)
-   \foreach \point in {I,A,B,J,K}{\tkzDrawSegment(O,\point)} 
-  \end{tikzpicture} 
-\end{tkzexample}
-
-
- \endinput
- 

Deleted: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-base.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-base.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-base.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,61 +0,0 @@
-\section{Summary of tkz-base}
-
-\subsection{Utility of \tkzname{tkz-base}} 
-
-First of all, you don't have to deal with \TIKZ\ the size of the bounding box. Early versions of \tkzNamePack{tkz-euclide} did not control the size of the bounding box, now the size of the bounding box is limited.
-
- However, it is sometimes necessary to control the size of what will be displayed.
- To do this, you need to have prepared the bounding box you are going to work in, this is the role of \tkzNamePack{tkz-base} and its main macro \tkzNameMacro{tkzInit}. It is recommended to leave the graphic unit equal to 1 cm. For some drawings, it is interesting to fix the extreme values (xmin,xmax,ymin and ymax) and to "clip" the definition rectangle in order to control the size of the figure as well as possible.
-
-The two macros in \tkzNamePack{tkz-base} that are useful for \tkzNamePack{tkz-euclide} are:
-\begin{itemize}
-   \item \tkzcname{tkzInit}
-   \item \tkzcname{tkzClip}
-\end{itemize}
-\vspace{20pt}
-
-To this, I added macros directly linked to the bounding box. You can now view it, backup it, restore it (see the documentation of \tkzNamePack{tkz-base} section Bounding Box).
-
-\subsection{\tkzcname{tkzInit} and \tkzcname{tkzShowBB}}
-The rectangle around the figure shows you the bounding box.
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}
- \tkzInit[xmin=-1,xmax=3,ymin=-1, ymax=3]
- \tkzGrid
- \tkzShowBB[red,line width=2pt]
-\end{tikzpicture}
-\end{tkzexample} 
-
-\subsection{\tkzcname{tkzClip}}
-The role of this macro is to "clip" the initial rectangle so that only the paths contained in this rectangle are drawn.
-
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY 
- \tkzGrid
- \tkzClip
- \draw[red] (-1,-1)--(5,2);
-\end{tikzpicture}
-\end{tkzexample} 
-
-It is possible to add a bit of space
-\begin{tkzltxexample}[]
-  \tkzClip[space=1]
-\end{tkzltxexample} 
-
-\subsection{\tkzcname{tkzClip} and the option \tkzname{space}} 
-This option allows you to add some space around the "clipped" rectangle.
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}
- \tkzInit[xmax=4, ymax=3]
- \tkzAxeXY 
- \tkzGrid
- \tkzClip[space=1]
- \draw[red] (-1,-1)--(5,2);
-\end{tikzpicture}
-\end{tkzexample}   
-The dimensions of the "clipped" rectangle are \tkzname{xmin-1}, \tkzname{ymin-1}, \tkzname{xmax+1} and \tkzname{ymax+1}. 
-
-
-\endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circleby.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circleby.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circleby.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,204 @@
+\section{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} }
+These transformations are:
+
+\begin{itemize}
+   \item translation;
+   \item homothety;
+   \item orthogonal reflection or symmetry;
+   \item central symmetry;
+   \item orthogonal projection;
+   \item rotation (degrees);
+   \item orthogonal from ;
+   \item orthogonal through;
+   \item inversion.
+\end{itemize}
+
+The choice of transformations is made through the options. The macro is \tkzcname{tkzDefCircleBy} and the other for the transformation of a list of points \tkzcname{tkzDefCirclesBy}. For example, we'll write:
+\begin{tkzltxexample}[]
+\tkzDefCircleBy[translation= from A to A'](O,M) 
+\end{tkzltxexample}
+$O$ is the center and $M$ is a point on the circle.
+The image is a circle. The new center is |tkzFirstPointResult| and |tkzSecondPointResult| is a point on the new circle. You can get the results with the macro \tkzcname{tkzGetPoints} .
+\medskip
+\begin{NewMacroBox}{tkzDefCircleBy}{\oarg{local options}\parg{pt1,pt2}}%
+The argument is a couple of points. The results is a couple of points. If you want to keep these points then the macro \tkzcname{tkzGetPoints\{O'\}\{M'\}} allows you to assign the name \tkzname{O'} to the center and \tkzname{M'} to the point on the circle.
+
+\begin{tabular}{lll}%
+\toprule
+arguments &  definition & examples               \\ 
+\midrule
+\TAline{pt1,pt2}   {existing points}   {$(O,M)$}
+\bottomrule
+\end{tabular}
+
+\begin{tabular}{lll}%
+options     &     & examples                         \\ 
+\midrule
+\TOline{translation}{= from \#1 to \#2}{[translation=from A to B](O,M)}
+\TOline{homothety}  {= center \#1 ratio \#2}{[homothety=center A ratio .5](O,M)}
+\TOline{reflection} {= over \#1--\#2}{[reflection=over A--B](O,M)}
+\TOline{symmetry }  {= center \#1}{[symmetry=center A](O,M)}
+\TOline{projection }{= onto \#1--\#2}{[projection=onto A--B](O,M)}
+\TOline{rotation }  {= center \#1 angle \#2}{[rotation=center O angle 30](O,M)}
+\TOline{orthogonal from} {= \#1}{[orthogonal from = A ](O,M)}
+\TOline{orthogonal through}{= \#1 and \#2}{[orthogonal through = A and B](O,M)}
+\TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](O,M)} 
+% \TOline{inversion negative}{= center \#1 through \#2}{[inversion negative =center O through A](O,M)}
+\bottomrule
+\end{tabular}
+
+The image is only defined and not drawn.
+\end{NewMacroBox} 
+
+\subsection{Examples of transformations} 
+
+\subsubsection{\tkzname{Translation}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[>=latex] 
+ \tkzDefPoint(0,0){A}  \tkzDefPoint(3,1){B}
+ \tkzDefPoint(3,2){C}   \tkzDefPoint(4,3){D}
+ \tkzDefCircleBy[translation= from B to A](C,D) 
+ \tkzGetPoints{C'}{D'} 
+ \tkzDrawPoints[teal](A,B,C,D,C',D')
+ \tkzLabelPoints[color=teal](A,B,C,D,C',D') 
+ \tkzDrawSegments[orange,->](A,B)
+ \tkzDrawCircles(C,D C',D')
+\end{tikzpicture} 
+\end{tkzexample}
+
+ \subsubsection{\tkzname{Reflection} (orthogonal symmetry)}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[>=latex] 
+ \tkzDefPoint(0,0){A}  \tkzDefPoint(3,1){B}
+ \tkzDefPoint(3,2){C}   \tkzDefPoint(4,3){D}
+ \tkzDefCircleBy[reflection = over A--B](C,D)
+ \tkzGetPoints{C'}{D'} 
+ \tkzDrawPoints[teal](A,B,C,D,C',D')
+ \tkzLabelPoints[color=teal](A,B,C,D,C',D') 
+ \tkzDrawLine[add =0 and 1][orange](A,B)
+ \tkzDrawCircles(C,D C',D')
+\end{tikzpicture} 
+\end{tkzexample}
+
+
+\subsubsection{\tkzname{Homothety}}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.2]
+ \tkzDefPoint(0,0){A}   \tkzDefPoint(3,1){B}
+ \tkzDefPoint(3,2){C}   \tkzDefPoint(4,3){D}
+ \tkzDefCircleBy[homothety=center A ratio .5](C,D)
+ \tkzGetPoints{C'}{D'}
+ \tkzDrawPoints[teal](A,C,D,C',D')
+ \tkzLabelPoints[color=teal](A,C,D,C',D')
+ \tkzDrawCircles(C,D C',D')
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{\tkzname{Symmetry}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){A}   \tkzDefPoint(3,1){B}
+ \tkzDefPoint(3,2){C}   \tkzDefPoint(4,3){D}
+ \tkzDefCircleBy[symmetry=center B](C,D)
+ \tkzGetPoints{C'}{D'}
+ \tkzDrawPoints[teal](B,C,D,C',D')
+ \tkzLabelPoints[color=teal](B,C,D,C',D')
+ \tkzDrawLines[orange](C,C' D,D')
+ \tkzDrawCircles(C,D C',D')
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzname{Rotation}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=0.5]
+ \tkzDefPoint(0,0){A}   \tkzDefPoint(3,-1){B}
+ \tkzDefPoint(3,2){C}   \tkzDefPoint(4,3){D}
+ \tkzDefCircleBy[rotation=center B angle 60](C,D)
+ \tkzGetPoints{C'}{D'}
+ \tkzDrawPoints[teal](B,C,D,C',D')
+ \tkzLabelPoints[color=teal](B,C,D,C',D')
+ \tkzDrawCircles(C,D C',D')
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{\tkzname{Orthogonal from}}
+Orthogonal circle of given center. \tkzcname{tkzGetPoints{z1}{z2}} gives two points of the circle.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoints{0/0/O,1/0/A}
+  \tkzDefPoints{1.5/1.25/B,-2/-3/C}
+  \tkzDefCircleBy[orthogonal from=B](O,A)
+  \tkzGetPoints{z1}{z2}
+  \tkzDefCircleBy[orthogonal from=C](O,A)
+  \tkzGetPoints{t1}{t2}
+  \tkzDrawCircle(O,A)
+  \tkzDrawCircles[new](B,z1 C,t1)
+  \tkzDrawPoints(t1,t2,C)
+  \tkzDrawPoints(z1,z2,O,A,B)
+  \tkzLabelPoints(O,A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzname{Orthogonal from} : Right angle between circles}
+We are looking for a circle orthogonal to the given circle.
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/A,6/0/B,4/2/D}
+\tkzDefCircleBy[orthogonal from=B](A,D)
+\tkzGetFirstPoint{C}
+\tkzDrawCircles(A,C B,C)
+\tkzDefTangent[at=C](A) \tkzGetPoint{a}
+\tkzDefPointsBy[symmetry = center C](a){d}
+\tkzDefTangent[at=C](B) \tkzGetPoint{b}
+\tkzDrawLines[add=1 and 4](a,C  C,b)
+\tkzDrawSegments(A,C B,C)
+\tkzMarkAngle[size=2.5](b,C,d)
+\tkzFillAngle[fill=teal,opacity=.2,size=3](b,C,d)
+\end{tikzpicture}
+\end{tkzexample}
+
+ \subsubsection{\tkzname{Orthogonal through}}
+Orthogonal circle passing through two given points.
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(1,0){A}
+  \tkzDrawCircle(O,A)
+  \tkzDefPoint(-1.5,-1.5){z1}
+  \tkzDefPoint(1.5,-1.25){z2}
+  \tkzDefCircleBy[orthogonal through=z1 and z2](O,A)
+   \tkzGetPoint{c}
+  \tkzDrawCircle[new](tkzPointResult,z1)
+  \tkzDrawPoints[new](O,A,z1,z2,c)
+  \tkzLabelPoints(O,A,z1,z2,c)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{\tkzname{Inversion}}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.5]
+\tkzSetUpPoint[size=4,color=red,fill=red!20]
+\tkzSetUpStyle[color=purple,ultra thin]{st1}
+\tkzSetUpStyle[color=cyan,ultra thin]{st2}
+\tkzDefPoint(2,0){A} \tkzDefPoint(3,0){B} 
+\tkzDefPoint(3,2){C} \tkzDefPoint(4,2){D} 
+\tkzDefCircleBy[inversion = center B through A](C,D) 
+\tkzGetPoints{C'}{D'}
+\tkzDrawPoints(A,B,C,D,C',D') 
+\tkzLabelPoints(A,B,C,D,C',D')
+\tkzDrawCircles(B,A)
+\tkzDrawCircles[st1](C,D)
+\tkzDrawCircles[st2](C',D')
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circleby.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circles.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-circles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -20,7 +20,7 @@
 This macro allows you to retrieve the characteristics (center and radius) of certain circles.
 
 \begin{NewMacroBox}{tkzDefCircle}{\oarg{local options}\parg{A,B} or \parg{A,B,C}}%
-\tkzHandBomb\ Attention the arguments are lists of two or three points. This macro is either used in partnership with \tkzcname{tkzGetPoint} and/or \tkzcname{tkzGetLength} to obtain the center and the radius of the circle, or by using \tkzname{tkzPointResult} and \tkzname{tkzLengthResult} if it is not necessary to keep the results.
+\tkzHandBomb\ Attention the arguments are lists of two or three points. This macro is either used in partnership with \\ \tkzcname{tkzGetPoint} and/or \tkzcname{tkzGetLength} to obtain the center and the radius of the circle, or by using \\ \tkzname{tkzPointResult} and \tkzname{tkzLengthResult} if it is not necessary to keep the results.
 
 \medskip
 \begin{tabular}{lll}%
@@ -44,8 +44,6 @@
 \TOline{euler or nine}{through}{Euler's Circle}
 \TOline{spieker}      {through}{Spieker Circle}
 \TOline{apollonius}   {through}{circle of Apollonius} 
-\TOline{orthogonal}   {through}{circle of given centre orthogonal to another circle}
-\TOline{orthogonal through}{through}{circle orthogonal circle passing through 2 points} 
 \TOline{K} {1}{coefficient used for a circle of Apollonius} 
  \bottomrule
 \end{tabular}
@@ -56,24 +54,24 @@
  \subsubsection{Example with a random point and  option \tkzname{through}} 
 
 \begin{tkzexample}[latex=7 cm,small]
- \begin{tikzpicture}[scale=1]
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(2,2){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{I}
- \tkzDefRandPointOn[segment = I--B]
+\begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,4){A}
+  \tkzDefPoint(2,2){B}
+  \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+  \tkzDefRandPointOn[segment = I--B]
   \tkzGetPoint{C}
- \tkzDefCircle[through](A,C) 
- \tkzGetLength{rACpt}
- \tkzpttocm(\rACpt){rACcm} 
- \tkzDrawCircle(A,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B,C) 
- \tkzLabelCircle[draw,fill=orange,
-          text width=3cm,text centered,
-          font=\scriptsize](A,C)(-90)%
- {The radius measurement is:
-  \rACpt pt i.e. \rACcm cm}  
- \end{tikzpicture}     
+  \tkzDefCircle[through](A,C) 
+  \tkzGetLength{rACcm}
+  \tkzcmtopt(\rACcm){rACpt}
+  \tkzDrawCircle(A,C)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(A,B,C) 
+  \tkzLabelCircle[draw,
+           text width=3cm,text centered,
+           font=\scriptsize,below=1cm](A,C)(-90)%
+  {The radius measurement is:
+   \rACcm cm i.e. \rACpt pt}  
+\end{tikzpicture}   
  \end{tkzexample}  
  
  \subsubsection{Example with  option \tkzname{diameter}}  
@@ -84,7 +82,7 @@
     \tkzDefPoint(2,2){B}
     \tkzDefCircle[diameter](A,B)  
     \tkzGetPoint{O}  
-    \tkzDrawCircle[blue,fill=blue!20](O,B) 
+    \tkzDrawCircle(O,B) 
     \tkzDrawSegment(A,B)
     \tkzDrawPoints(A,B,O)   
     \tkzLabelPoints(A,B,O)
@@ -91,25 +89,21 @@
  \end{tikzpicture} 
  \end{tkzexample}    
 
- \subsubsection{Circles inscribed and circumscribed for a given triangle}
- You can also obtain the center of the inscribed circle and its projection on one side of the triangle with \tkzcname{tkzGetFirstPoint{I}} and \tkzcname{tkzGetSecondPoint{Ib}}. 
+ \subsubsection{Circles inscribed and circumscribed for a given triangle} 
  
- 
 \begin{tkzexample}[latex=7cm,small]  
-\begin{tikzpicture}[scale=1]
-   \tkzDefPoint(2,2){A} 
-   \tkzDefPoint(5,-2){B}
-   \tkzDefPoint(1,-2){C}
-   \tkzDefCircle[in](A,B,C)
-   \tkzGetPoint{I}    \tkzGetLength{rIN}
-   \tkzDefCircle[circum](A,B,C)
-   \tkzGetPoint{K}   \tkzGetLength{rCI}
-   \tkzDrawPoints(A,B,C,I,K)    
-   \tkzDrawCircle[R,blue](I,\rIN pt) 
-   \tkzDrawCircle[R,red](K,\rCI pt) 
-   \tkzLabelPoints[below](B,C)
-   \tkzLabelPoints[above left](A,I,K)
-   \tkzDrawPolygon(A,B,C)
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(2,2){A}  \tkzDefPoint(5,-2){B}
+ \tkzDefPoint(1,-2){C}
+ \tkzDefCircle[in](A,B,C)
+ \tkzGetPoint{I}    \tkzGetLength{rIN}
+ \tkzDefCircle[circum](A,B,C)
+ \tkzGetPoint{K}   \tkzGetLength{rCI}   
+ \tkzDrawCircles[R,new](I,{\rIN} K,{\rCI}) 
+ \tkzLabelPoints[below](B,C)
+ \tkzLabelPoints[above left](A,I,K)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C,I,K) 
 \end{tikzpicture} 
 \end{tkzexample}
 
@@ -118,29 +112,31 @@
 
 \begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}[scale=.75]
-	\tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
-	\tkzDefCircle[ex](B,C,A) 		               
+  \tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
+  \tkzDefCircle[ex](B,C,A)                   
   \tkzGetPoint{J_c} \tkzGetLength{rc}
-	\tkzDefPointBy[projection=onto A--C ](J_c)	 
+  \tkzDefPointBy[projection=onto A--C ](J_c)   
   \tkzGetPoint{X_c}
-  \tkzDefPointBy[projection=onto A--B ](J_c)	 
-  \tkzGetPoint{Y_c}	 	  
-  \tkzGetPoint{I}
-  \tkzDrawPolygon[color=blue](A,B,C)
-  \tkzDrawCircle[R,color=lightgray](J_c,\rc pt)
+  \tkzDefPointBy[projection=onto A--B ](J_c)   
+  \tkzGetPoint{Y_c}     
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawCircle[R,color=lightgray](J_c,\rc)
   % possible  \tkzDrawCircle[ex](A,B,C) 
-  \tkzDrawCircle[in,color=red](A,B,C)    \tkzGetPoint{I} 
-	\tkzDefPointBy[projection=onto A--C ](I)	 
+  \tkzDrawCircle[in,new](A,B,C)    
+  \tkzGetPoint{I} 
+  \tkzDefPointBy[projection=onto A--C ](I)   
   \tkzGetPoint{F} 
-	\tkzDefPointBy[projection=onto A--B ](I)	 
+  \tkzDefPointBy[projection=onto A--B ](I)   
   \tkzGetPoint{D}    
-	\tkzDrawLines[add=0 and 2.2,dashed](C,A C,B)
-	\tkzDrawSegments[dashed](J_c,X_c I,D  I,F J_c,Y_c)
-	\tkzMarkRightAngles(A,F,I B,D,I J_c,X_c,A J_c,Y_c,B)
-	\tkzDrawPoints(B,C,A,I,D,F,X_c,J_c,Y_c)
- 	\tkzLabelPoints(B,A,J_c,I,D,X_c,Y_c)
- 	\tkzLabelPoints[above left](C)
-	\tkzLabelPoints[left](F)
+  \tkzDrawLines[add=0 and 2.2,dashed](C,A C,B)
+  \tkzDrawSegments[dashed](J_c,X_c I,D  I,F%
+          J_c,Y_c)
+  \tkzMarkRightAngles(A,F,I B,D,I J_c,X_c,A%
+         J_c,Y_c,B)
+  \tkzDrawPoints(B,C,A,I,D,F,X_c,J_c,Y_c)
+  \tkzLabelPoints(B,A,J_c,I,D,X_c,Y_c)
+  \tkzLabelPoints[above left](C)
+  \tkzLabelPoints[left](F)
 \end{tikzpicture}    
 \end{tkzexample}
   
@@ -147,7 +143,7 @@
  \subsubsection{Euler's circle for a given triangle with option \tkzname{euler}}
  
 We verify that this circle passes through the middle of each side.
-\begin{tkzexample}[latex=8cm,small]  
+\begin{tkzexample}[latex=6cm,small]  
 \begin{tikzpicture}[scale=.75]
    \tkzDefPoint(5,3.5){A} 
    \tkzDefPoint(0,0){B} \tkzDefPoint(7,0){C}
@@ -155,7 +151,7 @@
    \tkzGetPoint{E}  \tkzGetLength{rEuler}
    \tkzDefSpcTriangle[medial](A,B,C){M_a,M_b,M_c}
    \tkzDrawPoints(A,B,C,E,M_a,M_b,M_c)    
-   \tkzDrawCircle[R,blue](E,\rEuler pt)
+   \tkzDrawCircle[R](E,\rEuler)
    \tkzDrawPolygon(A,B,C)    
    \tkzLabelPoints[below](B,C)  
    \tkzLabelPoints[left](A,E)   
@@ -171,12 +167,12 @@
   \tkzDefCircle[apollonius,K=2](A,B)
   \tkzGetPoint{K1}
   \tkzGetLength{rAp}
-  \tkzDrawCircle[R,color = blue!50!black,
-      fill=blue!20,opacity=.4](K1,\rAp pt)
+  \tkzDrawCircle[R,color = teal!50!black,
+      fill=teal!20,opacity=.4](K1,\rAp)
   \tkzDefCircle[apollonius,K=3](A,B)
   \tkzGetPoint{K2}   \tkzGetLength{rAp}
-  \tkzDrawCircle[R,color=red!50!black,
-   fill=red!20,opacity=.4](K2,\rAp pt) 
+  \tkzDrawCircle[R,color=orange!50,
+   fill=orange!20,opacity=.4](K2,\rAp) 
   \tkzLabelPoints[below](A,B,K1,K2)
   \tkzDrawPoints(A,B,K1,K2) 
   \tkzDrawLine[add=.2 and 1](A,B)  
@@ -205,10 +201,11 @@
   \tkzDrawPoints(I,J,K)
   \tkzDrawPolygon(A,B,C)
   \tkzDrawPolygon[dashed](I,J,K)
-  \tkzDrawCircle[R,blue!50!black](O,\rO)
+  \tkzDrawCircle[R,teal](O,\rO)
   \tkzDrawSegments[dashed](A,K B,J C,I)
   \tkzDrawPoints(A,B,C)
-  \tkzDrawCircles[R](J,{\rJ} I,{\rI} K,{\rK})    
+  \tkzDrawCircles[R,new](J,{\rJ} I,{\rI}%
+                         K,{\rK})    
   \tkzLabelPoints(A,B,C,I,J,K)
 \end{tikzpicture}
 \end{tkzexample}
@@ -216,366 +213,119 @@
   \subsubsection{Spieker circle with option \tkzname{spieker}}   
 The  incircle of the medial triangle $M_aM_bM_c$ is the Spieker circle:
 
-\begin{tkzexample}[latex=8cm, small]
+
+\begin{tkzexample}[latex=6cm, small]
 \begin{tikzpicture}[scale=1]
   \tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
    \tkzDefSpcTriangle[medial](A,B,C){M_a,M_b,M_c}
    \tkzDefTriangleCenter[spieker](A,B,C) 
    \tkzGetPoint{S_p}
-   \tkzDrawPolygon[blue](A,B,C)
-   \tkzDrawPolygon[red](M_a,M_b,M_c)
-   \tkzDrawPoints[blue](B,C,A)
-   \tkzDrawPoints[red](M_a,M_b,M_c,S_p)
-   \tkzDrawCircle[in,red](M_a,M_b,M_c)
+   \tkzDrawPolygon(A,B,C)
+   \tkzDrawPolygon[cyan](M_a,M_b,M_c)
+   \tkzDrawPoints(B,C,A)
+   \tkzDrawPoints[new](M_a,M_b,M_c,S_p)
+   \tkzDrawCircle[in,new](M_a,M_b,M_c)
    \tkzAutoLabelPoints[center=S_p,dist=.3](M_a,M_b,M_c)
-   \tkzLabelPoints[blue,right](S_p)
+   \tkzLabelPoints[right](S_p)
    \tkzAutoLabelPoints[center=S_p](A,B,C)
 \end{tikzpicture}
 \end{tkzexample}
  
-   
- \subsubsection{Orthogonal circle passing through two given points, option \tkzname{orthogonal through}} 
- 
-\begin{tkzexample}[latex=8cm,small]  
-\begin{tikzpicture}[scale=1]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(1,0){A}
-  \tkzDrawCircle(O,A) 
-  \tkzDefPoint(-1.5,-1.5){z1}
-  \tkzDefPoint(1.5,-1.25){z2} 
-  \tkzDefCircle[orthogonal through=z1 and z2](O,A)
-   \tkzGetPoint{c}    
-  \tkzDrawCircle[thick,color=red](tkzPointResult,z1)
-  \tkzDrawPoints[fill=red,color=black,
-  size=4](O,A,z1,z2,c)
-  \tkzLabelPoints(O,A,z1,z2,c) 
+ \subsubsection{Examples from js bibra tex.stackexchange.com}      
+
+\begin{tikzpicture}[scale=0.4]
+\tkzDefPoint(6,4){A}
+\tkzDefPoint(6,-4){B}
+\tkzDefMidPoint(B,A)\tkzGetPoint{P}
+\tkzDefLine[orthogonal =through P](A,B)\tkzGetPoint{X}
+\tkzDefCircle[through](X,P)
+\tkzCalcLength(X,P)\tkzGetLength{rXP}
+\tkzDefShiftPoint[X](180:\rXP*2){y}
+\tkzDefPointWith[linear,K=0.3](y,P) \tkzGetPoint{x}
+\tkzDrawPoints(X,x) 
+\tkzDrawCircles(x,P X,P)
+\tkzLabelLine[pos=0.5,above](x,P){r1}
+\tkzDefShiftPoint[X](-60:\rXP){X'}
+\tkzDrawSegments[<->, >=triangle 45](X,X' P,x)  
+\tkzLabelLine[pos=0.5,above, sloped](X,X'){r}
+\tkzLabelPoints[above](x)
+\tkzLabelPoints[above](X)
 \end{tikzpicture}
-\end{tkzexample}
 
-\subsubsection{Orthogonal circle of given center} 
- 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
-  \tkzDefPoints{0/0/O,1/0/A}
-  \tkzDefPoints{1.5/1.25/B,-2/-3/C}
-  \tkzDefCircle[orthogonal from=B](O,A)
-  \tkzGetPoints{z1}{z2}
-  \tkzDefCircle[orthogonal from=C](O,A)
-  \tkzGetPoints{t1}{t2}
-  \tkzDrawCircle(O,A)
-  \tkzDrawCircle[thick,color=red](B,z1)
-  \tkzDrawCircle[thick,color=red](C,t1)
-  \tkzDrawPoints(t1,t2,C)
-  \tkzDrawPoints(z1,z2,O,A,B)
-  \tkzLabelPoints(O,A,B,C)
+\begin{tkzexample}[code only, small]
+\begin{tikzpicture}[scale=0.4]
+\tkzDefPoint(6,4){A}
+\tkzDefPoint(6,-4){B}
+\tkzDefMidPoint(B,A)\tkzGetPoint{P}
+\tkzDefLine[orthogonal =through P](A,B)
+\tkzGetPoint{X}
+\tkzDefCircle[through](X,P)
+\tkzCalcLength(X,P)\tkzGetLength{rXP}
+\tkzDefShiftPoint[X](180:\rXP*2){y}
+\tkzDefPointWith[linear,K=0.3](y,P)
+ \tkzGetPoint{x}
+\tkzDrawPoints(X,x) 
+\tkzDrawCircles(x,P X,P)
+\tkzLabelLine[pos=0.5,above](x,P){r1}
+\tkzDefShiftPoint[X](-60:\rXP){X'}
+\tkzDrawSegments[<->, >=triangle 45](X,X' P,x)  
+\tkzLabelLine[pos=0.5,above, sloped](X,X'){r}
+\tkzLabelPoints[above](x)
+\tkzLabelPoints[above](X)
 \end{tikzpicture}
 \end{tkzexample}
 
-%<---------------------------------------------------------------------------->
-
-\section{Draw, Label the Circles}
-\begin{itemize}
- \item  I created a first macro  \tkzcname{tkzDrawCircle},
- 
- \item then a macro that allows you to color a disc, but without drawing the circle. \tkzcname{tkzFillCircle},
- 
- \item sometimes, it is necessary for a drawing to be contained in a disc,this is the role assigned to \tkzcname{tkzClipCircle},
-
- 
- \item  It finally remains to be able to give a label to designate a circle and if several possibilities are offered, we will see here \tkzcname{tkzLabelCircle}.
-\end{itemize}
- 
-\subsection{Draw a circle}
-\begin{NewMacroBox}{tkzDrawCircle}{\oarg{local options}\parg{A,B}}%
-\tkzHandBomb\ Attention you need only two points to define a radius or a diameter.  An additional option \tkzname{R} is available  to give a measure directly.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments           & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}} {two points to define a radius or a diameter}
-\bottomrule
-\end{tabular}   
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                         \\ 
-\midrule
-\TOline{through}{through}{circle with two points defining a radius}
-\TOline{diameter}{through}{circle with two points defining a diameter}
-\TOline{R} {through}{circle characterized by a point and the measurement of a radius}
- \bottomrule
-\end{tabular}
-
-\medskip
-Of course, you have to add all the styles of \TIKZ\ for the tracings...
-\end{NewMacroBox}
- 
- \subsubsection{Circles and styles, draw a circle and color the disc}
- We'll see that it's possible to colour in a disc while tracing the circle.
- 
-\begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
-  \tkzDefPoint(0,0){O} 
-  \tkzDefPoint(3,0){A}
- % circle with centre O and passing through A
-  \tkzDrawCircle[color=blue](O,A) 
- % diameter circle $[OA]$
-  \tkzDrawCircle[diameter,color=red,%
-                 line width=2pt,fill=red!40,%
-                 opacity=.5](O,A)
- % circle with centre O and radius = exp(1) cm
-  \edef\rayon{\fpeval{0.25*exp(1)}}
-  \tkzDrawCircle[R,color=orange](O,\rayon cm) 
-\end{tikzpicture} 
-\end{tkzexample}  
-
-\subsection{Drawing circles}  
-\begin{NewMacroBox}{tkzDrawCircles}{\oarg{local options}\parg{A,B C,D}}%
-\tkzHandBomb\ Attention, the arguments are lists of two points. The circles that can be drawn are the same as in the previous macro. An additional option \tkzname{R} is available to give  a measure directly.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments           & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points}
-\bottomrule
-\end{tabular}   
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                         \\ 
-\midrule
-\TOline{through}{through}{circle with two points defining a radius}
-\TOline{diameter}{through}{circle with two points defining a diameter}
-\TOline{R} {through}{circle characterized by a point and the measurement of a radius}
- \bottomrule
-\end{tabular}
-
-\medskip
-Of course, you have to add all the styles of \TIKZ\ for the tracings...
-\end{NewMacroBox}
-
- \subsubsection{Circles defined by a triangle.} 
- 
-\begin{tkzexample}[latex=9cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(2,0){B}
-  \tkzDefPoint(3,2){C}
-  \tkzDrawPolygon(A,B,C)
-  \tkzDrawCircles(A,B B,C C,A)
-  \tkzDrawPoints(A,B,C)
-  \tkzLabelPoints(A,B,C) 
-\end{tikzpicture} 
-\end{tkzexample}
-
- \subsubsection{Concentric circles.} 
- 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-   \tkzDefPoint(0,0){A}
-   \tkzDrawCircles[R](A,1cm A,2cm A,3cm)
-   \tkzDrawPoint(A)
-   \tkzLabelPoints(A)
+    \tkzDefPoint(0,4){A}
+    \tkzDefPoint(2,2){B}
+    \tkzDefMidPoint(B,A)\tkzGetPoint{P}
+    \tkzDefLine[orthogonal =through P](B,A)
+    \tkzGetPoint{X}
+    \tkzDefCircle[through](X,P)
+    \tkzGetLength{rXPpt}
+    \tkzpttocm(\rXPpt){rXPcm}
+    \tkzDefPointWith[linear,K=0.3](X,P) 
+    \tkzGetPoint{x}
+    \tkzDefCircle[through](x,P)
+    \tkzGetLength{rxPpt}
+    \tkzpttocm(\rxPpt){rxPcm}    
+    \tkzDrawCircles(X,P x,P)
+    \tkzDrawPoints(X,x)
+    \tkzDrawSegment[<->, >=triangle 45](x,P)
+    \tkzDrawSegment(P,X)
+    \tkzLabelPoints(X,x)
+    \tkzLabelLine[pos=0.5,left](x,P){r}
+    \tkzCalcLength[cm](X,P)\tkzGetLength{rXP}
+    \tkzDefShiftPoint[X](-90:\rXP){y}
+    \tkzDrawSegments[<->, >=triangle 45](X,y)  
+    \tkzLabelLine[pos=0.5,left](X,y){R}    
 \end{tikzpicture}
-\end{tkzexample}
 
- \subsubsection{Exinscribed circles.} 
-
-\begin{tkzexample}[latex=7cm,small] 
-\begin{tikzpicture}[scale=1] 
-\tkzDefPoints{0/0/A,4/0/B,1/2.5/C}
-\tkzDrawPolygon(A,B,C)
-\tkzDefCircle[ex](B,C,A) 
-\tkzGetPoint{J_c} \tkzGetSecondPoint{T_c}
-\tkzGetLength{rJc} 
-\tkzDrawCircle[R](J_c,{\rJc pt})
-\tkzDrawLines[add=0 and 1](C,A C,B)
-\tkzDrawSegment(J_c,T_c)
-\tkzMarkRightAngle(J_c,T_c,B)
-\tkzDrawPoints(A,B,C,J_c,T_c)
-\end{tikzpicture}
-\end{tkzexample}
- 
-\subsubsection{Cardioid}  
-Based on an idea by O. Reboux made with pst-eucl (Pstricks module) by D. Rodriguez.
-
- Its name comes from the Greek \textit{kardia (heart)}, in reference to its shape, and was given to it by Johan Castillon (Wikipedia).     
- 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
-  \tkzDefPoint(0,0){O} 
-  \tkzDefPoint(2,0){A}
-  \foreach \ang in {5,10,...,360}{%
-     \tkzDefPoint(\ang:2){M}
-     \tkzDrawCircle(M,A) 
-   }  
-\end{tikzpicture} 
-\end{tkzexample}
-
-\subsection{Draw a semicircle}
-\begin{NewMacroBox}{tkzDrawSemiCircle}{\oarg{local options}\parg{A,B}}%
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments           & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{O,A} or\parg{A,B}} {radius or diameter}
-\bottomrule
-\end{tabular} 
-    
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                         \\ 
-\midrule
-\TOline{through}  {through}{circle characterized by two points defining a radius} 
-\TOline{diameter} {through}{circle characterized by two points defining a diameter}
-\end{tabular}
-\end{NewMacroBox}  
-
-\subsubsection{Use of \tkzcname{tkzDrawSemiCircle}}   
-
-\begin{tkzexample}[latex=6cm,small]
-  \begin{tikzpicture}
-     \tkzDefPoint(0,0){A} \tkzDefPoint(6,0){B}
-     \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
-     \tkzDrawPolygon(B,C,D,A)
-     \tkzDefPoint(3,6){F}
-     \tkzDefTriangle[equilateral](C,D) \tkzGetPoint{I}
-     \tkzDefPointBy[projection=onto B--C](I) \tkzGetPoint{J}
-     \tkzInterLL(D,B)(I,J)  \tkzGetPoint{K}
-     \tkzDefPointBy[symmetry=center K](B) \tkzGetPoint{M}
-     \tkzDrawCircle(M,I)
-     \tkzCalcLength(M,I)   \tkzGetLength{dMI}
-     \tkzFillPolygon[color = red!50](A,B,C,D)
-     \tkzFillCircle[R,color = yellow](M,\dMI pt)
-     \tkzDrawSemiCircle[fill = blue!50!black](F,D)%
-  \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Colouring a disc}
-This was possible with the previous macro, but disk tracing was mandatory, this is no longer the case.
-  
-\begin{NewMacroBox}{tkzFillCircle}{\oarg{local options}\parg{A,B}}%
-\begin{tabular}{lll}%
-options             & default & definition                         \\ 
-\midrule
-\TOline{radius}  {radius}{two points define a radius}
-\TOline{R} {radius}{a point and the measurement of a radius }
-\bottomrule
-\end{tabular}
-
-\medskip
-You don't need to put \tkzname{radius} because that's the default option. Of course, you have to add all the styles of \TIKZ\ for the plots.
-\end{NewMacroBox}  
-
- \subsubsection{Example from a sangaku} 
-
-\begin{tkzexample}[latex=7cm,small]
+\begin{tkzexample}[code only, small]
 \begin{tikzpicture}
-   \tkzInit[xmin=0,xmax = 6,ymin=0,ymax=6] 
-   \tkzDefPoint(0,0){B}  \tkzDefPoint(6,0){C}%
-   \tkzDefSquare(B,C)    \tkzGetPoints{D}{A} 
-   \tkzClipPolygon(B,C,D,A) 
-   \tkzDefMidPoint(A,D)  \tkzGetPoint{F}
-   \tkzDefMidPoint(B,C)  \tkzGetPoint{E}
-   \tkzDefMidPoint(B,D)  \tkzGetPoint{Q}           
-   \tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H} 
-   \tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
-   \tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
-   \tkzDefPointBy[projection=onto B--A](K)   
-	 \tkzGetPoint{M}  
-   \tkzFillPolygon[color = green](A,B,C,D)
-   \tkzFillCircle[color = orange](B,A)
-   \tkzFillCircle[color = blue!50!black](M,A)
-   \tkzFillCircle[color = purple](E,B)
-   \tkzFillCircle[color = yellow](K,Q)  
+    \tkzDefPoint(0,4){A}
+    \tkzDefPoint(2,2){B}
+    \tkzDefMidPoint(B,A)\tkzGetPoint{P}
+    \tkzDefLine[orthogonal =through P](B,A)
+    \tkzGetPoint{X}
+    \tkzDefCircle[through](X,P)
+    \tkzGetLength{rXPpt}
+    \tkzpttocm(\rXPpt){rXPcm}
+    \tkzDefPointWith[linear,K=0.3](X,P) 
+    \tkzGetPoint{x}
+    \tkzDefCircle[through](x,P)
+    \tkzGetLength{rxPpt}
+    \tkzpttocm(\rxPpt){rxPcm}   
+    \tkzDrawCircles(X,P x,P)
+    \tkzDrawPoints(X,x)
+    \tkzDrawSegment[<->, >=triangle 45](x,P)
+    \tkzDrawSegment(P,X)
+    \tkzLabelPoints(X,x)
+    \tkzLabelLine[pos=0.5,left](x,P){r}
+    \tkzCalcLength[cm](X,P)\tkzGetLength{rXP}
+    \tkzDefShiftPoint[X](-90:\rXP){y}
+    \tkzDrawSegments[<->, >=triangle 45](X,y)  
+    \tkzLabelLine[pos=0.5,left](X,y){R}    
 \end{tikzpicture}
-\end{tkzexample} 
-
-\subsection{Clipping a disc}
-
-\begin{NewMacroBox}{tkzClipCircle}{\oarg{local options}\parg{A,B} or \parg{A,r}}%
-\begin{tabular}{lll}%
-\toprule
-arguments           & example & explication                         \\
-\midrule
-\TAline{\parg{A,B} or \parg{A,r}}{\parg{A,B} or \parg{A,2cm}} {AB radius or diameter }
-\bottomrule
-\end{tabular}  
- 
-\medskip
-\begin{tabular}{lll}%
-options             & default & definition                         \\ 
-\midrule
-\TOline{radius} {radius}{circle characterized by two points defining a radius} 
-\TOline{R} {radius}{circle characterized by a point and the measurement of a radius }  
-\bottomrule
-\end{tabular}
-
-\medskip
-It is not necessary to put \tkzname{radius} because that is the default option.
-\end{NewMacroBox}
-
- \subsubsection{Example} 
-\begin{tkzexample}[latex=6cm,small] 
-  \begin{tikzpicture}
-  \tkzInit[xmax=5,ymax=5]
-  \tkzGrid \tkzClip 
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(2,2){O}
-  \tkzDefPoint(4,4){B}
-  \tkzDefPoint(6,6){C}
-  \tkzDrawPoints(O,A,B,C) 
-  \tkzLabelPoints(O,A,B,C)
-  \tkzDrawCircle(O,A) 
-  \tkzClipCircle(O,A)
-  \tkzDrawLine(A,C)
-  \tkzDrawCircle[fill=red!20,opacity=.5](C,O) 
-\end{tikzpicture} 
 \end{tkzexample}
-
-
-\subsection{Giving a label to a circle}
-\begin{NewMacroBox}{tkzLabelCircle}{\oarg{local options}\parg{A,B}\parg{angle}\marg{label}}%
-\begin{tabular}{lll}%
-options             & default & definition                         \\
-\midrule
-\TOline{radius}  {radius}{circle characterized by two points defining a radius}
-\TOline{R} {radius}{circle characterized by a point and the measurement of a radius }
-\bottomrule
-\end{tabular} 
-
-\medskip
-You don't need to put \tkzname{radius} because that's the default option. We can use the styles from \TIKZ. The label is created and therefore "passed" between braces.
-\end{NewMacroBox} 
-
-\subsubsection{Example}  
-\begin{tkzexample}[latex=5cm,small] 
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O} \tkzDefPoint(2,0){N}
- \tkzDefPointBy[rotation=center O angle 50](N) 
-     \tkzGetPoint{M}
- \tkzDefPointBy[rotation=center O angle -20](N) 
-      \tkzGetPoint{P}
- \tkzDefPointBy[rotation=center O angle 125](N) 
-      \tkzGetPoint{P'}
- \tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
- \tkzDrawCircle(O,M) 
- \tkzFillCircle[color=blue!20,opacity=.4](O,M) 
- \tkzLabelCircle[R,draw,fill=orange,%
-       text width=2cm,text centered](O,3 cm)(-60)%
-          {The circle\\ $\mathcal{C}$}  
- \tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)   
-\end{tikzpicture}      
-\end{tkzexample} 
-
-\endinput
+\endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-clipping.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-clipping.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-clipping.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,435 @@
+\section{Controlling Bounding Box}
+From the \tkzimp{PgfManual} :"When you add the clip option, the current path is used for clipping subsequent drawings. Clipping never enlarges the clipping area. Thus, when you clip against a certain path and then clip again against another path, you clip against the intersection of both.
+The only way to enlarge the clipping path is to end the {pgfscope} in which the clipping was done. At the end of a {pgfscope} the clipping path that was in force at the beginning of the scope is reinstalled."
+
+
+First of all, you don't have to deal with \TIKZ\ the size of the bounding box. Early versions of \tkzNamePack{tkz-euclide} did not control the size of the bounding box, now with \tkzNamePack{\tkznameofpack} 4 the size of the bounding box is limited.
+
+The initial bounding box after using the macro \tkzcname{tkzInit} is defined by the rectangle based on the points $(0,0)$ and $(10,10)$. The \tkzcname{tkzInit} macro allows this initial bounding box to be modified using the arguments (\tkzname{xmin}, \tkzname{xmax}, \tkzname{ymin}, and \tkzname{ymax}). Of course any external trace modifies the bounding box. \TIKZ\ maintains that bounding box. It is possible to influence this behavior either directly with commands or options in \TIKZ\ such as a command like \tkzcname{useasboundingbox} or the option \tkzname{use as bounding box}. A possible consequence is to reserve a box for a figure but the figure may overflow the box and spread over the main text.
+The following command \tkzcname{pgfresetboundingbox} clears a bounding box and establishes a new one.
+
+\subsection{Utility of \tkzcname{tkzInit}} 
+ However, it is sometimes necessary to control the size of what will be displayed.
+ To do this, you need to have prepared the bounding box you are going to work in, this is the role of the   macro \tkzNameMacro{tkzInit}.  For some drawings, it is interesting to fix the extreme values (xmin,xmax,ymin and ymax) and to "clip" the definition rectangle in order to control the size of the figure as well as possible.
+
+The two macros that are useful for controlling the bounding box:
+\begin{itemize}
+   \item \tkzcname{tkzInit}
+   \item \tkzcname{tkzClip}
+\end{itemize}
+\vspace{20pt}
+
+To this, I added macros directly linked to the bounding box. You can now view it, backup it, restore it (see the  section Bounding Box).
+
+\subsection{\tkzcname{tkzInit}}
+
+\begin{NewMacroBox}{tkzInit}{\oarg{local options}}\hypertarget{init}{}%
+\begin{tabular}{lll}%    
+options  & default & definition             \\
+\midrule    
+\TOline{xmin} {0} {minimum value of the abscissae in cm}
+\TOline{xmax} {10} {maximum value of the abscissae in cm}
+\TOline{xstep}{1} {difference between two graduations in $x$}
+\TOline{ymin} {0} {minimum y-axis value in cm }
+\TOline{ymax} {10} {maximum y-axis value in cm}
+\TOline{ystep}{1} {difference between two graduations in $y$}  
+\bottomrule    
+\end{tabular}
+
+\medskip 
+
+The role of \tkzcname{tkzInit} is to define a \textcolor{red}{orthogonal} coordinates system and a rectangular part of the plane in which you will place your drawings using Cartesian coordinates. 
+This macro allows you to define your working environment as with a calculator. With \tkzname{\tkznameofpack} 4 \tkzcname{xstep}  and \tkzcname{ystep} are always 1. Logically it is no longer useful to use \tkzcname{tkzInit}, except for an action like "Clipping Out".
+\end{NewMacroBox}
+
+
+\subsection{\tkzcname{tkzClip}}
+
+\begin{NewMacroBox}{tkzClip}{\oarg{local options}}
+The role of this macro is to make invisible what is outside the rectangle defined by (xmin~;~ymin) and (xmax~;~ymax).
+
+\medskip
+\begin{tabular}{lll}
+\hline
+options  & default & definition             \\
+\midrule
+\TOline{space} {1} {added value on the right, left, bottom and top of the background}
+\bottomrule
+\end{tabular}
+
+\medskip
+
+The role of the \tkzname{space} option is to enlarge the visible part of the drawing. This part becomes the rectangle defined by (xmin-space~;~ymin-space) and (xmax+space~;~ymax+space).  \tkzname{space} can be negative!  The unit is cm and should not be specified.
+\end{NewMacroBox}
+
+
+
+The role of this macro is to "clip" the initial rectangle so that only the paths contained in this rectangle are drawn.
+
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=3]
+ \tkzDefPoints{-1/-1/A,5/2/B}
+ \tkzDrawX \tkzDrawY 
+ \tkzGrid
+ \tkzClip
+ \tkzDrawSegment(A,B)
+\end{tikzpicture}
+\end{tkzexample} 
+
+It is possible to add a bit of space
+\begin{tkzltxexample}[]
+  \tkzClip[space=1]
+\end{tkzltxexample} 
+
+\subsection{\tkzcname{tkzClip} and the option \tkzname{space}} 
+This option allows you to add some space around the "clipped" rectangle.
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+ \tkzInit[xmax=4, ymax=3]
+ \tkzDefPoints{-1/-1/A,5/2/B}
+ \tkzDrawX \tkzDrawY 
+ \tkzGrid
+ \tkzClip[space=1]
+ \tkzDrawSegment(A,B)
+\end{tikzpicture}
+\end{tkzexample}   
+The dimensions of the "clipped" rectangle are \tkzname{xmin-1}, \tkzname{ymin-1}, \tkzname{xmax+1} and \tkzname{ymax+1}. 
+
+%<--------------------------------------------------------------------------->
+%              tkzShowBB
+%<--------------------------------------------------------------------------->
+\subsection{tkzShowBB}
+The simplest macro. 
+\begin{NewMacroBox}{tkzShowBB}{\oarg{local options}}% 
+This macro displays the bounding box. A rectangular frame surrounds the bounding box. This macro accepts \TIKZ\ options.
+\end{NewMacroBox} 
+
+
+\subsubsection{Example with \tkzcname{tkzShowBB}}
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzInit[ymax=5,xmax=8]
+  \tkzGrid  
+  \tkzDefPoint(3,0){A}
+   \begin{scope}
+    \tkzClipBB
+    \tkzDrawCircle[R](A,5)
+     \tkzShowBB[line width = 4pt,fill=teal!10,opacity=.4]
+   \end{scope}
+\tkzDrawCircle[R,red](A,4)
+\end{tikzpicture}
+\end{tkzexample}
+%<--------------------------------------------------------------------------->
+%         tkzClipBB
+%<--------------------------------------------------------------------------->
+\subsection{tkzClipBB}
+\begin{NewMacroBox}{tkzClipBB}{}%
+The idea is to limit future constructions to the current bounding box.
+\end{NewMacroBox}
+
+\subsubsection{Example with \tkzcname{tkzClipBB} and the bisectors}
+
+\begin{tkzexample}[latex=6cm,small]
+  \begin{tikzpicture}
+  \tkzInit[xmin=-3,xmax=6, ymin=-1,ymax=6]
+  \tkzDefPoint(0,0){O}\tkzDefPoint(3,1){I}
+  \tkzDefPoint(1,4){J}
+  \tkzDefLine[bisector](I,O,J) \tkzGetPoint{i}
+  \tkzDefLine[bisector out](I,O,J) \tkzGetPoint{j}
+  \tkzDrawPoints(O,I,J,i,j)
+  \tkzClipBB
+  \tkzDrawLines[add = 1 and 2,color=orange](O,I O,J)
+  \tkzDrawLines[add = 1 and 2](O,i O,j)
+  \tkzShowBB
+  \end{tikzpicture}
+\end{tkzexample}
+
+
+\newpage
+
+\section{Clipping different objects}
+
+\subsection{Clipping a polygon} 
+ \begin{NewMacroBox}{tkzClipPolygon}{\oarg{local options}\parg{points list}}%
+This macro makes it possible to contain the different plots in the designated polygon.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments       & example & explication     \\ 
+\midrule
+\TAline{\parg{pt1,pt2,pt3,\dots}}{\parg{A,B,C}}{}
+\midrule
+options  & default & definition             \\
+\midrule    
+\TOline{out} {} {allows to clip the outside of the object}
+ \end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{\tkzcname{tkzClipPolygon}}
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[scale=1.25] 
+  \tkzDefPoint(0,0){A} 
+  \tkzDefPoint(4,0){B} 
+  \tkzDefPoint(1,3){C} 
+  \tkzDrawPolygon(A,B,C) 
+  \tkzDefPoint(0,2){D} 
+  \tkzDefPoint(2,0){E} 
+  \tkzDrawPoints(D,E) 
+  \tkzLabelPoints(D,E) 
+  \tkzClipPolygon(A,B,C) 
+  \tkzDrawLine[new](D,E)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzcname{tkzClipPolygon[out]}}
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,0){P1}
+  \tkzDefPoint(4,0){P2}
+  \tkzDefPoint(4,4){P3}
+  \tkzDefPoint(0,4){P4}
+  \tkzDefPoint(1,1){Q1}
+  \tkzDefPoint(3,1){Q2}
+  \tkzDefPoint(3,3){Q3}
+  \tkzDefPoint(1,3){Q4}
+  \tkzDrawPolygon(P1,P2,P3,P4)
+  \begin{scope}
+     \tkzClipPolygon[out](Q1,Q2,Q3,Q4)
+    \tkzFillPolygon[teal!20](P1,P2,P3,P4)
+  \end{scope}
+  \tkzDrawPolygon(Q1,Q2,Q3,Q4)
+  \end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example: use of "Clip" for Sangaku in a square} 
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
+ \tkzDefSquare(A,B)   \tkzGetPoints{C}{D}
+ \tkzDefPoint(4,8){F}
+ \tkzDefTriangle[equilateral](C,D) 
+ \tkzGetPoint{I}
+ \tkzDefPointBy[projection=onto B--C](I) 
+ \tkzGetPoint{J}
+ \tkzInterLL(D,B)(I,J)  \tkzGetPoint{K}
+ \tkzDefPointBy[symmetry=center K](B)  
+ \tkzGetPoint{M}
+ \tkzClipPolygon(B,C,D,A)
+ \tkzCalcLength(M,I)   \tkzGetLength{dMI}
+ \tkzFillPolygon[color = orange](A,B,C,D)
+ \tkzFillCircle[R,color = yellow](M,\dMI)
+ \tkzFillCircle[R,color = blue!50!black](F,4)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+ 
+\subsection{Clipping a disc}
+
+\begin{NewMacroBox}{tkzClipCircle}{\oarg{local options}\parg{A,B} or \parg{A,r}}%
+\begin{tabular}{lll}%
+\toprule
+arguments           & example & explication                         \\
+\midrule
+\TAline{\parg{A,B} or \parg{A,r}}{\parg{A,B} or \parg{A,2cm}} {AB radius or diameter }
+\bottomrule
+\end{tabular}  
+ 
+\medskip
+\begin{tabular}{lll}%
+options             & default & definition                         \\ 
+\midrule
+\TOline{radius} {radius}{circle characterized by two points defining a radius} 
+\TOline{R} {radius}{circle characterized by a point and the measurement of a radius }  
+\TOline{out} {} {allows to clip the outside of the object}
+ \bottomrule
+\end{tabular}
+
+\medskip
+It is not necessary to put \tkzname{radius} because that is the default option.
+\end{NewMacroBox}
+
+ \subsubsection{Simple clip} 
+\begin{tkzexample}[latex=6cm,small] 
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoint(0,0){A} \tkzDefPoint(2,2){O}
+  \tkzDefPoint(4,4){B} \tkzDefPoint(5,5){C}
+  \tkzDrawPoints(O,A,B,C) 
+  \tkzLabelPoints(O,A,B,C)
+  \tkzDrawCircle(O,A) 
+  \tkzClipCircle(O,A)
+  \tkzDrawLine(A,C)
+  \tkzDrawCircle[fill=teal!10,opacity=.5](C,O)
+\end{tikzpicture} 
+\end{tkzexample}
+
+
+\subsection{Clip out}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+  \tkzInit[xmin=-3,ymin=-2,xmax=4,ymax=3]
+   \tkzDefPoint(0,0){O}
+   \tkzDefPoint(-4,-2){A}
+   \tkzDefPoint(3,1){B}
+   \tkzDrawCircle[R](O,2)
+   \tkzDrawPoints(A,B) % to have a good bounding box
+   \begin{scope}
+    \tkzClipCircle[out,R](O,2)
+    \tkzDrawLines(A,B)
+   \end{scope}
+\end{tikzpicture}  
+\end{tkzexample} 
+
+\subsection{Intersection of disks}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/O,4/0/A,0/4/B}
+\tkzDrawPolygon[fill=teal](O,A,B)
+\tkzClipPolygon(O,A,B)
+\tkzClipCircle(A,O)
+\tkzClipCircle(B,O)
+\tkzFillPolygon[white](O,A,B)
+\end{tikzpicture}
+\end{tkzexample} 
+
+
+see a more complex example about clipping here : \ref{About clipping circles}
+
+
+
+\subsection{Clipping a sector}
+\tkzHandBomb\  Attention the arguments vary according to the options. 
+\begin{NewMacroBox}{tkzClipSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
+\begin{tabular}{lll}%
+options             & default & definition                         \\ 
+\midrule
+\TOline{towards}{towards}{$O$ is the centre and the sector starts from $A$ to $(OB)$}
+\TOline{rotate} {towards}{The sector starts from $A$ and the angle determines its amplitude. } 
+\TOline{R}{towards}{We give the radius and two angles} 
+\bottomrule
+\end{tabular} 
+
+\medskip
+You have to add, of course, all the styles of \TIKZ\ for tracings...
+
+\medskip   
+\begin{tabular}{lll}%
+\toprule
+options             & arguments & example                         \\ 
+\midrule
+\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzClipSector(O,A)(B)}}
+\TOline{rotate} {\parg{pt,pt}\parg{angle}}{\tkzcname{tkzClipSector[rotate](O,A)(90)}} 
+\TOline{R}{\parg{pt,$r$}\parg{angle 1,angle 2}}{\tkzcname{tkzClipSector[R](O,2)(30,90)}}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Example 1} 
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}[scale=0.5]
+\tkzDefPoint(0,0){a}
+\tkzDefPoint(12,0){b}
+\tkzDefPoint(4,10){c}
+\tkzInterCC[R](a,6)(b,8) 
+\tkzGetFirstPoint{AB1} \tkzGetSecondPoint{AB2}
+\tkzInterCC[R](a,6)(c,6) 
+\tkzGetFirstPoint{AC1} \tkzGetSecondPoint{AC2}
+\tkzInterCC[R](b,8)(c,6) 
+\tkzGetFirstPoint{BC1} \tkzGetSecondPoint{BC2}
+\tkzDrawArc(a,AB2)(AB1)
+\tkzDrawArc(b,AB1)(AB2)
+\tkzDrawArc(a,AC2)(AC1)
+\tkzDrawArc(c,AC1)(AC2)
+\tkzDrawArc(b,BC2)(BC1)
+\tkzDrawArc(c,BC1)(BC2)
+\begin{scope}
+\tkzClipSector(b,BC2)(BC1)
+\tkzFillSector[teal!40!white](c,BC1)(BC2)
+\end{scope}
+\begin{scope}
+\tkzClipSector(a,AB2)(AB1)
+\tkzFillSector[teal!40!white](b,AB1)(AB2)
+\end{scope}
+\begin{scope}
+\tkzClipSector(a,AC2)(AC1)
+\tkzFillSector[teal!40!white](c,AC1)(AC2)
+\end{scope}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example 2} 
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}[scale=1.5] 
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2,-1){A}
+  \tkzDefPoint(1,1){B} 
+  \tkzDrawSector[new,dashed](O,A)(B)
+  \tkzDrawSector[new](O,B)(A)
+\begin{scope}
+\tkzClipSector(O,B)(A)
+\tkzDrawSquare[color=teal,fill=teal!20](O,B)
+\end{scope}
+\tkzDrawPoints(A,B,O) 
+\end{tikzpicture} 
+\end{tkzexample}
+
+
+\subsection{Options from \TIKZ: trim left or right}
+See the \tkzimp{pgfmanual}
+
+\subsection{\TIKZ\ Controls \tkzcname{pgfinterruptboundingbox} and \tkzcname{endpgfinterruptboundingbox}}
+This command temporarily interrupts the calculation of the box and configures a new box.
+See the \tkzimp{pgfmanual}
+
+\subsubsection{Example about contolling the bouding box} 
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}
+\tkzDefPoint(0,5){A}\tkzDefPoint(5,4){B}
+\tkzDefPoint(0,0){C}\tkzDefPoint(5,1){D}
+\tkzDrawSegments(A,B C,D A,C)
+\pgfinterruptboundingbox
+   \tkzInterLL(A,B)(C,D)\tkzGetPoint{I}
+\endpgfinterruptboundingbox
+\tkzClipBB
+\tkzDrawCircle(I,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Reverse clip: tkzreverseclip}
+
+In order to use this option, a bounding box must be defined. 
+
+\begin{tkzltxexample}[]
+  \tikzset{tkzreverseclip/.style={insert path={
+     (current bounding box.south west) --(current bounding box.north west)
+   --(current bounding box.north east) --  (current bounding box.south east)
+   -- cycle} }}
+\end{tkzltxexample}
+
+
+\subsubsection{Example with \tkzcname{tkzClipPolygon[out]}}
+\tkzcname{tkzClipPolygon[out]}, \tkzcname{tkzClipCircle[out]} use this option.
+\begin{tkzexample}[vbox,small]
+\fbox{\begin{tikzpicture}[scale=1]
+\tkzInit[xmin=-5,xmax=5,ymin=-4,ymax=6]
+\tkzClip
+  \tkzDefPoints{-.5/0/P1,.5/0/P2}
+  \foreach \i [count=\j from 3] in {2,...,7}{%
+      \tkzDefShiftPoint[P\i]({45*(\i-1)}:1){P\j}}  
+  \tkzClipPolygon[out](P1,P...,P8)
+  \tkzCalcLength(P1,P5)\tkzGetLength{r}
+  \begin{scope}[blend group=screen]
+     \foreach \i in {1,...,8}{%
+       \pgfmathparse{100-5*\i}
+       \tkzFillCircle[R,color=teal!%
+       \pgfmathresult](P\i,\r)}
+    \end{scope}
+\end{tikzpicture}} 
+\end{tkzexample}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-clipping.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-compass.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-compass.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-compass.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -21,11 +21,11 @@
 \begin{tikzpicture}
   \tkzDefPoint(1,1){A}
   \tkzDefPoint(6,1){B}
-  \tkzInterCC[R](A,4cm)(B,3cm)
+  \tkzInterCC[R](A,4)(B,3)
   \tkzGetPoints{C}{D}
   \tkzDrawPoint(C)
-  \tkzCompass[color=red,length=1.5](A,C)
-  \tkzCompass[color=red](B,C)
+  \tkzCompass[length=1.5](A,C)
+  \tkzCompass(B,C)
   \tkzDrawSegments(A,B A,C B,C)
 \end{tikzpicture}
 \end{tkzexample}
@@ -35,11 +35,11 @@
 \begin{tikzpicture} 
   \tkzDefPoint(0,0){A} 
   \tkzDefPoint(5,0){B}
-  \tkzInterCC[R](A,4cm)(B,3cm)
+  \tkzInterCC[R](A,4)(B,3)
   \tkzGetPoints{C}{D}
   \tkzDrawPoints(A,B,C) 
-  \tkzCompass[color=red,delta=20](A,C)
-  \tkzCompass[color=red,delta=20](B,C) 
+  \tkzCompass[delta=20](A,C)
+  \tkzCompass[delta=20](B,C) 
   \tkzDrawPolygon(A,B,C)  
   \tkzMarkAngle(A,C,B)
 \end{tikzpicture}
@@ -63,14 +63,15 @@
 \begin{tikzpicture}[scale=.75]
  \tkzDefPoint(2,2){A}  \tkzDefPoint(5,-2){B}
  \tkzDefPoint(3,4){C}  \tkzDrawPoints(A,B) 
- \tkzDrawPoint[color=red,shape=cross out](C)    
- \tkzCompasss[color=orange](A,B A,C B,C C,B) 
- \tkzShowLine[mediator,color=red,
-                             dashed,length = 2](A,B)
+ \tkzDrawPoint[shape=cross out](C)    
+ \tkzCompasss[new](A,B A,C B,C C,B) 
+ \tkzShowLine[mediator,new,dashed,length = 2](A,B)
  \tkzShowLine[parallel = through C,
-                            color=blue,length=2](A,B)
- \tkzDefLine[mediator](A,B)  \tkzGetPoints{i}{j}
- \tkzDefLine[parallel=through C](A,B) \tkzGetPoint{D}
+                     color=purple,length=2](A,B)
+ \tkzDefLine[mediator](A,B)  
+  \tkzGetPoints{i}{j}
+ \tkzDefLine[parallel=through C](A,B) 
+   \tkzGetPoint{D}
  \tkzDrawLines[add=.6 and .6](C,D A,C B,D)
  \tkzDrawLines(i,j) \tkzDrawPoints(A,B,C,i,j,D)  
  \tkzLabelPoints(A,B,C,i,j,D)
@@ -77,38 +78,4 @@
 \end{tikzpicture}
 \end{tkzexample} 
 
-
-\subsection{Configuration macro \tkzcname{tkzSetUpCompass}} 
-
-\begin{NewMacroBox}{tkzSetUpCompass}{\oarg{local options}}%
-\begin{tabular}{lll}%
-options             & default & definition                        \\ 
-\midrule
-\TOline{line width}  {0.4pt}{line thickness} 
-\TOline{color}  {black!50}{line colour} 
-\TOline{style}  {solid}{solid line style, dashed,dotted,...}
-\end{tabular}
-\end{NewMacroBox} 
-
-\subsubsection{Use of \tkzcname{tkzSetUpCompass}}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75,
-	      showbi/.style={bisector,size=2,gap=3}]
-  \tkzSetUpCompass[color=blue,line width=.3 pt]
-  \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
-  \tkzDrawPolygon(A,B,C)  
-  \tkzDefLine[bisector](B,A,C)  \tkzGetPoint{a}
-  \tkzDefLine[bisector](C,B,A)  \tkzGetPoint{b}
-  \tkzShowLine[showbi](B,A,C)
-  \tkzShowLine[showbi](C,B,A)   
-  \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
-  \tkzDefPointBy[projection= onto A--B](I)
-	 \tkzGetPoint{H}
-  \tkzDrawCircle[radius,color=gray](I,H) 
-  \tkzDrawSegments[color=gray!50](I,H)
-  \tkzDrawLines[add=0 and -.2,color=blue!50 ](A,a B,b) 
-	\tkzShowBB
-\end{tikzpicture} 
-\end{tkzexample} 
 \endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-config.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-config.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-config.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,196 +0,0 @@
-\section{Customization}
-
-\subsection{Use of \tkzcname{tkzSetUpLine}} \label{tkzsetupline}
-It is a macro that allows you to define the style of all the lines.
-
-\begin{NewMacroBox}{tkzSetUpLine}{\oarg{local options}}%
-\begin{tabular}{lll}%
-options &  default & definition                 \\ 
-\midrule
-\TOline{color}{black}{colour of the construction lines} 
-\TOline{line width}{0.4pt}{thickness of the construction lines} 
-\TOline{style}{solid}{style of construction lines}
-\TOline{add}{.2 and .2}{changing the length of a line segment} 
-\end{tabular}  
-\end{NewMacroBox}
-
-\subsubsection{Example 1: change line width} 
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}
-   \tkzSetUpLine[color=blue,line width=1pt]
-\begin{scope}[rotate=-90]
-    \tkzDefPoint(10,6){C}
-    \tkzDefPoint( 0,6){A}
-    \tkzDefPoint(10,0){B}
-    \tkzDefPointBy[projection = onto B--A](C) 
-    \tkzGetPoint{H}
-    \tkzDrawPolygon(A,B,C)
-    \tkzMarkRightAngle[size=.4,fill=blue!20](B,C,A)
-    \tkzMarkRightAngle[size=.4,fill=red!20](B,H,C)
-    \tkzDrawSegment[color=red](C,H)
-\end{scope}
- \tkzLabelSegment[below](C,B){$a$}
- \tkzLabelSegment[right](A,C){$b$}
- \tkzLabelSegment[left](A,B){$c$}
- \tkzLabelSegment[color=red](C,H){$h$}
- \tkzDrawPoints(A,B,C) 
- \tkzLabelPoints[above left](H)
- \tkzLabelPoints(B,C) 
- \tkzLabelPoints[above](A)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-
-\subsubsection{Example 2: change style of line} 
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.6] 
- \tkzDefPoint(1,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,1){C} \tkzDefPoint(5,1){D}
- \tkzDefPoint(1,2){E} \tkzDefPoint(6,2){F}
- \tkzDefPoint(0,4){A'}\tkzDefPoint(3,4){B'}
- \tkzCalcLength[cm](C,D)  \tkzGetLength{rCD}
- \tkzCalcLength[cm](E,F)  \tkzGetLength{rEF} 
- \tkzInterCC[R](A',\rCD cm)(B',\rEF cm) 
- \tkzGetPoints{I}{J} 
- \tkzSetUpLine[style=dashed,color=gray]
- \tkzDrawLine(A',B')
- \tkzCompass(A',B')
- \tkzDrawSegments(A,B C,D E,F) 
- \tkzDrawCircle[R](A',\rCD cm)
- \tkzDrawCircle[R](B',\rEF cm)
- \tkzSetUpLine[color=red] 
- \tkzDrawSegments(A',I B',I)
- \tkzDrawPoints(A,B,C,D,E,F,A',B',I,J)
- \tkzLabelPoints(A,B,C,D,E,F,A',B',I,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Example 3: extend lines}
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}
-  \tkzSetUpLine[add=.5 and .5]
-  \tkzDefPoints{0/0/A,4/0/B,1/3/C}
-  \tkzDrawLines(A,B B,C A,C)
-  \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Points style} 
-\begin{NewMacroBox}{tkzSetUpPoint}{\oarg{local options}}%
-\begin{tabular}{lll}%
-options &  default & definition                 \\ 
-\midrule
-\TOline{color}{black}{point color} 
-\TOline{size}{3pt}{point size} 
-\TOline{fill}{black!50}{inside point color} 
-\TOline{shape}{circle}{point shape circle or cross} 
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Use of \tkzcname{tkzSetUpPoint}}
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture} 
-  \tkzSetUpPoint[shape = cross out,color=blue] 
-  \tkzInit[xmax=100,xstep=20,ymax=.5] 
-  \tkzDefPoint(20,1){A} 
-  \tkzDefPoint(80,0){B} 
-  \tkzDrawLine(A,B)
-  \tkzDrawPoints(A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Use of \tkzcname{tkzSetUpPoint} inside a group}
-\begin{tkzexample}[latex=8cm,small]
-  \begin{tikzpicture}
-    \tkzInit[ymin=-0.5,ymax=3,xmin=-0.5,xmax=7]
-    \tkzDefPoint(0,0){A}
-    \tkzDefPoint(02.25,04.25){B}
-    \tkzDefPoint(4,0){C}
-    \tkzDefPoint(3,2){D}
-    \tkzDrawSegments(A,B A,C A,D)
-  {\tkzSetUpPoint[shape=cross out,
-              fill= teal!50,
-              size=4,color=teal]
-    \tkzDrawPoints(A,B)}
-    \tkzSetUpPoint[fill= teal!50,size=4,
-                 color=teal]
-     \tkzDrawPoints(C,D)
-    \tkzLabelPoints(A,B,C,D)
-  \end{tikzpicture}
-\end{tkzexample}
-
- 
- 
-\subsection{Use of \tkzcname{tkzSetUpCompass}}
-
-\begin{NewMacroBox}{tkzSetUpCompass}{\oarg{local options}}%
-\begin{tabular}{lll}%
-options &  default & definition                 \\ 
-\midrule
-\TOline{color}{black}{color of construction arcs} 
-\TOline{line width}{0.4pt}{thickness of construction arcs} 
-\TOline{style}{solid}{style of the building arcs} 
-\end{tabular}
-\end{NewMacroBox}   
-
-\subsubsection{Use of \tkzcname{tkzSetUpCompass} with bisector}
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}[scale=0.75]
-    \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}      
-    \tkzDrawPolygon(A,B,C)  
-    \tkzSetUpCompass[color=red,line width=.2 pt] 
-    \tkzDefLine[bisector](A,C,B) \tkzGetPoint{c}
-    \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
-    \tkzDefLine[bisector](C,B,A) \tkzGetPoint{b} 
-    \tkzShowLine[bisector,size=2,gap=3](A,C,B)
-    \tkzShowLine[bisector,size=2,gap=3](B,A,C)
-    \tkzShowLine[bisector,size=1,gap=2](C,B,A)
-    \tkzDrawLines[add=0 and 0 ](B,b)    
-    \tkzDrawLines[add=0 and -.4 ](A,a  C,c)  
-    \tkzLabelPoints(A,B) \tkzLabelPoints[above](C)
-  \end{tikzpicture}      
-  \end{tkzexample}
-
-\subsubsection{Another example of of\tkzcname{tkzSetUpCompass}}
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}[scale=1,rotate=90]
-    \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
-    \tkzDrawPolygon(A,B,C)
-    \tkzSetUpCompass[color=brown,
-            line width=.3 pt,style=tkzdotted]
-    \tkzDefLine[bisector](B,A,C)  \tkzGetPoint{a}
-    \tkzDefLine[bisector](C,B,A)  \tkzGetPoint{b}
-    \tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
-    \tkzDefPointBy[projection= onto A--B](I) 
-    \tkzGetPoint{H}
-    \tkzMarkRightAngle(I,H,A)
-    \tkzDrawCircle[radius,color=red](I,H)
-    \tkzDrawSegments[color=red](I,H)
-    \tkzDrawLines[add=0 and -.5,,color=red](A,a)
-    \tkzDrawLines[add=0 and 0,color=red](B,b)
-    \tkzShowLine[bisector,size=2,gap=3](B,A,C)
-    \tkzShowLine[bisector,size=1,gap=3](C,B,A)
-    \tkzLabelPoints(A,B)\tkzLabelPoints[left](C)
-  \end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Own style}
-You can set the normal style with |tkzSetUpPoint| and your own style
-
-\begin{tkzexample}[latex=2cm,small]
-\tkzSetUpPoint[color=blue!50!white, fill=gray!20!red!50!white] 
-\tikzset{/tikz/mystyle/.style={color=blue!20!black,fill=blue!20}}
-  \begin{tikzpicture}
-    \tkzDefPoint(0,0){O}
-    \tkzDefPoint(0,1){A} 
-    \tkzDrawPoints(O) % general style
-    \tkzDrawPoints[mystyle,size=4](A) % my style
-    \tkzLabelPoints(O,A) 
-  \end{tikzpicture}
-\end{tkzexample}
-
-\endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-drawing.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-drawing.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-drawing.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,987 @@
+\section{Drawing}
+\tkzname{\tkznameofpack} can draw 5 types of objects : point, line or line segment, circle, arc and sector.
+
+%<---------------------------------------------------------------------------->
+%    POINT(S)
+%<---------------------------------------------------------------------------->
+\subsection{Draw a point or some points}
+There are two possibilities : \tkzcname{tkzDrawPoint} for a single point or \tkzcname{tkzDrawPoints} for one or more points.
+
+\subsubsection{Drawing points \tkzcname{tkzDrawPoint}} \hypertarget{tdrp}{}
+
+\begin{NewMacroBox}{tkzDrawPoint}{\oarg{local options}\parg{name}}%
+\begin{tabular}{lll}%
+arguments &  default & definition                 \\
+\midrule
+\TAline{name of point} {no default}  {Only one point name is accepted}
+\bottomrule
+\end{tabular}
+
+\medskip
+The argument is required. The disc takes the color of the circle, but  lighter. It is possible to change everything. The point is a node and therefore it is invariant if the drawing is modified by scaling.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition \\
+\midrule
+\TOline{\TIKZ\ options}{}{all \TIKZ\ options are valid.}
+\TOline{shape}  {circle}{Possible \tkzname{cross} or \tkzname{cross out}}
+\TOline{size}   {6}{$6 \times$ \tkzcname{pgflinewidth}}
+\TOline{color}  {black}{the default color can be changed }
+\bottomrule
+\end{tabular}
+
+\medskip
+{We can create other forms such as \tkzname{cross}}
+\end{NewMacroBox}
+
+By default, \tkzname{point style } is defined  like this :
+
+\begin{tkzltxexample}[]
+  \tikzset{point style/.style = {%
+           draw         = black,
+           inner sep    = 0pt,
+           shape        = circle,
+           minimum size = 3 pt,
+           fill         = black
+                               }
+        } 
+\end{tkzltxexample}
+
+\subsubsection{Example of point drawings}
+Note that \tkzname{scale} does not affect the shape of the dots. Which is normal.  Most of the time, we are satisfied with a single point shape that we can define from the beginning, either with a macro or by modifying a configuration file.
+
+\begin{tkzexample}[latex=5cm,small]
+  \begin{tikzpicture}[scale=.5]
+   \tkzDefPoint(1,3){A}
+   \tkzDefPoint(4,1){B}
+   \tkzDefPoint(0,0){O}
+   \tkzDrawPoint[color=red](A)
+   \tkzDrawPoint[fill=blue!20,draw=blue](B)
+   \tkzDrawPoint[shape=cross,size=8pt,color=teal](O)
+  \end{tikzpicture}
+\end{tkzexample}
+
+It is possible to draw several points at once but this macro is a little slower than the previous one. Moreover, we have to make do with the same options for all the points.
+\newpage
+\hypertarget{tdrps}{}
+\begin{NewMacroBox}{tkzDrawPoints}{\oarg{local options}\parg{liste}}%
+\begin{tabular}{lll}%
+arguments &  default  & definition \\
+\midrule
+\TAline{points list}{no default}{example \tkzcname{tkzDrawPoints(A,B,C)}}
+\bottomrule
+\end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+options             & default & definition \\
+\midrule
+\TOline{shape}  {circle}{Possible \tkzname{cross} or \tkzname{cross out}}
+\TOline{size}  {6}{$6 \times$ \tkzcname{pgflinewidth}}
+\TOline{color}  {black}{the default color can be changed }
+\bottomrule
+\end{tabular}
+
+\medskip
+\tkzHandBomb\ Beware of the final "s", an oversight leads to cascading errors if you try to draw multiple points. The options are the same as for the previous macro.
+\end{NewMacroBox}
+
+
+\subsubsection{Example}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{1/3/A,4/1/B,0/0/C}
+\tkzDrawPoints[size=3,color=red,fill=red!50](A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+%<---------------------------------------------------------------------------->
+%    LINE(S)
+%<---------------------------------------------------------------------------->
+
+\section{Drawing the lines}
+The following macros are simply used to draw, name lines.
+\subsection{Draw a straight line}
+To draw a normal straight line, just give a couple of points. You can  use the \tkzname{add} option to extend the line (This option is due to \tkzimp{Mark Wibrow}, see the code below). 
+
+
+The style of a line is by default :
+
+\begin{tkzltxexample}[]
+  \tikzset{line style/.style = {%
+    line width = 0.6pt,
+    color      = black,
+    style      = solid,
+    add        = {.2} and  {.2}%
+   }}
+\end{tkzltxexample}
+with
+   
+\begin{tkzltxexample}[]
+  \tikzset{%
+    add/.style args={#1 and #2}{
+        to path={%
+ ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
+  \tikztonodes}}}
+\end{tkzltxexample}
+
+You can modify this style with \tkzcname{tkzSetUpLine} see \ref{tkzsetupline}
+
+\newpage
+\begin{NewMacroBox}{tkzDrawLine}{\oarg{local options}\parg{pt1,pt2} }%
+The arguments are a list of two points or three points. It would be possible, as for a half line, to create a style with \tkzcname{add}.
+
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                         \\ 
+\midrule
+\TOline{\TIKZ\ options}{}{all \TIKZ\ options are valid.}
+\TOline{add}{0.2 and 0.2}{add = $kl$ and $kr$, \dots}
+\TOline{\dots}{\dots}{allows the segment to be extended to the left and right. }
+\bottomrule
+\end{tabular}
+
+\tkzname{add} defines the length of the line passing through the points pt1 and pt2. Both numbers are percentages. The styles of \TIKZ\ are accessible for plots.
+\end{NewMacroBox}
+
+\subsubsection{Examples  with \tkzname{add}}
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}
+ \tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
+ \tkzClip[space=.25]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
+ \tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D} 
+ \tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F} 
+ \tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
+ \tkzDrawLine(A,B)    \tkzDrawLine[add = 0 and .5](C,D) 
+ \tkzDrawLine[add = 1 and 0](E,F)
+ \tkzDrawLine[add = 0 and 0](G,H) 
+ \tkzDrawPoints(A,B,C,D,E,F,G,H)    
+ \tkzLabelPoints(A,B,C,D,E,F,G,H)  
+\end{tikzpicture}
+\end{tkzexample} 
+
+It is possible to draw several lines, but with the same options. 
+\begin{NewMacroBox}{tkzDrawLines}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}% 
+Arguments are a list of pairs of  points separated by spaces.  The styles of \TIKZ\ are available for the draws. 
+\end{NewMacroBox}      
+
+\subsubsection{Example with \tkzcname{tkzDrawLines}}    
+
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(2,0){B}
+  \tkzDefPoint(1,2){C}
+  \tkzDefPoint(3,2){D}   
+  \tkzDrawLines(A,B C,D A,C B,D)
+  \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example with  the option \tkzname{add}}   
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(3,1){I}
+ \tkzDefPoint(1,4){J}
+ \tkzDefLine[bisector](I,O,J)     
+   \tkzGetPoint{i}   
+ \tkzDefLine[bisector out](I,O,J) 
+   \tkzGetPoint{j}
+ \tkzDrawLines[add = 1 and .5](O,I O,J) 
+ \tkzDrawLines[add = 1 and .5,new](O,i O,j) 
+\end{tikzpicture} 
+\end{tkzexample}
+%<---------------------------------------------------------------------------->
+%    SEGMENT(S)
+%<---------------------------------------------------------------------------->
+
+\section{Drawing a segment}
+There is, of course, a macro to simply draw a segment.
+
+\subsection{Draw a segment \tkzcname{tkzDrawSegment}} 
+\begin{NewMacroBox}{tkzDrawSegment}{\oarg{local options}\parg{pt1,pt2}}%
+The arguments are a list of two points. The styles of \TIKZ\ are available for the drawings.
+ 
+\medskip
+\begin{tabular}{lll}%
+argument    & example & definition    \\
+\midrule
+\TAline{(pt1,pt2)}{(A,B)}{draw the segment $[A,B]$}
+\bottomrule 
+\end{tabular}
+ 
+\medskip
+\begin{tabular}{lll}%
+options    & example & definition    \\
+\midrule
+\TOline{\TIKZ\ options}{}{all \TIKZ\ options are valid.}
+\TOline{dim}{no default}{dim = \{label,dim,option\}, \dots}
+\TOline{\dots}{\dots}{allows you to add dimensions to a figure.}
+\bottomrule 
+\end{tabular}
+
+This is of course equivalent to \tkzcname{draw (A)--(B);}. You can also use the option \tkzname{add}.
+\end{NewMacroBox}
+
+\subsubsection{Example with point references}     
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=1.5]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(2,1){B}
+  \tkzDrawSegment[color=red,thin](A,B)
+  \tkzDrawPoints(A,B)    
+  \tkzLabelPoints(A,B)  
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example of extending an segment with option \tkzname{add}} 
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}
+  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+  \tkzDefTriangleCenter[euler](A,B,C) 
+  \tkzGetPoint{E}
+  \tkzDrawCircle[euler,red](A,B,C)
+  \tkzDrawLines[add=.5 and .5](A,B A,C B,C)
+  \tkzDrawPoints(A,B,C,E)
+  \tkzLabelPoints(A,B,C,E)
+  \end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Adding dimensions with option \tkzname{dim} partI} 
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=4]
+ \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
+ % Define the first two points
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPoint(1,1){C}
+ % Draw the triangle and the points
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ % Label the sides
+ \tkzCalcLength(A,B)\tkzGetLength{ABl}
+ \tkzCalcLength(B,C)\tkzGetLength{BCl}
+ \tkzCalcLength(A,C)\tkzGetLength{ACl}
+ % add dim
+ \tkzDrawSegment[dim={\pgfmathprintnumber\BCl,6pt,transform shape}](C,B)
+ \tkzDrawSegment[dim={\pgfmathprintnumber\ACl,6pt,transform shape}](A,C)
+ \tkzDrawSegment[dim={\pgfmathprintnumber\ABl,-6pt,transform shape}](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Adding dimensions with option \tkzname{dim} part II} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoints{0/0/O,-2/0/A,2/0/B,
+                -2/4/C,2/4/D,2/-4/E,-2/-4/F}
+  \tkzDrawPolygon(C,...,F)
+  \tkzDrawSegments(A,B)
+  \tkzDrawPoints(A,...,F,O)
+  \tkzLabelPoints(A,...,F,O)
+   \tkzDrawSegment[dim={ $\sqrt{5}$,2cm,}](C,E)
+   \tkzDrawSegment[dim={ $\frac{\sqrt{5}}{2}$,1cm,}](O,E)
+   \tkzDrawSegment[dim={ $2$,2cm,left=8pt}](F,C)
+   \tkzDrawSegment[dim={ $1$,1cm,left=8pt}](F,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Drawing segments \tkzcname{tkzDrawSegments}} 
+If the options are the same we can plot several segments with the same macro. 
+
+\begin{NewMacroBox}{tkzDrawSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
+The arguments are a two-point couple list. The styles of \TIKZ\ are available for the plots.
+\end{NewMacroBox}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+  \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
+  \tkzClip[space=1]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(2,1){B} 
+  \tkzDefPoint(3,0){C} 
+  \tkzDrawSegments(A,B B,C)
+  \tkzDrawPoints(A,B,C)    
+  \tkzLabelPoints(A,C) 
+  \tkzLabelPoints[above](B)  
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Place an arrow on segment}
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+\tkzSetUpStyle[postaction=decorate,
+    decoration={markings, 
+    mark=at position .5 with {\arrow[thick]{#1}}
+      }]{myarrow}
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(4,-4){B}
+  \tkzDrawSegments[myarrow=stealth](A,B)
+  \tkzDrawPoints(A,B) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Drawing line segment of a triangle}
+
+\subsubsection{How to draw \tkzname{Altitude} } 
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[rotate=-90]
+  \tkzDefPoint(0,1){A}
+  \tkzDefPoint(2,4){C}
+  \tkzDefPointWith[orthogonal normed,K=7](C,A)
+  \tkzGetPoint{B}
+  \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
+  \tkzDrawLine[dashed,color=magenta](C,Hc)
+  \tkzDrawSegment[green!60!black](A,C)
+  \tkzDrawSegment[green!60!black](C,B)
+  \tkzDrawSegment[green!60!black](B,A)
+  \tkzLabelPoint[left](A){$A$}
+  \tkzLabelPoint[right](B){$B$}
+  \tkzLabelPoint[above](C){$C$}
+  \tkzLabelPoint[left](Hc){$Hc$}
+  \tkzLabelSegment[auto](B,A){$c$}
+  \tkzLabelSegment[auto,swap](B,C){$a$}
+  \tkzLabelSegment[auto,swap](C,A){$b$}
+  \tkzMarkAngle[size=1,color=cyan,mark=|](C,B,A)
+  \tkzMarkAngle[size=1,color=cyan,mark=|](A,C,Hc)
+  \tkzMarkAngle[size=0.75,
+                color=orange,mark=||](Hc,C,B)
+  \tkzMarkAngle[size=0.75,
+                color=orange,mark=||](B,A,C)
+  \tkzMarkRightAngle(A,C,B)
+  \tkzMarkRightAngle(B,Hc,C)
+  \end{tikzpicture} 
+\end{tkzexample}
+
+\subsection{Drawing a polygon} 
+ \begin{NewMacroBox}{tkzDrawPolygon}{\oarg{local options}\parg{points list}}%
+Just give a list of points and the macro plots the polygon using the \TIKZ\ options present. You can  replace $(A,B,C,D,E)$ by $(A,...,E)$ and $(P_1,P_2,P_3,P_4,P_5)$ by $(P_1,P...,P_5)$
+
+\begin{tabular}{lll}%
+\toprule
+arguments             & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolygon[gray,dashed](A,B,C)|}{Drawing a triangle}
+ \end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & example                         \\
+\midrule
+\TOline{Options TikZ}{...}{|\BS tkzDrawPolygon[red,line width=2pt](A,B,C)|}
+ \end{tabular} 
+\end{NewMacroBox}
+
+\subsubsection{\tkzcname{tkzDrawPolygon}}
+
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture} [rotate=18,scale=1]
+ \tkzDefPoints{0/0/A,2.25/0.2/B,2.5/2.75/C,-0.75/2/D}
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzDrawSegments[style=dashed](A,C B,D) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Option \tkzname{two angles}}
+\begin{tkzexample}[latex=6 cm,small]
+\begin{tikzpicture}
+\tkzDefPoint(0,0){A} 
+\tkzDefPoint(6,0){B} 
+\tkzDefTriangle[two angles = 50 and 70](A,B) \tkzGetPoint{C}
+\tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$}
+\tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Style of line}
+\begin{tkzexample}[latex=8 cm,small]
+\begin{tikzpicture}[scale=.6]
+\tkzSetUpLine[line width=5mm,color=teal]
+\tkzDefPoint(0,0){O}
+\foreach \i in {0,...,5}{%
+ \tkzDefPoint({30+60*\i}:4){p\i}}
+\tkzDefMidPoint(p1,p3) \tkzGetPoint{m1}
+\tkzDefMidPoint(p3,p5) \tkzGetPoint{m3}
+\tkzDefMidPoint(p5,p1) \tkzGetPoint{m5}
+\tkzDrawPolygon[line join=round](p1,p3,p5)
+\tkzDrawPolygon[teal!80,
+line join=round](p0,p2,p4)
+\tkzDrawSegments(m1,p3 m3,p5 m5,p1)
+\tkzDrawCircle[teal,R](O,4.8)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Drawing a polygonal chain} 
+ \begin{NewMacroBox}{tkzDrawPolySeg}{\oarg{local options}\parg{points list}}%
+Just give a list of points and the macro plots the polygonal chain using the \TIKZ\ options present.
+
+\begin{tabular}{lll}%
+\toprule
+arguments             & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolySeg[gray,dashed](A,B,C)|}{Drawing a triangle}
+ \end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & example                         \\
+\midrule
+\TOline{Options TikZ}{...}{|\BS tkzDrawPolySeg[red,line width=2pt](A,B,C)|}
+ \end{tabular} 
+\end{NewMacroBox}
+
+\subsubsection{Polygonal chain}
+
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/B,3/4/C,2/2/D}          
+ \tkzDrawPolySeg(A,...,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{The idea is to inscribe two squares in a semi-circle.}
+A Sangaku look! It is a question of proving that one can inscribe in a half-disc, two squares, and to determine the length of their respective sides according to the radius.
+
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}[scale=.75] 
+  \tkzDefPoints{0/0/A,8/0/B,4/0/I}
+  \tkzDefSquare(A,B)    \tkzGetPoints{C}{D} 
+  \tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E} 
+  \tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F} 
+  \tkzDefPointsBy[projection=onto A--B](E,F){H,G} 
+  \tkzDefPointsBy[symmetry = center H](I){J} 
+  \tkzDefSquare(H,J)     \tkzGetPoints{K}{L} 
+  \tkzDrawSector(I,B)(A) 
+  \tkzDrawPolySeg(H,E,F,G) 
+  \tkzDrawPolySeg(J,K,L) 
+  \tkzDrawPoints(E,G,H,F,J,K,L)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Polygonal chain: index notation}
+
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture}
+\foreach \pt in {1,2,...,8} {%
+\tkzDefPoint(\pt*20:3){P_\pt}}     
+\tkzDrawPolySeg(P_1,P_...,P_8)
+\tkzDrawPoints(P_1,P_...,P_8)
+\end{tikzpicture}
+\end{tkzexample}
+
+%<---------------------------------------------------------------------------->
+%    CIRCLE
+%<---------------------------------------------------------------------------->
+
+\section{Draw a circle with \tkzcname{tkzDrawCircle}}
+
+\subsection{Draw one circle}
+\begin{NewMacroBox}{tkzDrawCircle}{\oarg{local options}\parg{A,B}}%
+\tkzHandBomb\ Attention you need only two points to define a radius or a diameter.  An additional option \tkzname{R} is available  to give a measure directly.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments           & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2}}{\parg{A,B}} {two points to define a radius or a diameter}
+\bottomrule
+\end{tabular}   
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                         \\ 
+\midrule
+\TOline{through}{through}{circle with two points defining a radius}
+\TOline{diameter}{through}{circle with two points defining a diameter}
+\TOline{R}{through}{circle characterized by a point and the measurement of a radius}
+ \bottomrule
+\end{tabular}
+
+\medskip
+Of course, you have to add all the styles of \TIKZ\ for the tracings...
+\end{NewMacroBox}
+ 
+ \subsubsection{Circles and styles, draw a circle and color the disc}
+ We'll see that it's possible to colour in a disc while tracing the circle.
+ 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){O} 
+  \tkzDefPoint(3,0){A}
+ % circle with centre O and passing through A
+  \tkzDrawCircle(O,A) 
+ % diameter circle $[OA]$
+  \tkzDrawCircle[diameter,new,%
+                 line width=.4pt,fill=orange!10,%
+                 opacity=.5](O,A)
+ % circle with centre O and radius = exp(1) cm
+  \edef\rayon{\fpeval{0.25*exp(1)}}
+  \tkzDrawCircle[R,color=orange](O,\rayon) 
+\end{tikzpicture} 
+\end{tkzexample}  
+
+\subsection{Drawing circles}  
+\begin{NewMacroBox}{tkzDrawCircles}{\oarg{local options}\parg{A,B C,D \dots}}%
+\tkzHandBomb\ Attention, the arguments are lists of two points. The circles that can be drawn are the same as in the previous macro. An additional option \tkzname{R} is available to give  a measure directly.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments           & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points}
+\bottomrule
+\end{tabular}   
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                         \\ 
+\midrule
+\TOline{through}{through}{circle with two points defining a radius}
+\TOline{diameter}{through}{circle with two points defining a diameter}
+\TOline{R} {through}{circle characterized by a point and the measurement of a radius}
+ \bottomrule
+\end{tabular}
+
+\medskip
+Of course, you have to add all the styles of \TIKZ\ for the tracings...
+\end{NewMacroBox}
+
+ \subsubsection{Circles defined by a triangle.} 
+ 
+\begin{tkzexample}[latex=9cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,2/0/B,3/2/C}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawCircles(A,B B,C C,A)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(A,B,C) 
+\end{tikzpicture} 
+\end{tkzexample}
+
+ \subsubsection{Concentric circles.} 
+ 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+   \tkzDefPoint(0,0){A}
+   \tkzDrawCircles[R](A,1 A,2 A,3)
+   \tkzDrawPoint(A)
+   \tkzLabelPoints(A)
+\end{tikzpicture}
+\end{tkzexample}
+
+ \subsubsection{Exinscribed circles.} 
+
+\begin{tkzexample}[latex=8cm,small] 
+\begin{tikzpicture}[scale=1] 
+\tkzDefPoints{0/0/A,4/0/B,1/2.5/C}
+\tkzDrawPolygon(A,B,C)
+\tkzDefCircle[ex](B,C,A) 
+\tkzGetPoint{J_c} \tkzGetSecondPoint{T_c}
+\tkzGetLength{rJc} 
+\tkzDrawCircle[R](J_c,{\rJc pt})
+\tkzDrawLines[add=0 and 1](C,A C,B)
+\tkzDrawSegment(J_c,T_c)
+\tkzMarkRightAngle(J_c,T_c,B)
+\tkzDrawPoints(A,B,C,J_c,T_c)
+\end{tikzpicture}
+\end{tkzexample}
+ 
+\subsubsection{Cardioid}  
+Based on an idea by O. Reboux made with pst-eucl (Pstricks module) by D. Rodriguez.
+
+ Its name comes from the Greek \textit{kardia (heart)}, in reference to its shape, and was given to it by Johan Castillon (Wikipedia).     
+ 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoint(0,0){O} 
+  \tkzDefPoint(2,0){A}
+  \foreach \ang in {5,10,...,360}{%
+     \tkzDefPoint(\ang:2){M}
+     \tkzDrawCircle(M,A) 
+   }  
+\end{tikzpicture} 
+\end{tkzexample}
+
+\newpage
+
+\subsection{Drawing semicircle}
+\begin{NewMacroBox}{tkzDrawSemiCircle}{\oarg{local options}\parg{A,B}}%
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments           & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2}}{\parg{O,A} or\parg{A,B}} {radius or diameter}
+\bottomrule
+\end{tabular} 
+    
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                         \\ 
+\midrule
+\TOline{through}  {through}{circle characterized by two points defining a radius} 
+\TOline{diameter} {through}{circle characterized by two points defining a diameter}
+\end{tabular}
+\end{NewMacroBox}  
+
+\subsubsection{Use of \tkzcname{tkzDrawSemiCircle}}   
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+   \tkzDefPoint(0,0){A} \tkzDefPoint(6,0){B}
+   \tkzDefSquare(A,B)    \tkzGetPoints{C}{D}
+   \tkzDrawPolygon(B,C,D,A)
+   \tkzDefPoint(3,6){F}
+   \tkzDefTriangle[equilateral](C,D) 
+   \tkzGetPoint{I}
+   \tkzDefPointBy[projection=onto B--C](I) 
+   \tkzGetPoint{J}
+   \tkzInterLL(D,B)(I,J)  \tkzGetPoint{K}
+   \tkzDefPointBy[symmetry=center K](B) 
+   \tkzGetPoint{M}
+   \tkzDrawCircle(M,I)
+   \tkzCalcLength(M,I) \tkzGetLength{dMI}
+   \tkzDrawPolygon(A,B,C,D)
+   \tkzDrawCircle[R](M,\dMI)
+   \tkzDrawSemiCircle(F,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Drawing semicircles}
+
+\begin{NewMacroBox}{tkzDrawSemiCircles}{\oarg{local options}\parg{A,B C,D \dots}}%
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments           & example & explication                         \\
+\midrule
+\TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points}
+\bottomrule
+\end{tabular} 
+    
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                         \\ 
+\midrule
+\TOline{through}{through}{circle with two points defining a radius}
+\TOline{diameter}{through}{circle with two points defining a diameter}
+ \bottomrule
+\end{tabular}
+\end{NewMacroBox}  
+
+%<---------------------------------------------------------------------------->
+%    ARC
+%<---------------------------------------------------------------------------->
+
+\section{Drawing arcs} 
+\begin{NewMacroBox}{tkzDrawArc}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
+This macro traces the arc of center $O$. Depending on the options, the arguments differ.   It is a question of determining a starting point and an end point. Either the starting point is given, which is the simplest, or the radius of the arc is given. In the latter case, it is necessary to have two angles. Either the angles can be given directly, or nodes associated with the center can be given to determine them. The angles are in degrees.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                        \\ 
+\midrule
+\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$} 
+\TOline{rotate} {towards}{the arc starts from $A$ and the angle determines its length} 
+\TOline{R}{towards}{We give the radius and two angles} 
+\TOline{R with nodes}{towards}{We give the radius and two points}
+\TOline{angles}{towards}{We give the radius and two points}
+\TOline{delta}{0}{angle added on each side } 
+\bottomrule
+\end{tabular}
+
+\medskip
+Of course, you have to add all the styles of \TIKZ\ for the tracings...
+
+\medskip
+
+\begin{tabular}{lll}%
+\toprule
+options             & arguments & example                         \\ 
+\midrule
+\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawArc[delta=10](O,A)(B)}} 
+\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawArc[rotate,color=red](O,A)(90)}}
+\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawArc[R](O,2)(30,90)}}
+\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawArc[R with nodes](O,2)(A,B)}}
+\TOline{angles}{\parg{pt,pt}\parg{an,an}}{\tkzcname{tkzDrawArc[angles](O,A)(0,90)}}
+\end{tabular}
+\end{NewMacroBox}
+
+Here are a few examples: 
+
+\subsection{Option \tkzname{towards}}
+It's useless to put \tkzname{towards}. In this first example the arc starts from $A$ and goes to $B$. The arc going from $B$ to $A$ is different. The salient is obtained by going in the direct direction of the trigonometric circle.
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2,-1){A}
+  \tkzDefPointBy[rotation= center O angle 90](A)
+  \tkzGetPoint{B}
+  \tkzDrawArc[color=orange,<->](O,A)(B) 
+  \tkzDrawArc(O,B)(A)
+  \tkzDrawLines[add = 0 and .5](O,A O,B)
+  \tkzDrawPoints(O,A,B)
+  \tkzLabelPoints[below](O,A,B)  
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Option \tkzname{towards}}
+In this one, the arc starts from A but stops on the right (OB).
+ 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=0.75] 
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2,-1){A}
+  \tkzDefPoint(1,1){B} 
+  \tkzDrawArc[color=blue,->](O,A)(B)
+  \tkzDrawArc[color=gray](O,B)(A)
+  \tkzDrawArc(O,B)(A)
+  \tkzDrawLines[add = 0 and .5](O,A O,B) 
+  \tkzDrawPoints(O,A,B)
+  \tkzLabelPoints[below](O,A,B)  
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Option \tkzname{rotate}}
+\begin{tkzexample}[latex=6cm,small] 
+\begin{tikzpicture}[scale=0.75] 
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2,-2){A}
+  \tkzDefPoint(60:2){B}
+  \tkzDrawLines[add = 0 and .5](O,A O,B)
+  \tkzDrawArc[rotate,color=red](O,A)(180)
+  \tkzDrawPoints(O,A,B)
+  \tkzLabelPoints[below](O,A,B) 
+\end{tikzpicture}
+\end{tkzexample} 
+
+\subsection{Option \tkzname{R}} 
+\begin{tkzexample}[latex=6cm,small]   
+\begin{tikzpicture}[scale=0.75] 
+  \tkzDefPoints{0/0/O}
+  \tkzSetUpCompass[<->]
+  \tkzDrawArc[R,color=teal,double](O,3)(270,360)
+  \tkzDrawArc[R,color=orange,double](O,2)(0,270) 
+  \tkzDrawPoint(O)
+  \tkzLabelPoint[below](O){$O$}  
+\end{tikzpicture} 
+\end{tkzexample}
+
+\subsection{Option \tkzname{R with nodes}} 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=0.75] 
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2,-1){A}
+  \tkzDefPoint(1,1){B}
+  \tkzCalcLength(B,A)\tkzGetLength{radius}
+  \tkzDrawArc[R with nodes](B,\radius)(A,O)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Option \tkzname{delta}}
+This option allows a bit like \tkzcname{tkzCompass} to place an arc and overflow on either side. delta is a measure in degrees.
+
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture} 
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,0){B}
+ \tkzDefPointBy[rotation= center A angle 60](B)
+ \tkzGetPoint{C} 
+ \begin{scope}% style only local
+   \tkzDefPointBy[symmetry= center C](A)
+   \tkzGetPoint{D} 
+   \tkzDrawSegments(A,B A,D)
+   \tkzDrawLine(B,D)
+   \tkzSetUpCompass[color=orange]
+   \tkzDrawArc[orange,delta=10](A,B)(C)
+   \tkzDrawArc[orange,delta=10](B,C)(A)
+   \tkzDrawArc[orange,delta=10](C,D)(D)
+ \end{scope}
+
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+ \tkzMarkRightAngle(D,B,A)
+\end{tikzpicture}
+\end{tkzexample} 
+
+\subsection{Option \tkzname{angles}: example 1}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(5,0){B}  
+  \tkzDefPoint(2.5,0){O} 
+  \tkzDefPointBy[rotation=center O angle 60](B)
+  \tkzGetPoint{D}
+  \tkzDefPointBy[symmetry=center D](O)
+  \tkzGetPoint{E}
+  \begin{scope}
+    \tkzDrawArc[angles](O,B)(0,180)
+    \tkzDrawArc[angles,](B,O)(100,180)  
+    \tkzCompass[delta=20](D,E) 
+    \tkzDrawLines(A,B O,E B,E)
+    \tkzDrawPoints(A,B,O,D,E)
+  \end{scope}
+  \tkzLabelPoints(A,B,O,D,E)
+  \tkzMarkRightAngle(O,B,E) 
+\end{tikzpicture} 
+\end{tkzexample}
+
+\subsection{Option \tkzname{angles}: example 2}
+
+\begin{tkzexample}[latex=6cm,small]
+  \begin{tikzpicture}
+   \tkzDefPoint(0,0){O}
+   \tkzDefPoint(5,0){I} 
+   \tkzDefPoint(0,5){J}
+   \tkzInterCC(O,I)(I,O)\tkzGetPoints{B}{C}  
+   \tkzInterCC(O,I)(J,O)\tkzGetPoints{D}{A}
+   \tkzInterCC(I,O)(J,O)\tkzGetPoints{L}{K}
+   \tkzDrawArc[angles](O,I)(0,90)
+   \tkzDrawArc[angles,color=gray,
+               style=dashed](I,O)(90,180)
+   \tkzDrawArc[angles,color=gray,
+               style=dashed](J,O)(-90,0)
+   \tkzDrawPoints(A,B,K)
+   \foreach \point in {I,A,B,J,K}{%
+               \tkzDrawSegment(O,\point)} 
+  \end{tikzpicture} 
+\end{tkzexample}
+
+%<---------------------------------------------------------------------------->
+%    SECTOR
+%<---------------------------------------------------------------------------->
+
+\section{Drawing a sector or sectors}
+\subsection{\tkzcname{tkzDrawSector}} 
+\tkzHandBomb\  Attention the arguments vary according to the options.
+\begin{NewMacroBox}{tkzDrawSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
+\begin{tabular}{lll}%
+options             & default & definition                         \\ 
+\midrule
+\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$}
+\TOline{rotate} {towards}{the arc starts from $A$ and the angle determines its length } 
+\TOline{R}{towards}{We give the radius and two angles}
+\TOline{R with nodes}{towards}{We give the radius and two points}
+\bottomrule
+\end{tabular} 
+
+You have to add, of course, all the styles of \TIKZ\ for tracings...
+
+\begin{tabular}{lll}%
+\toprule
+options             & arguments & example                         \\ 
+\midrule
+\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawSector(O,A)(B)}}
+\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawSector[rotate,color=red](O,A)(90)}} 
+\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawSector[R,color=teal](O,2)(30,90)}}
+\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawSector[R with nodes](O,2)(A,B)}}
+\end{tabular}
+\end{NewMacroBox}
+
+Here are a few examples: 
+
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{towards}} 
+There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an option.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(-30:3){A} 
+  \tkzDefPointBy[rotation = center O angle -60](A) 
+  \tkzDrawSector(O,A)(tkzPointResult)
+ \begin{scope}[shift={(-60:1)}]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(-30:3){A} 
+  \tkzDefPointBy[rotation = center O angle -60](A) 
+  \tkzDrawSector(O,tkzPointResult)(A)
+  \end{scope}
+\end{tikzpicture}   
+\end{tkzexample}
+
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{rotate}}  
+\begin{tkzexample}[latex=7cm,small]  
+\begin{tikzpicture}[scale=2]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,2){A}
+ \tkzDrawSector[rotate,draw=orange!50!black](O,A)(30)
+ \tkzDrawSector[rotate,draw=teal!50!black](O,A)(-30)
+\end{tikzpicture} 
+\end{tkzexample}  
+
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}}  
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(2,-1){A}
+ \tkzDrawSector[R](O,2)(30,90)
+ \tkzDrawSector[R](O,2)(90,180)
+ \tkzDrawSector[R](O,2)(180,270)
+ \tkzDrawSector[R](O,2)(270,360) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}}  
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(4,-2){A}
+ \tkzDefPoint(4,1){B}
+ \tkzDefPoint(3,3){C}
+ \tkzDrawSector[R with nodes,%
+                fill=teal!20](O,1)(B,C)
+ \tkzDrawSector[R with nodes,%
+                fill=orange!20](O,1.25)(A,B)  
+\tkzDrawSegments(O,A O,B O,C)
+\tkzDrawPoints(O,A,B,C) 
+\tkzLabelPoints(A,B,C) 
+\tkzLabelPoints[left](O) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R with nodes}} 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture} [scale=.4]
+ \tkzDefPoints{-1/-2/A,1/3/B}
+ \tkzDefRegPolygon[side,sides=6](A,B) 
+ \tkzGetPoint{O} 
+ \tkzDrawPolygon[fill=black!10, draw=blue](P1,P...,P6) 
+ \tkzLabelRegPolygon[sep=1.05](O){A,...,F}
+ \tkzDrawCircle[dashed](O,A)
+ \tkzLabelSegment[above,sloped,
+                  midway](A,B){\(A B = 16m\)}
+ \foreach \i  [count=\xi from 1]  in {2,...,6,1}
+   {%
+    \tkzDefMidPoint(P\xi,P\i)
+    \path (O) to [pos=1.1] node {\xi} (tkzPointResult) ;
+    }
+  \tkzDefRandPointOn[segment = P3--P5] 
+  \tkzGetPoint{S}
+  \tkzDrawSegments[thick,dashed,red](A,S S,B)
+  \tkzDrawPoints(P1,P...,P6,S)
+  \tkzLabelPoint[left,above](S){$S$}
+  \tkzDrawSector[R with nodes,fill=red!20](S,2)(A,B)
+  \tkzLabelAngle[pos=1.5](A,S,B){$\alpha$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-drawing.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-elements.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-elements.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-elements.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,166 @@
+
+\section{The Elements of tkz code}
+
+To work with my package, you need to have notions of \LATEX\ as well as \TIKZ.
+
+In this paragraph, we start looking at the "rules" and "symbols" used to create a figure with \tkzname{\tkznameofpack}.
+
+\subsection{Objects and language}
+
+ The primitive objects are points. You can refer to a point at any time using the name given when defining it. (it is possible to assign a different name later on).
+
+To get new points you will use macros. \tkzname{\tkznameofpack} macros have a name beginning with tkz. There are four main categories starting with:
+|\tkzDef...| |\tkzDraw...| |\tkzMark...| and |\tkzLabel...|. 
+The used points are passed as parameters between parentheses while the created points are between braces.
+
+Le code des figures est placés dans un environnement \tkzimp{tikzpicture}
+
+\begin{tkzltxexample}[]
+ \begin{tikzpicture}
+   code ...
+ \end{tikzpicture} 
+ \end{tkzltxexample}
+ 
+ Contrary to \TIKZ, you should not end a macro with  ";". We thus lose the important notion which is the \tkzimp{path}. However, it is possible to place some code between the macros \tkzname{\tkznameofpack}.
+ 
+
+Among the first category, |\tkzDefPoint| allows you to define fixed points. It will be studied in detail later. Here we will see in detail the macro  |\tkzDefTriangle|.
+
+This macro makes it possible to associate to a pair of points a third point in order to define a certain triangle |\tkzDefTriangle(A,B)|. The obtained point is referenced |tkzPointResult| and it is possible to choose another reference with |\tkzGetPoint{C}| for example.
+
+|\tkzDefTriangle[euclid](A,B) \tkzGetPoint{C}|
+
+Parentheses are used to pass arguments. In |(A,B)| $A$ and $B$ are the points with which a third will be defined. However, in |{C}| we use braces to retrieve the new point.
+
+In order to choose a certain type of triangle among the following choices:
+  |equilateral|,  |isosceles right|, |half|, |pythagoras|, |school|, |golden or sublime|, |euclid|, |gold|, |cheops|...
+ and |two angles| you just have to choose between hooks, for example:
+ 
+
+
+\begin{minipage}{0.5\textwidth}
+  \begin{tikzpicture}[scale=.5]
+  \tkzDefPoints{0/0/A,8/0/B}
+  \foreach \tr in {euclid, gold}
+  {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
+  \tkzDrawPoint(C)
+  \tkzLabelPoint[right](C){\tr}
+  \tkzDrawSegments(A,C C,B)}
+  \tkzDrawPoints(A,B)
+  \tkzDrawSegments(A,B)
+   \tkzLabelPoints(A,B)
+  \end{tikzpicture}
+\end{minipage}
+\begin{minipage}{0.5\textwidth}
+  \begin{tkzexample}[code only,small]
+    \begin{tikzpicture}[scale=.5]
+    \tkzDefPoints{0/0/A,8/0/B}
+    \foreach \tr in {euclid,gold}
+    {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
+    \tkzDrawPoint(C)
+    \tkzLabelPoint[right](C){\tr}
+    \tkzDrawSegments(A,C C,B)}
+    \tkzDrawPoints(A,B)
+    \tkzDrawSegments(A,B)
+    \tkzLabelPoints(A,B)
+    \end{tikzpicture}
+  \end{tkzexample}
+\end{minipage}
+
+
+\subsection{Notations and conventions}
+
+I deliberately chose to use the geometric French and personal  conventions  to describe the geometric objects represented. The objects defined and represented by \tkzname{\tkznameofpack} are points, lines and circles located in a plane. They are the primary objects of Euclidean geometry from which we will construct figures.
+
+According to \tkzimp{Euclid}, these figures will only illustrate pure ideas produced by our brain.
+Thus a point has no dimension and therefore no real existence. In the same way the line has no width and therefore no existence in the real world. The objects that we are going to consider are only representations of ideal mathematical objects. \tkzname{\tkznameofpack} will follow the steps of the ancient Greeks to obtain geometrical constructions using the ruler and the compass. 
+
+Here are the notations that will be used:
+
+
+\begin{itemize}
+\item The points are represented geometrically either by a small disc or by the intersection of two lines (two straight lines, a straight line and a circle or two circles). In this case, the point is represented by a cross. 
+
+\begin{tkzexample}[latex=6cm, small]     
+  \begin{tikzpicture}       
+    \tkzDefPoints{0/0/A,4/2/B}       
+    \tkzDrawPoints(A,B)       
+    \tkzLabelPoints(A,B)     
+  \end{tikzpicture}    
+\end{tkzexample}
+
+or else
+
+\begin{tkzexample}[latex=6cm, small]     
+  \begin{tikzpicture}       
+    \tkzSetUpPoint[shape=cross, color=red]       
+    \tkzDefPoints{0/0/A,4/2/B}       
+    \tkzDrawPoints(A,B)       
+    \tkzLabelPoints(A,B)     
+    \end{tikzpicture}    
+    \end{tkzexample}  
+
+The existence of a point being established, we can give it a label which will be a capital letter (with some exceptions) of the Latin alphabet such as $A$, $B$ or $C$. For example:
+\begin{itemize}
+\item $O$ is a center for a circle, a rotation, etc.;
+\item $M$ defined a midpoint;
+\item $H$ defined the foot of an altitude;
+\item $P'$ is the image of $P$ by a transformation ;
+\end{itemize}
+
+It is important to note that the reference name of a point in the code may be different from the label to designate it in the text. So we can define a point A and give it as label $P$. In particular the style will be different, point A will be labeled $A$. 
+
+\begin{tkzexample}[latex=6cm, small]     
+  \begin{tikzpicture}       
+    \tkzDefPoint(0,0){A}       
+    \tkzDrawPoints(A)       
+    \tkzLabelPoint(A){$P$}     
+  \end{tikzpicture}    
+\end{tkzexample}
+
+Exceptions: some points such as the middle of the sides of a triangle share a characteristic, so it is normal that their names also share a common character. We will designate these points by $M_a$, $M_b$ and $M_c$ or $M_A$, $M_B$ and $M_C$.
+
+In the code, these points will be referred to as: M\_A, M\_B and M\_C.
+
+Another exception relates to intermediate construction points which will not be labelled. They will often be designated by a lowercase letter in the code.
+
+\item The line segments are designated by two points representing their ends in square brackets: $[AB]$. 
+
+\item The straight lines are in Euclidean geometry defined by two points so $A$ and $B$ define the straight line $(AB)$. We can also designate this stright line using the Greek alphabet and name it $(\delta)$ or $(\Delta)$. It is also possible to designate the straight line with lowercase letters such as $d$ and $d'$.
+
+\item The semi-straight line is designated as follows $[AB)$.
+
+
+\item Relation between the straight lines. Two perpendicular $(AB)$ and $(CD)$ lines will be written $(AB) \perp (CD)$ and if they are parallel we will write $(AB) \parallelslant (CD)$.
+
+\item The lengths of the sides of triangle ABC are $AB$, $AC$ and $BC$. The numbers are also designated by a lowercase letter so we will write: $AB=c$, $AC=b$ and $BC=a$. The letter $a$ is also used to represent an angle, and $r$ is frequently used to represent a radius, $d$ a diameter, $l$ a length, $d$ a distance.
+
+\item Polygons are designated afterwards by their vertices so $ABC$ is a triangle, $EFGH$ a quadrilateral.
+
+\item Angles are generally measured in degrees (ex $60^\circ$) and in an equilateral $ABC$ triangle we will write $\widehat{ABC}=\widehat{B}=60^\circ$.
+
+\item The arcs are designated by their extremities. For example if $A$ and $B$ are two points of the same circle then $\widearc{AB}$.
+
+
+\item Circles are noted either $\mathcal{C}$ if there is no possible confusion or $\mathcal{C}$ $(O~;~A)$ for a circle with center $O$ and passing through the point $A$ or $\mathcal{C}$ $(O~;~1)$ for a circle with center O and radius 1 cm.
+
+\item  Name of the particular lines of a triangle: I used the terms bisector, bisector out, mediator (sometimes called perpendicular bisectors), altitude, median and symmedian.
+
+\item ($x_1$,$y_1$) coordinates of the point $A_1$, ($x_A$,$y_A$) coordinates of the point $A$.
+
+\end{itemize}
+
+
+\subsection{\tkzname{Set, Calculate, Draw, Mark, Label}}
+The title could have been: \texttt{Separation of Calculus and Drawings}
+
+When a document is prepared using the \LATEX\ system, the source code of the document can be divided into two parts: the document body and the preamble.
+Under this methodology,  publications can be structured, styled and typeset with minimal effort.
+I propose a similar methodology for creating figures with \tkzname{\tkznameofpack}.
+
+The first part defines the fixed points, the second part allows the creation of new points. \tkzname{Set and Calculate} are the two main parts. All that is left to do is to draw (or fill), mark and label. It is possible that \tkzname{\tkznameofpack} is insufficient for some of these latter actions but you can use \TIKZ
+
+One last remark that I think is important, it is best to avoid introducing coordinates within a code as much as possible. I think that the coordinates should appear at the beginning of the code with the fixed points. Then the use of references is recommended. Most macros have the option \tkzname{nodes} or \tkzname{with nodes}.
+
+I also think it's best to define the styles of the different objects from the beginning.
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-elements.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-examples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-examples.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-examples.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,1327 @@
+
+\section{Some interesting examples}
+
+\subsection{Square root of the integers}
+\begin{tikzpicture}
+\node [mybox,title={Square root of the integers}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{How to get $1$, $\sqrt{2}$, $\sqrt{3}$ with a rule and a compass.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(1,0){a0}
+   \tkzDrawSegment(O,a0)
+  \foreach \i [count=\j] in {0,...,16}{%
+    \tkzDefPointWith[orthogonal normed](a\i,O)
+    \tkzGetPoint{a\j}
+       \pgfmathsetmacro{\c}{5*\i} 
+    \tkzDrawPolySeg[fill=teal!\c](a\i,a\j,O)}
+ \end{tikzpicture}
+\end{tkzexample}
+
+\subsection{About right triangle}
+\begin{tikzpicture}
+\node [mybox,title={About right triangle}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{We have a segment $[AB]$ and we want to determine a point $C$ such that $AC=8$~cm    and $ABC$ is a right triangle in $B$.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoint["$A$" left](2,1){A}
+  \tkzDefPoint["$B$" right](6,4){B}
+  \tkzDefPointWith[orthogonal,K=-1](B,A)
+  \tkzDrawLine[add = .5 and .5](B,tkzPointResult)
+  \tkzInterLC[R](B,tkzPointResult)(A,8)
+  \tkzGetPoints{C}{J}
+  \tkzDrawSegment(A,B)
+  \tkzDrawPoints(A,B,C)
+  \tkzCompass(A,C)
+  \tkzMarkRightAngle(A,B,C)
+  \tkzDrawLine[color=gray,style=dashed](A,C)
+  \tkzLabelPoint[above](C){$C$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Archimedes}
+\begin{tikzpicture}
+\node [mybox,title={Archimedes}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{This is an ancient problem   proved by the great Greek mathematician Archimedes .
+The figure below shows a semicircle, with diameter $AB$. A tangent line is drawn and  touches the semicircle at $B$.   An other tangent line at a point, $C$, on the semicircle is drawn. We project the point $C$ on the line segment $[AB]$  on a point $D$. The two tangent lines intersect at the point $T$. Prove that the line $(AT)$ bisects $(CD)$
+}} 
+\end{minipage}
+};
+\end{tikzpicture}
+
+\begin{tkzexample}[]
+\begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,0){A}\tkzDefPoint(6,0){D}
+  \tkzDefPoint(8,0){B}\tkzDefPoint(4,0){I}
+  \tkzDefLine[orthogonal=through D](A,D)
+  \tkzInterLC[R](D,tkzPointResult)(I,4) \tkzGetFirstPoint{C}
+  \tkzDefLine[orthogonal=through C](I,C)    \tkzGetPoint{c}
+  \tkzDefLine[orthogonal=through B](A,B)    \tkzGetPoint{b}
+  \tkzInterLL(C,c)(B,b) \tkzGetPoint{T}
+  \tkzInterLL(A,T)(C,D) \tkzGetPoint{P}
+  \tkzDrawArc(I,B)(A)
+  \tkzDrawSegments(A,B A,T C,D I,C) \tkzDrawSegment[new](I,C)
+  \tkzDrawLine[add = 1 and 0](C,T)   \tkzDrawLine[add = 0 and 1](B,T)
+  \tkzMarkRightAngle(I,C,T)
+  \tkzDrawPoints(A,B,I,D,C,T)
+  \tkzLabelPoints(A,B,I,D)  \tkzLabelPoints[above right](C,T)
+  \tkzMarkSegment[pos=.25,mark=s|](C,D) \tkzMarkSegment[pos=.75,mark=s|](C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsubsection{Square and rectangle of same area; Golden section}
+
+\begin{tikzpicture}
+\node [mybox,title={Book II, proposition XI  \_Euclid's Elements\_}] (box){%
+    \begin{minipage}{0.90\textwidth}
+{\emph{To construct Square and rectangle of same area.}
+} 
+    \end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){D} \tkzDefPoint(8,0){A}
+ \tkzDefSquare(D,A) \tkzGetPoints{B}{C}
+ \tkzDefMidPoint(D,A) \tkzGetPoint{E}
+ \tkzInterLC(D,A)(E,B)\tkzGetSecondPoint{F}
+ \tkzInterLC(A,B)(A,F)\tkzGetSecondPoint{G}    
+ \tkzDefSquare(A,F)\tkzGetFirstPoint{H}
+ \tkzInterLL(C,D)(H,G)\tkzGetPoint{I} 
+ \tkzFillPolygon[teal!10](I,G,B,C)
+ \tkzFillPolygon[teal!10](A,F,H,G)
+ \tkzDrawArc[angles](E,B)(0,120)
+ \tkzDrawSemiCircle(A,F)
+ \tkzDrawSegments(A,F E,B H,I F,H)
+ \tkzDrawPolygons(A,B,C,D)
+ \tkzDrawPoints(A,...,I)
+ \tkzLabelPoints(A,...,I)
+\end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+
+\subsubsection{Steiner Line and Simson Line}
+
+\begin{tikzpicture}
+\node [mybox,title={Steiner Line and Simson Line}] (box){%
+    \begin{minipage}{0.90\textwidth}
+{\emph{Consider the triangle ABC and a point M on its circumcircle. The projections  of M on the sides of the triangle are on a line (Steiner Line),  The three closest points to M on lines AB, AC, and BC are collinear. It's the Simson Line.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}%
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75,rotate=-20]
+  \tkzDefPoint(0,0){B} 
+  \tkzDefPoint(2,4){A} \tkzDefPoint(7,0){C}
+  \tkzDefCircle[circum](A,B,C)  
+  \tkzGetPoint{O}
+  \tkzDrawCircle(O,A) 
+  \tkzCalcLength(O,A)  
+  \tkzGetLength{rOA} 
+  \tkzDefShiftPoint[O](40:\rOA){M}
+  \tkzDefShiftPoint[O](60:\rOA){N}  
+  \tkzDefTriangleCenter[orthic](A,B,C)
+  \tkzGetPoint{H}
+  \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
+  \tkzDefPointsBy[reflection=over A--B](M,N){P,P'}
+  \tkzDefPointsBy[reflection=over A--C](M,N){Q,Q'}
+  \tkzDefPointsBy[reflection=over C--B](M,N){R,R'}
+  \tkzDefMidPoint(M,P)\tkzGetPoint{I}
+  \tkzDefMidPoint(M,Q)\tkzGetPoint{J}
+  \tkzDefMidPoint(M,R)\tkzGetPoint{K} 
+  \tkzDrawSegments[new](P,R M,P M,Q M,R N,P'%
+   N,Q' N,R' P',R' I,K)
+  \tkzDrawPolygons(A,B,C)
+  \tkzDrawPoints(A,B,C,H,M,N,P,Q,R,P',Q',R',I,J,K)
+  \tkzLabelPoints(A,B,C,H,M,N,P,Q,R,P',Q',R',I,J,K)
+\end{tikzpicture}
+
+\end{tkzexample}
+
+
+\newpage
+\subsection{Lune of Hippocrates}
+
+\begin{tikzpicture}
+\node [mybox,title={Lune of Hippocrates}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{From wikipedia : In geometry, the lune of Hippocrates, named after Hippocrates of Chios, is a lune bounded by arcs of two circles, the smaller of which has as its diameter a chord spanning a right angle on the larger circle.In the first figure, the area of the lune is equal to the area of the triangle ABC. Hippocrates of Chios (ancient Greek mathematician,)
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzInit[xmin=-2,xmax=5,ymin=-1,ymax=6]
+ \tkzClip % allows you to define a bounding box 
+   % large enough
+  \tkzDefPoint(0,0){A}\tkzDefPoint(4,0){B}
+  \tkzDefSquare(A,B) 
+  \tkzGetFirstPoint{C} 
+  \tkzDrawPolygon[fill=green!5](A,B,C)
+   \begin{scope}
+     \tkzClipCircle[out](B,A)
+     \tkzDrawSemiCircle[diameter,fill=teal!5](A,C)
+   \end{scope}
+   \tkzDrawArc[delta=0](B,C)(A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Lunes of Hasan Ibn al-Haytham}
+
+\begin{tikzpicture}
+\node [mybox,title={Lune of Hippocrates}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{From wikipedia : the Arab mathematician Hasan Ibn al-Haytham (Latinized name Alhazen) showed that two lunes, formed on the two sides of a right triangle, whose outer boundaries are semicircles and whose inner boundaries are formed by the circumcircle of the triangle, then the areas of these two lunes added together are equal to the area of the triangle. The lunes formed in this way from a right triangle are known as the lunes of Alhazen.
+}} 
+\end{minipage}};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5,rotate=180]
+  \tkzInit[xmin=-1,xmax=11,ymin=-4,ymax=7]
+  \tkzClip
+  \tkzDefPoints{0/0/A,8/0/B}
+  \tkzDefTriangle[pythagore](A,B) 
+  \tkzGetPoint{C}
+  \tkzDrawPolygon[fill=green!5](A,B,C)
+  \tkzDefMidPoint(C,A) \tkzGetPoint{I}
+  \begin{scope}
+    \tkzClipCircle[out](I,A)
+    \tkzDrawSemiCircle[diameter,fill=teal!5](B,A)
+    \tkzDrawSemiCircle[diameter,fill=teal!5](C,B)
+  \end{scope}
+  \tkzSetUpCompass[/tkzcompass/delta=0]
+  \tkzDrawSemiCircle[diameter](C,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{About clipping circles}\label{About clipping circles}
+\begin{tikzpicture}
+\node [mybox,title={About clipping circles}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{The problem is the management of the bounding box. First you have to define a rectangle in which the figure will be inserted. This is done with the first two lines.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzInit[xmin=0,xmax=6,ymin=0,ymax=6]
+  \tkzClip
+  \tkzDefPoints{0/0/A, 6/0/B}
+  \tkzDefSquare(A,B)      \tkzGetPoints{C}{D}
+  \tkzDefMidPoint(A,B)        \tkzGetPoint{M}
+  \tkzDefMidPoint(A,D)        \tkzGetPoint{N}
+  \tkzDefMidPoint(B,C)        \tkzGetPoint{O}
+  \tkzDefMidPoint(C,D)        \tkzGetPoint{P}
+ \begin{scope}
+  \tkzClipCircle[out](M,B) \tkzClipCircle[out](P,D)
+  \tkzFillPolygon[teal!20](M,N,P,O)
+ \end{scope}
+ \begin{scope}
+   \tkzClipCircle[out](N,A) \tkzClipCircle[out](O,C)
+   \tkzFillPolygon[teal!20](M,N,P,O)
+ \end{scope}
+ \begin{scope}
+   \tkzClipCircle(P,C) \tkzClipCircle(N,A)      
+   \tkzFillPolygon[teal!20](N,P,D)
+ \end{scope}
+ \begin{scope}
+     \tkzClipCircle(O,C) \tkzClipCircle(P,C) 
+     \tkzFillPolygon[teal!20](P,C,O)
+ \end{scope}
+ \begin{scope}
+     \tkzClipCircle(M,B)  \tkzClipCircle(O,B)
+     \tkzFillPolygon[teal!20](O,B,M)
+ \end{scope}
+ \begin{scope}
+     \tkzClipCircle(N,A) \tkzClipCircle(M,A)  
+     \tkzFillPolygon[teal!20](A,M,N)
+ \end{scope}
+ \tkzDrawSemiCircles(M,B N,A O,C P,D)
+ \tkzDrawPolygons(A,B,C,D M,N,P,O)
+ \end{tikzpicture}
+ \end{tkzexample}
+
+
+
+
+\newpage
+\subsection{Similar isosceles triangles}
+
+\begin{tikzpicture}
+\node [mybox,title={Similar isosceles triangles}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{The following is from the excellent site \textbf{Descartes et les Mathématiques}. I did not modify the text and I am only the author of the programming of the figures.
+\url{http://debart.pagesperso-orange.fr/seconde/triangle.html}
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+
+
+The following is from the excellent site \textbf{Descartes et les Mathématiques}. I did not modify the text and I am only the author of the programming of the figures.
+
+\url{http://debart.pagesperso-orange.fr/seconde/triangle.html}
+
+Bibliography:
+
+\begin{itemize}
+
+\item   Géométrie au Bac - Tangente, special issue no. 8 - Exercise 11, page 11
+
+
+\item   Elisabeth Busser and Gilles Cohen: 200 nouveaux problèmes du "Monde" - POLE 2007 (200 new problems of "Le Monde")
+
+
+\item   Affaire de logique n° 364 - Le Monde February 17, 2004
+\end{itemize}
+
+
+Two statements were proposed, one by the magazine \textit{Tangente} and the other by \textit{Le Monde}.
+
+\vspace*{2cm}
+\emph{Editor of the magazine "Tangente"}: \textcolor{orange}{Two similar isosceles triangles $AXB$ and $BYC$ are constructed with main vertices $X$ and $Y$, such that $A$, $B$ and $C$ are aligned and that these triangles are "indirect". Let $\alpha$ be the angle at vertex $\widehat{AXB}$ = $\widehat{BYC}$. We then construct a third isosceles triangle $XZY$ similar to the first two, with main vertex $Z$ and "indirect".
+We ask to demonstrate that point $Z$ belongs to the straight line $(AC)$.}
+
+\vspace*{2cm}
+\emph{Editor of  "Le Monde"}: \textcolor{orange}{We construct two similar isosceles triangles $AXB$ and $BYC$ with principal vertices $X$ and $Y$, such that $A$, $B$ and $C$ are aligned and that these triangles are "indirect". Let $\alpha$ be the angle at vertex $\widehat{AXB}$ = $\widehat{BYC}$. The point Z of the line segment $[AC]$ is equidistant from the two vertices $X$ and $Y$.\\
+At what angle does he see these two vertices?}
+
+\vspace*{2cm} The constructions and their associated codes are on the next two pages, but you can search before looking. The programming respects (it seems to me ...) my reasoning in both cases.
+
+ \subsection{Revised version of "Tangente"}
+\begin{tkzexample}[]
+\begin{tikzpicture}[scale=.8,rotate=60]
+  \tkzDefPoint(6,0){X}   \tkzDefPoint(3,3){Y}
+  \tkzDefShiftPoint[X](-110:6){A}    \tkzDefShiftPoint[X](-70:6){B}
+  \tkzDefShiftPoint[Y](-110:4.2){A'} \tkzDefShiftPoint[Y](-70:4.2){B'}
+  \tkzDefPointBy[translation= from A' to B ](Y) \tkzGetPoint{Y}
+  \tkzDefPointBy[translation= from A' to B ](B') \tkzGetPoint{C}
+  \tkzInterLL(A,B)(X,Y) \tkzGetPoint{O}
+  \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
+  \tkzDefPointWith[orthogonal](I,Y)
+  \tkzInterLL(I,tkzPointResult)(A,B) \tkzGetPoint{Z}
+  \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
+  \tkzDrawCircle(O,X)
+  \tkzDrawLines[add = 0 and 1.5](A,C) \tkzDrawLines[add = 0 and 3](X,Y)
+  \tkzDrawSegments(A,X B,X B,Y C,Y)   \tkzDrawSegments[color=red](X,Z Y,Z)
+  \tkzDrawPoints(A,B,C,X,Y,O,Z)
+  \tkzLabelPoints(A,B,C,Z)   \tkzLabelPoints[above right](X,Y,O)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{"Le Monde" version}
+
+\begin{tkzexample}[]
+\begin{tikzpicture}[scale=1.25]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(3,0){B}
+  \tkzDefPoint(9,0){C}
+  \tkzDefPoint(1.5,2){X}
+  \tkzDefPoint(6,4){Y}
+  \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
+  \tkzDefMidPoint(X,Y)               \tkzGetPoint{I}
+  \tkzDefPointWith[orthogonal](I,Y)  \tkzGetPoint{i}
+  \tkzDrawLines[add = 2 and 1,color=orange](I,i)
+  \tkzInterLL(I,i)(A,B)              \tkzGetPoint{Z}
+  \tkzInterLC(I,i)(O,B)              \tkzGetSecondPoint{M}
+  \tkzDefPointWith[orthogonal](B,Z)  \tkzGetPoint{b}
+  \tkzDrawCircle(O,B)
+  \tkzDrawLines[add = 0 and 2,color=orange](B,b)
+  \tkzDrawSegments(A,X B,X B,Y C,Y A,C X,Y)
+  \tkzDrawSegments[color=red](X,Z Y,Z)
+  \tkzDrawPoints(A,B,C,X,Y,Z,M,I)
+  \tkzLabelPoints(A,B,C,Z)
+  \tkzLabelPoints[above right](X,Y,M,I)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Triangle altitudes}
+
+\begin{tikzpicture}
+\node [mybox,title={Triangle altitudes}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{From Wikipedia : The following is again from the excellent site \textbf{Descartes et les Mathématiques} (Descartes and the Mathematics).
+\url{http://debart.pagesperso-orange.fr/geoplan/geometrie_triangle.html}.
+The three altitudes of a triangle intersect at the same H-point. 
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}
+   \tkzDefPoint(0,0){C} \tkzDefPoint(7,0){B}
+   \tkzDefPoint(5,6){A}
+   \tkzDefMidPoint(C,B) \tkzGetPoint{I}
+   \tkzInterLC(A,C)(I,B)
+   \tkzGetSecondPoint{B'}
+   \tkzInterLC(A,B)(I,B)
+   \tkzGetFirstPoint{C'}
+   \tkzInterLL(B,B')(C,C') \tkzGetPoint{H}
+   \tkzInterLL(A,H)(C,B) \tkzGetPoint{A'}
+   \tkzDefCircle[circum](A,B',C') \tkzGetPoint{O}
+   \tkzDrawArc(I,B)(C)
+   \tkzDrawPolygon(A,B,C)
+   \tkzDrawCircle[color=red](O,A)
+   \tkzDrawSegments[color=orange](B,B' C,C' A,A')
+   \tkzMarkRightAngles(C,B',B B,C',C C,A',A)
+   \tkzDrawPoints(A,B,C,A',B',C',H)
+   \tkzLabelPoints(A,B,C,A',B',C',H)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Altitudes - other construction}
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}
+\tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B} 
+\tkzDefPoint(5,6){C} 
+\tkzDefMidPoint(A,B)\tkzGetPoint{O} 
+\tkzDefPointBy[projection=onto A--B](C) \tkzGetPoint{P}
+\tkzInterLC(C,A)(O,A)
+\tkzGetSecondPoint{M}
+\tkzInterLC(C,B)(O,A)
+\tkzGetFirstPoint{N}
+\tkzInterLL(B,M)(A,N)\tkzGetPoint{I}
+\tkzDrawCircles[diameter](A,B I,C)
+\tkzDrawSegments(C,A C,B A,B B,M A,N)
+\tkzMarkRightAngles[fill=brown!20](A,M,B A,N,B A,P,C)
+\tkzDrawSegment[style=dashed,color=orange](C,P)
+\tkzLabelPoints(O,A,B,P)
+\tkzLabelPoint[left](M){$M$} 
+\tkzLabelPoint[right](N){$N$} 
+\tkzLabelPoint[above](C){$C$} 
+\tkzLabelPoint[above right](I){$I$} 
+\tkzDrawPoints[color=red](M,N,P,I) 
+\tkzDrawPoints[color=brown](O,A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\newpage
+\subsection{Three circles  in an Equilateral Triangle }
+\begin{tikzpicture}
+\node [mybox,title={Three circles  in an Equilateral Triangle}] (box){%
+\begin{minipage}{0.90\textwidth}
+  { \emph{From Wikipedia : In geometry, the Malfatti circles are three circles inside a given triangle such that each circle is tangent to the other two and to two sides of the triangle. They are named after Gian Francesco Malfatti, who made early studies of the problem of constructing these circles in the mistaken belief that they would have the largest possible total area of any three disjoint circles within the triangle. Below is a study of a particular case with an equilateral triangle and three identical circles. 
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.8]
+  \tkzDefPoints{0/0/A,8/0/B,0/4/a,8/4/b,8/8/c}
+  \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
+  \tkzDefMidPoint(A,B) \tkzGetPoint{M}
+  \tkzDefMidPoint(B,C) \tkzGetPoint{N}
+  \tkzDefMidPoint(A,C) \tkzGetPoint{P}
+  \tkzInterLL(A,N)(M,a) \tkzGetPoint{Ia}
+  \tkzDefPointBy[projection = onto A--B](Ia)
+  \tkzGetPoint{ha}
+  \tkzInterLL(B,P)(M,b) \tkzGetPoint{Ib}
+  \tkzDefPointBy[projection = onto A--B](Ib)
+  \tkzGetPoint{hb}
+  \tkzInterLL(A,c)(M,C) \tkzGetPoint{Ic}
+  \tkzDefPointBy[projection = onto A--C](Ic)
+  \tkzGetPoint{hc}
+  \tkzInterLL(A,Ia)(B,Ib) \tkzGetPoint{G}
+  \tkzDefSquare(A,B) \tkzGetPoints{D}{E}
+  \tkzDrawPolygon(A,B,C)
+  \tkzClipBB
+  \tkzDrawSemiCircles[gray,dashed](M,B A,M 
+  A,B B,A G,Ia)
+  \tkzDrawCircles[gray](Ia,ha Ib,hb Ic,hc)
+  \tkzDrawPolySeg(A,E,D,B)
+  \tkzDrawPoints(A,B,C,G,Ia,Ib,Ic)
+  \tkzDrawSegments[gray,dashed](C,M A,N B,P
+   M,a M,b A,a a,b b,B A,D Ia,ha)
+\end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{Law of sines}
+\begin{tikzpicture}
+\node [mybox,title={Law of sines}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {From wikipedia : \emph{In trigonometry, the law of sines, sine law, sine formula, or sine rule is an equation relating the lengths of the sides of a triangle (any shape) to the sines of its angles.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}
+  \tkzDefPoints{0/0/A,5/1/B,2/6/C}
+  \tkzDefTriangleCenter[circum](A,B,C)
+   \tkzGetPoint{O} 
+  \tkzDefPointBy[symmetry= center O](B) 
+   \tkzGetPoint{D} 
+  \tkzDrawPolygon[color=brown](A,B,C)
+  \tkzDrawCircle(O,A)
+  \tkzDrawPoints(A,B,C,D,O)
+  \tkzDrawSegments[dashed](B,D A,D)
+  \tkzLabelPoint[left](D){$D$}
+  \tkzLabelPoint[below](A){$A$}
+  \tkzLabelPoint[above](C){$C$}
+  \tkzLabelPoint[right](B){$B$}
+  \tkzLabelPoint[below](O){$O$}
+  \tkzLabelSegment(B,C){$a$}
+  \tkzLabelSegment[left](A,C){$b$}
+  \tkzLabelSegment(A,B){$c$}
+  \end{tikzpicture}
+\end{tkzexample}
+
+
+In the triangle $ABC$ 
+
+\begin{equation}
+\frac{a}{\sin A} = \frac{b}{\sin B} =\frac{c}{\sin C}
+\end{equation}
+
+\[\widehat{C} = \widehat{D}\] 
+\begin{equation}
+\frac{c}{2R} = \sin D = \sin C 
+\end{equation}
+
+Then \[ \frac{c}{\sin C} = 2R\]
+
+\newpage
+\subsection{Flower of Life}
+\begin{tikzpicture}
+\node [mybox,title={Book IV, proposition XI  \_Euclid's Elements\_}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{Sacred geometry can be described as a belief system attributing a religious or cultural value to many of the fundamental forms of space and time. According to this belief system, the basic patterns of existence are perceived as sacred because in contemplating them one is contemplating the origin of all things. By studying the nature of these forms and their relationship to each other, one may seek to gain insight into the scientific, philosophical, psychological, aesthetic and mystical laws of the universe.
+The Flower of Life is considered to be a symbol of sacred geometry, said to contain ancient, religious value depicting the fundamental forms of space and time. In this sense, it is a visual expression of the connections life weaves through all mankind, believed by some to contain a type of Akashic Record of basic information of all living things.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+One of the beautiful arrangements of circles found at the Temple of Osiris at Abydos, Egypt (Rawles 1997). \\
+Weisstein, Eric W. "Flower of Life." From MathWorld--A Wolfram Web Resource.\\ \url{http://mathworld.wolfram.com/FlowerofLife.html}
+ 
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[scale=.75]
+    \tkzSetUpLine[line width=2pt,color=teal!80!black]
+    \tkzSetUpCompass[line width=2pt,color=teal!80!black]
+     \tkzDefPoint(0,0){O}  \tkzDefPoint(2.25,0){A}
+     \tkzDrawCircle(O,A)
+  \foreach \i in {0,...,5}{
+     \tkzDefPointBy[rotation= center O angle 30+60*\i](A)\tkzGetPoint{a\i}
+     \tkzDefPointBy[rotation= center {a\i} angle  120](O)\tkzGetPoint{b\i}
+     \tkzDefPointBy[rotation= center {a\i} angle  180](O)\tkzGetPoint{c\i}
+     \tkzDefPointBy[rotation= center {c\i} angle  120](a\i)\tkzGetPoint{d\i}
+     \tkzDefPointBy[rotation= center {c\i} angle   60](d\i)\tkzGetPoint{f\i}
+     \tkzDefPointBy[rotation= center {d\i} angle   60](b\i)\tkzGetPoint{e\i} 
+     \tkzDefPointBy[rotation= center {f\i} angle   60](d\i)\tkzGetPoint{g\i} 
+     \tkzDefPointBy[rotation= center {d\i} angle   60](e\i)\tkzGetPoint{h\i}
+     \tkzDefPointBy[rotation= center {e\i} angle  180](b\i)\tkzGetPoint{k\i}   
+     \tkzDrawCircle(a\i,O)
+     \tkzDrawCircle(b\i,a\i)
+     \tkzDrawCircle(c\i,a\i)
+     \tkzDrawArc[rotate](f\i,d\i)(-120)
+     \tkzDrawArc[rotate](e\i,d\i)(180)
+     \tkzDrawArc[rotate](d\i,f\i)(180)
+     \tkzDrawArc[rotate](g\i,f\i)(60)
+     \tkzDrawArc[rotate](h\i,d\i)(60)
+     \tkzDrawArc[rotate](k\i,e\i)(60) 
+  }
+     \tkzClipCircle(O,f0)
+  \end{tikzpicture}
+\end{tkzexample}
+
+
+\newpage
+\subsection{Pentagon in a circle}
+\begin{tikzpicture}
+\node [mybox,title={Book IV, proposition XI  \_Euclid's Elements\_}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{To inscribe an equilateral and equiangular pentagon in a given circle.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tkzexample}[code only, small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){O} \tkzDefPoint(5,0){A}
+  \tkzDefPoint(0,5){B} \tkzDefPoint(-5,0){C} 
+  \tkzDefPoint(0,-5){D}
+  \tkzDefMidPoint(A,O)     \tkzGetPoint{I}
+  \tkzInterLC(I,B)(I,A)    \tkzGetPoints{F}{E}
+  \tkzInterCC(O,C)(B,E)    \tkzGetPoints{D3}{D2}
+  \tkzInterCC(O,C)(B,F)    \tkzGetPoints{D4}{D1}
+  \tkzDrawArc[angles](B,E)(180,360)
+  \tkzDrawArc[angles](B,F)(220,340)
+  \tkzDrawLine[add=.5 and .5](B,I)
+  \tkzDrawCircle(O,A)
+  \tkzDrawCircle[diameter](O,A)  
+  \tkzDrawSegments(B,D C,A) 
+  \tkzDrawPolygon[new](D,D1,D2,D3,D4)
+  \tkzDrawPoints(A,...,D,O)
+  \tkzDrawPoints[new](E,F,I,D1,D2,D4,D3)
+  \tkzLabelPoints(A,...,D,O)
+  \tkzLabelPoints[new](I,E,F,D1,D2,D4,D3)  
+ \end{tikzpicture}
+\end{tkzexample}
+
+\begin{tikzpicture}[scale=.75]
+   \tkzDefPoint(0,0){O} 
+   \tkzDefPoint(5,0){A}
+   \tkzDefPoint(0,5){B}
+   \tkzDefPoint(-5,0){C} 
+   \tkzDefPoint(0,-5){D}
+   \tkzDefMidPoint(A,O)     \tkzGetPoint{I}
+   \tkzInterLC(I,B)(I,A)    \tkzGetPoints{F}{E}
+   \tkzInterCC(O,C)(B,E)    \tkzGetPoints{D3}{D2}
+   \tkzInterCC(O,C)(B,F)    \tkzGetPoints{D4}{D1}
+   \tkzDrawArc[angles](B,E)(180,360)
+   \tkzDrawArc[angles](B,F)(220,340)
+   \tkzDrawLine[add=.5 and .5](B,I)
+   \tkzDrawCircle(O,A)
+   \tkzDrawCircle[diameter](O,A)  
+   \tkzDrawSegments(B,D C,A) 
+   \tkzDrawPolygon[new](D,D1,D2,D3,D4)
+   \tkzDrawPoints(A,...,D,O)
+   \tkzDrawPoints[new](E,F,I,D1,D2,D4,D3)
+   \tkzLabelPoints(A,...,D,O)
+   \tkzLabelPoints[new](I,E,F,D1,D2,D4,D3)  
+\end{tikzpicture}
+ 
+ \newpage
+ \subsection{Pentagon in a square}
+ \begin{tikzpicture}
+ \node [mybox,title={Pentagon in a square}] (box){%
+ \begin{minipage}{0.90\textwidth}
+   {: \emph{To inscribe an equilateral and equiangular pentagon in a given square.
+ }} 
+ \end{minipage}
+ };
+ \end{tikzpicture}%
+    
+\begin{tkzexample}[code only, small]
+  \begin{tikzpicture}
+  \tkzDefPoint(-5,-5){A} \tkzDefPoint(0,0){O}  
+  \tkzDefPoint(+5,-5){B} \tkzDefPoint(0,-5){F}    
+  \tkzDefPoint(+5,0){F'} \tkzDefPoint(0,+5){E} \tkzDefPoint(-5,0){K}
+  \tkzDefSquare(A,B)                       \tkzGetPoints{C}{D}
+  \tkzInterLC(D,C)(E,B)                    \tkzGetSecondPoint{T}
+  \tkzDefMidPoint(D,T)                     \tkzGetPoint{I}
+  \tkzInterCC[with nodes](O,D,I)(E,D,I)    \tkzGetSecondPoint{H}
+  \tkzInterLC(O,H)(O,E)                    \tkzGetSecondPoint{M}
+  \tkzInterCC(O,E)(E,M)                    \tkzGetFirstPoint{Q}
+  \tkzInterCC[with nodes](O,O,E)(Q,E,M)    \tkzGetFirstPoint{P}
+  \tkzInterCC[with nodes](O,O,E)(P,E,M)    \tkzGetFirstPoint{N}
+  \tkzCompass(O,H)
+  \tkzCompass(E,H)
+  \tkzDrawArc(E,B)(T)
+  \tkzDrawPolygon(A,B,C,D)
+  \tkzDrawCircle(O,E)
+  \tkzDrawSegments[new](T,I O,H E,H E,F F',K)
+  \tkzDrawPoints(T,M,Q,P,N,I)
+  \tkzDrawPolygon[new](M,E,Q,P,N)
+  \tkzLabelPoints(A,B,O,N,P,Q,M,H)
+  \tkzLabelPoints[above right](C,D,E,I,T)
+\end{tikzpicture} 
+\end{tkzexample} 
+
+  \begin{tikzpicture}[scale=.5]
+  \tkzDefPoint(-5,-5){A} 
+  \tkzDefPoint(0,0){O}  
+  \tkzDefPoint(+5,-5){B} 
+  \tkzDefPoint(0,-5){F}    
+  \tkzDefPoint(+5,0){F'}
+  \tkzDefPoint(0,+5){E} 
+  \tkzDefPoint(-5,0){K}
+  \tkzDefSquare(A,B)                       \tkzGetPoints{C}{D}
+  \tkzInterLC(D,C)(E,B)                    \tkzGetSecondPoint{T}
+  \tkzDefMidPoint(D,T)                     \tkzGetPoint{I}
+  \tkzInterCC[with nodes](O,D,I)(E,D,I)    \tkzGetSecondPoint{H}
+  \tkzInterLC(O,H)(O,E)                    \tkzGetSecondPoint{M}
+  \tkzInterCC(O,E)(E,M)                    \tkzGetFirstPoint{Q}
+  \tkzInterCC[with nodes](O,O,E)(Q,E,M)    \tkzGetFirstPoint{P}
+  \tkzInterCC[with nodes](O,O,E)(P,E,M)    \tkzGetFirstPoint{N}
+  \tkzCompass(O,H)
+  \tkzCompass(E,H)
+  \tkzDrawArc(E,B)(T)
+  \tkzDrawPolygon(A,B,C,D)
+  \tkzDrawCircle(O,E)
+  \tkzDrawSegments(T,I O,H E,H)
+  \tkzDrawSegments(E,F F',K)
+  \tkzDrawPoints(T,M,Q,P,N,I)
+  \tkzDrawPolygon[color=purple](M,E,Q,P,N)
+  \tkzLabelPoints(A,B,O,N,P,Q,M,H)
+  \tkzLabelPoints[above right](C,D,E,I,T)
+\end{tikzpicture} 
+
+\newpage
+ \subsection{Hexagon Inscribed}
+ \begin{tikzpicture}
+ \node [mybox,title={Hexagon Inscribed}] (box){%
+ \begin{minipage}{0.90\textwidth}
+   {\emph{To inscribe a regular hexagon in a given equilateral triangle  perfectly inside it (no boarders).
+ }} 
+ \end{minipage}
+ };
+ \end{tikzpicture}%
+ 
+ 
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[scale=.5]
+   \pgfmathsetmacro{\c}{6} 
+   \tkzDefPoints{0/0/A,\c/0/B}
+   \tkzDefTriangle[equilateral](A,B)\tkzGetPoint{C}
+   \tkzDefTriangleCenter[centroid](A,B,C) 
+   \tkzGetPoint{I}
+   \tkzDefPointBy[homothety=center A ratio 1./3](B) 
+   \tkzGetPoint{c1}
+   \tkzInterLC(B,C)(I,c1) \tkzGetPoints{a1}{a2}
+   \tkzInterLC(A,C)(I,c1) \tkzGetPoints{b1}{b2}
+   \tkzInterLC(A,B)(I,c1) \tkzGetPoints{c1}{c2}
+   \tkzDrawPolygon(A,B,C)
+   \tkzDrawCircle[thin,orange](I,c1)
+   \tkzDrawPolygon[red,thick](a2,a1,b2,b1,c2,c1)
+ \end{tikzpicture} 
+\end{tkzexample}
+
+Another solution
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+ \pgfmathsetmacro{\c}{6} 
+ \tkzDefPoints{0/0/A,\c/0/B}
+ \tkzDefTriangle[equilateral](A,B)\tkzGetPoint{C}
+ \tkzDefTriangleCenter[centroid](A,B,C) 
+ \tkzGetPoint{I}
+ \tkzDefPointsBy[rotation= center I%
+                 angle 60](A,B,C){a,b,c}
+ \tkzDrawPolygon[fill=teal!20,opacity=.5](A,B,C)
+ \tkzDrawPolygon[fill=purple!20,opacity=.5](a,b,c)
+\end{tikzpicture} 
+\end{tkzexample}
+
+\newpage
+\subsection{Power of a point with respect to a circle}
+
+\begin{tikzpicture}
+\node [mybox,title={Power of a point with respect to a circle}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{$\overline{MA} \times \overline{MB}={MT}^2={MO}^2-{OT}^2$} } 
+\end{minipage}
+};
+\end{tikzpicture}% 
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}
+ \pgfmathsetmacro{\r}{2}%
+ \pgfmathsetmacro{\xO}{6}%
+ \pgfmathsetmacro{\xE}{\xO-\r}%
+ \tkzDefPoints{0/0/M,\xO/0/O,\xE/0/E}
+ \tkzDefCircle[diameter](M,O)
+ \tkzGetPoint{I}
+ \tkzInterCC(I,O)(O,E) \tkzGetPoints{T}{T'}
+ \tkzDefShiftPoint[O](45:2){B}
+ \tkzInterLC(M,B)(O,E) \tkzGetPoints{A}{B}
+ \tkzDrawCircle(O,E)
+ \tkzDrawSemiCircle[dashed](I,O)
+ \tkzDrawLine(M,O)
+ \tkzDrawLines(M,T O,T M,B)
+ \tkzDrawPoints(A,B,T)
+ \tkzLabelPoints[above](A,B,O,M,T)
+\end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{Radical axis of two non-concentric circles}
+\begin{tikzpicture}
+\node [mybox,title={Radical axis of two non-concentric circles}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {From Wikipedia : \emph{In geometry, the radical axis of two non-concentric circles is the set of points whose power with respect to the circles are equal. For this reason the radical axis is also called the power line or power bisector of the two circles.  The notation radical axis was used by the French mathematician M. Chasles as axe radical.
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,4/2/B,2/3/K}
+\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,2)
+\tkzDrawCircle[R,dashed,new](K,3)
+\tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
+\tkzInterCC[R](B,2)(K,3) \tkzGetPoints{b}{b'}
+\tkzDrawLines[new,add=2 and 2](a,a')
+\tkzDrawLines[new,add=1 and 1](b,b')
+\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
+\tkzDrawPoints(A,B,H,X,a,b,a',b')
+\tkzDrawLine(A,B)
+\tkzDrawLine[add= 1 and 2,new](X,H)
+\tkzLabelPoints(A,B,H,X,a,b,a',b')
+\end{tikzpicture}
+
+\begin{tkzexample}[code only,small]
+  \begin{tikzpicture}
+  \tkzDefPoints{0/0/A,4/2/B,2/3/K}
+  \tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
+  \tkzInterCC[R](B,2)(K,3) \tkzGetPoints{b}{b'}
+  \tkzDrawLines[color=red,add=2 and 2](a,a')
+  \tkzDrawLines[color=red,add=1 and 1](b,b')
+  \tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+  \tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
+  \tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,2)
+  \tkzDrawCircle[R,dashed,orange](K,3)
+  \tkzDrawPoints(A,B,H,X,a,b,a',b')
+  \tkzDrawLine(A,B)
+  \tkzDrawLine[add= 1 and 2](X,H)
+  \tkzLabelPoints(A,B,H,X,a,b,a',b')
+  \end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{External homothetic center}
+\begin{tikzpicture}
+\node [mybox,title={External homothetic center}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {From Wikipedia : \emph{ Given two nonconcentric circles, draw radii parallel and in the same direction. Then the line joining the extremities of the radii passes through a fixed point on the line of centers which divides that line externally in the ratio of radii. This point is called the external homothetic center, or external center of similitude (Johnson 1929, pp. 19-20 and 41).
+}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,4/2/B,2/3/K}
+\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,2)
+\tkzDrawLine(A,B)
+\tkzDefShiftPoint[A](60:1){M}
+\tkzDefShiftPoint[B](60:2){M'}
+\tkzInterLL(A,B)(M,M') \tkzGetPoint{O}
+\tkzDefTangent[from = O](B,M') \tkzGetPoints{X}{T'}
+\tkzDefTangent[from = O](A,M) \tkzGetPoints{X}{T}
+\tkzDrawPoints(A,B,O,T,T',M,M')
+\tkzDrawLines[new](O,B O,T' O,M')
+\tkzDrawSegments[new](A,M B,M')
+\tkzLabelPoints(A,B,O,T,T',M,M')
+\end{tikzpicture}
+
+
+\begin{tkzexample}[code only,small]
+  \begin{tikzpicture}
+  \tkzDefPoints{0/0/A,4/2/B,2/3/K}
+  \tkzDefShiftPoint[A](60:1){M}
+  \tkzDefShiftPoint[B](60:2){M'}
+  \tkzInterLL(A,B)(M,M') \tkzGetPoint{O}
+  \tkzDefTangent[from = O](B,M') \tkzGetPoints{X}{T'}
+  \tkzDefTangent[from = O](A,M) \tkzGetPoints{X}{T}
+  \tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,2)
+  \tkzDrawLine(A,B)
+  \tkzDrawPoints(A,B,O,T,T',M,M')
+  \tkzDrawLines[new](O,B O,T' O,M')
+  \tkzDrawSegments[new](A,M B,M')
+  \tkzLabelPoints(A,B,O,T,T',M,M')
+  \end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{Tangent lines to two circles}
+
+\begin{tikzpicture}
+\node [mybox,title={Tangent lines to two circles}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{For two circles, there are generally four distinct lines that are tangent to both  if the two circles are outside each other.  For two of these, the external tangent lines, the circles fall on the same side of the line; the external tangent lines intersect in the external homothetic center}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+\begin{tikzpicture}
+ \pgfmathsetmacro{\r}{1}%
+ \pgfmathsetmacro{\R}{2}%
+ \pgfmathsetmacro{\rt}{\R-\r}%
+ \tkzDefPoints{0/0/A,4/2/B,2/3/K}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+ \tkzInterLC[R](A,B)(B,\rt) \tkzGetPoints{E}{F}
+ \tkzInterCC(I,B)(B,F) \tkzGetPoints{a}{a'}
+ \tkzInterLC[R](B,a)(B,\R) \tkzGetPoints{X'}{T'}
+ \tkzDefTangent[at=T'](B) \tkzGetPoint{h}
+ \tkzInterLL(T',h)(A,B) \tkzGetPoint{O}
+ \tkzInterLC[R](O,T')(A,\r) \tkzGetPoints{T}{T}
+ \tkzDrawCircle[R](A,\r)          \tkzDrawCircle[R](B,\R)
+ \tkzDrawCircle[R,orange](B,\rt)  \tkzDrawCircle[orange,dashed](I,B)
+ \tkzDrawPoints(O,A,B,a,a',E,F,T',T)
+ \tkzDrawLines(O,B A,a B,T' A,T)
+ \tkzDrawLines[add= 1 and 8](T',h)
+ \tkzLabelPoints(O,A,B,a,a',E,F,T,T')
+\end{tikzpicture}
+
+\begin{tkzexample}[code only,small]
+  \begin{tikzpicture}
+ \pgfmathsetmacro{\r}{1}%
+ \pgfmathsetmacro{\R}{2}%
+ \pgfmathsetmacro{\rt}{\R-\r}%
+ \tkzDefPoints{0/0/A,4/2/B,2/3/K}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{I}
+ \tkzInterLC[R](A,B)(B,\rt) \tkzGetPoints{E}{F}
+ \tkzInterCC(I,B)(B,F) \tkzGetPoints{a}{a'}
+ \tkzInterLC[R](B,a)(B,\R) \tkzGetPoints{X'}{T'}
+ \tkzDefTangent[at=T'](B) \tkzGetPoint{h}
+ \tkzInterLL(T',h)(A,B) \tkzGetPoint{O}
+ \tkzInterLC[R](O,T')(A,\r) \tkzGetPoints{T}{T}
+ \tkzDrawCircle[R](A,\r)          \tkzDrawCircle[R](B,\R)
+ \tkzDrawCircle[R,orange](B,\rt)  \tkzDrawCircle[orange,dashed](I,B)
+ \tkzDrawPoints(O,A,B,a,a',E,F,T',T)
+ \tkzDrawLines(O,B A,a B,T' A,T)
+ \tkzDrawLines[add= 1 and 8](T',h)
+ \tkzLabelPoints(O,A,B,a,a',E,F,T,T')
+  \end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{Tangent lines to two circles with radical axis}
+
+\begin{tikzpicture}
+\node [mybox,title={Tangent lines to two circles with radical axis}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{As soon as two circles are not concentric, we can construct their radical axis, the set of points of equal power with respect to the two circles. We know that the radical axis is a line orthogonal to the line of the centers. Note that if we specify $P$ and $Q$ as the points of contact of one of the common exterior tangents with the two circles and $D$ and $E$ as the points of the circles outside [AB], then (DP) and (EQ) intersect on the radical axis of the two circles. We will show that this property is always true and that it allows us to construct common tangents, even when the circles have the same radius. }}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,4/2/B,2/3/K}
+\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3)
+\tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
+\tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'}
+\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
+\tkzGetPoint{C}
+\tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E}
+\tkzInterLC[R](A,B)(A,1) \tkzGetPoints{D}{a2}
+\tkzDefMidPoint(D,E) \tkzGetPoint{I}
+\tkzDrawCircle[orange](I,D)
+\tkzInterLC(X,H)(I,D) \tkzGetPoints{M'}{M}
+\tkzInterLC(M,D)(A,D) \tkzGetPoints{P'}{P}
+\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'}
+\tkzInterLL(P,Q)(A,B) \tkzGetPoint{O}
+\tkzDrawSegments[orange](A,P I,M B,Q)
+\tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H)
+\tkzDrawLines(O,E M,D M,E O,Q)
+\tkzDrawLine[add= 3 and 4,orange](X,H)
+\tkzLabelPoints(A,B,D,E,M,I,O,P,Q,X,H)
+\end{tikzpicture}
+
+\begin{tkzexample}[code only,small]
+  \begin{tikzpicture}
+  \tkzDefPoints{0/0/A,4/2/B,2/3/K}
+  \tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3)
+  \tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
+  \tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'}
+  \tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+  \tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
+  \tkzGetPoint{C}
+  \tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E}
+  \tkzInterLC[R](A,B)(A,1) \tkzGetPoints{D}{a2}
+  \tkzDefMidPoint(D,E) \tkzGetPoint{I}
+  \tkzDrawCircle[orange](I,D)
+  \tkzInterLC(X,H)(I,D) \tkzGetPoints{M'}{M}
+  \tkzInterLC(M,D)(A,D) \tkzGetPoints{P'}{P}
+  \tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'}
+  \tkzInterLL(P,Q)(A,B) \tkzGetPoint{O}
+  \tkzDrawSegments[orange](A,P I,M B,Q)
+  \tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H)
+  \tkzDrawLines(O,E M,D M,E O,Q)
+  \tkzDrawLine[add= 3 and 4,orange](X,H)
+  \tkzLabelPoints(A,B,D,E,M,I,O,P,Q,X,H)
+  \end{tikzpicture}
+\end{tkzexample}
+
+ 
+\newpage
+
+\subsection{Definition of a circle  \_Apollonius\_}
+
+\begin{tikzpicture}
+\node [mybox,title={Definition of a circle  \_Apollonius\_}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {From Wikipedia : \emph{Apollonius showed that a circle can be defined as the set of points in a plane that have a specified ratio of distances to two fixed points, known as foci. This Apollonian circle is the basis of the Apollonius pursuit problem. ... The solutions to this problem are sometimes called the circles of Apollonius.}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+Explanation
+
+A circle is the set of points in a plane that are equidistant from a given point O. The distance r from the center is called the radius, and the point O is called the center. It is the simplest definition but it is not the only one. Apollonius of Perga gives another definition :
+The set of all points whose distances from two fixed points are in a constant ratio is a circle.
+
+With \pkg{tkz-euclide} is easy to show you the last definition
+
+\subsubsection*{The code and the analyse}
+
+\begin{tkzexample}[code only, small]
+\documentclass{standalone} 
+    % Excellent class to show the result and to verify the bounding box.
+\usepackage{tkz-euclide}
+    % no need to use \usetkzobj !
+\begin{document} 
+\begin{tikzpicture}[scale=1.5]
+    % Firstly we defined two fixed point. 
+    % The figure depends of these points and the ratio K
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(4,0){B}
+    % tkz-euclide.sty knows about the apollonius's circle
+    % with K=2 we search some points like  I such as IA=2 x IB
+\tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1}
+\tkzGetLength{rAp}
+\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp]
+\tkzGetPoint{I}
+\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp]
+\tkzGetPoint{J}
+\tkzDrawSegments[new](A,I I,B A,J J,B)  
+\tkzDrawCircle[R,color = teal,fill=MidnightBlue!20,opacity=.4](K1,\rAp pt)
+\tkzDrawPoints(A,B,K1,I,J)
+\tkzDrawSegment(A,B)
+\tkzLabelPoints[below,font=\scriptsize](A,B,K1,I,J)
+\end{tikzpicture}
+\end{document}
+\end{tkzexample}
+
+\subsubsection*{The result}
+
+\begin{tikzpicture}[scale=1.5]
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(4,0){B}
+\tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1}
+\tkzGetLength{rAp}
+\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp]
+\tkzGetPoint{I}
+\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp]
+\tkzGetPoint{J}
+\tkzDrawSegments[new](A,I I,B A,J J,B) 
+\tkzDrawCircle[R,fill=teal!20,opacity=.4](K1,\rAp pt)
+\tkzDrawPoints(A,B,K1,I,J)
+\tkzDrawSegment(A,B)
+\tkzLabelPoints[below,font=\scriptsize](A,B,K1,I,J)
+\end{tikzpicture}
+
+\subsection{Application of Inversion : \tkzname{Pappus chain} }\label{pappus}
+\begin{tikzpicture}
+\node [mybox,title={Pappus chain}] (box){%
+\begin{minipage}{0.90\textwidth}
+From Wikipedia  {\emph{In geometry, the Pappus chain is a ring of circles between two tangent circles investigated by Pappus of Alexandria in the 3rd century AD.}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+
+\begin{tkzexample}[vbox,small]
+  \pgfmathsetmacro{\xB}{6}%
+  \pgfmathsetmacro{\xC}{9}%
+  \pgfmathsetmacro{\xD}{(\xC*\xC)/\xB}%
+  \pgfmathsetmacro{\xJ}{(\xC+\xD)/2}%
+  \pgfmathsetmacro{\r}{\xD-\xJ}%
+  \pgfmathsetmacro{\nc}{16}%
+\begin{tikzpicture}[ultra thin]
+  \tkzDefPoints{0/0/A,\xB/0/B,\xC/0/C,\xD/0/D}
+  \tkzDrawCircle[diameter,fill=teal!20](A,C)
+  \tkzDrawCircle[diameter,fill=teal!30](A,B)
+  \foreach \i in {-\nc,...,0,...,\nc}
+  {\tkzDefPoint(\xJ,2*\r*\i){J}
+   \tkzDefPoint(\xJ,2*\r*\i-\r){H}
+   \tkzDefCircleBy[inversion = center A through C](J,H)
+   \tkzDrawCircle[diameter,fill=teal](tkzFirstPointResult,tkzSecondPointResult)}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Book of lemmas proposition 1 Archimedes}
+\begin{tikzpicture}
+\node [mybox,title={Book of lemmas proposition 1 Archimedes}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{If two circles touch at $A$, and if $[CD]$, $[EF]$ be parallel diameters in them, $A$, $C$ and $E$ are aligned.}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/O_1,0/1/O_2,0/3/A}
+  \tkzDefPoint(15:3){F}
+  \tkzInterLC(F,O_1)(O_1,A) \tkzGetSecondPoint{E}
+  \tkzDefLine[parallel=through O_2](E,F) 
+  \tkzGetPoint{x}   
+  \tkzInterLC(x,O_2)(O_2,A) \tkzGetPoints{D}{C} 
+  \tkzDrawCircles(O_1,A O_2,A)
+  \tkzDrawSegments[new](O_1,A E,F C,D)
+  \tkzDrawSegments[purple](A,E A,F)
+  \tkzDrawPoints(A,O_1,O_2,E,F,C,D)
+  \tkzLabelPoints(A,O_1,O_2,E,F,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+$(CD) \parallel (EF)$ $(AO_1)$ is secant to these two lines so
+$\widehat{A0_2C} = \widehat{A0_1E}$.
+
+Since the triangles $AO_2C$ and $AO_1E$ are isosceles the angles at the base are equal $widehat{AC0_2} = \widehat{AE0_1} = \widehat{CA0_2} = \widehat{EA0_1}$. Thus $A$,$C$ and $E$ are aligned
+
+\subsection{Book of lemmas proposition 6 Archimedes}
+\begin{tikzpicture}
+\node [mybox,title={Book of lemmas proposition 6 Archimedes}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{Let $AC$, the diameter of a semicircle, be divided at $B$ so that $AC/AB =\phi$ or in any ratio]. Describe semicircles within the first semicircle and on $AB$, $BC$ as diameters, and suppose a circle drawn touching the all three semicircles. If $GH$ be the diameter of this circle, to find relation between $GH$ and $AC$.}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,12/0/C}
+  \tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
+  \tkzDefMidPoint(A,C)                     \tkzGetPoint{O}
+  \tkzDefMidPoint(A,B)                     \tkzGetPoint{O_1}
+  \tkzDefMidPoint(B,C)                     \tkzGetPoint{O_2}
+  \tkzDefExtSimilitudeCenter(O_1,A)(O_2,B) \tkzGetPoint{M_0}
+  \tkzDefIntSimilitudeCenter(O,A)(O_1,A)   \tkzGetPoint{M_1}
+  \tkzDefIntSimilitudeCenter(O,C)(O_2,C)   \tkzGetPoint{M_2}
+  \tkzInterCC(O_1,A)(M_2,C)                \tkzGetFirstPoint{E}
+  \tkzInterCC(O_2,C)(M_1,A)                \tkzGetSecondPoint{F}
+  \tkzInterCC(O,A)(M_0,B)                  \tkzGetFirstPoint{D}
+  \tkzInterLL(O_1,E)(O_2,F)                \tkzGetPoint{O_3}
+  \tkzDefCircle[circum](E,F,B)             \tkzGetPoint{0_4}
+  \tkzInterLC(A,D)(O_1,A)                  \tkzGetSecondPoint{I}
+  \tkzInterLC(C,D)(O_2,B)                  \tkzGetFirstPoint{K}
+  \tkzInterLC(A,D)(O_3,D)                  \tkzGetFirstPoint{G}
+  \tkzInterLC(C,D)(O_3,D)                  \tkzGetSecondPoint{H}
+  \tkzInterLL(C,G)(B,K)                    \tkzGetPoint{M}
+  \tkzInterLL(A,H)(B,I)                    \tkzGetPoint{L}
+  \tkzInterLL(L,G)(A,C)                    \tkzGetPoint{N}
+  \tkzInterLL(M,H)(A,C)                    \tkzGetPoint{P}  
+  \tkzDrawCircles[red,thin](O_3,F)
+  \tkzDrawCircles[new,thin](0_4,B)
+  \tkzDrawSemiCircles[teal](O,C O_1,B O_2,C)
+  \tkzDrawSemiCircles[green](M_2,C)
+  \tkzDrawSemiCircles[green,swap](M_1,A)
+  \tkzDrawSegment(A,C)
+  \tkzDrawSegments[new](O_1,O_3 O_2,O_3)
+  \tkzDrawSegments[new,very thin](B,D A,D C,D G,H I,B K,B B,G B,H C,G A,H G,N H,P)
+  \tkzDrawPoints(A,B,C,M_1,M_2,E,O_3,F,D,0_4,O_1,O_2,I,K,G,H,L,P,N,M)  
+  \tkzLabelPoints[font=\scriptsize](A,B,C,M_1,M_2,F,O_1,O_2,I,K,G,H,L,M,N)
+  \tkzLabelPoints[font=\scriptsize,right](E,O_3,D,0_4,P)
+\end{tikzpicture}
+
+
+Let $GH$ be the diameter of the circle which is parallel to $AC$, and let the circle touch the semicircles on $AC$, $AB$, $BC$ in $D$, $E$, $F$ respectively.
+
+Then, by Prop. 1 $A$,$G$ and $D$ are aligned, ainsi que $D$, $H$ and $C$.\\
+ For a like reason $A$ $E$ and $H$ are aligned, $C$ $F$ and $G$are aligned, as also are $B$ $E$ and $G$, $B$ $F$ and $H$.
+ 
+Let $(AD)$ meet the semicircle on $[AC]$ at $I$, and let $(BD)$ meet the semicircle on $[BC]$ in $K$. Join CI, CK meeting AE, BF in L, M, and let GL, HM produced meet AB in N, P respectively.
+
+Now, in the triangle $AGB$, the perpendiculars from $A$, $C$ on the opposite sides meet in $L$. Therefore by the properties of triangles, $(GN)$ is perpendicular to $(AC)$.
+Similarly $(HP)$ is perpendicular to $(BC)$.\\
+Again, since the angles at $I$, $K$, $D$ are right, $(CK)$ is parallel to $(AD)$, and $(CI)$ to $(BD)$.
+
+ Therefore\\
+\[\frac{AB}{BC} = \frac{AL}{LH}    =  \frac{AN}{NP}  \quad\text{and} \quad \frac{BC}{AB} = \frac{CM}{MG}    =  \frac{PC}{NP} \]
+
+hence
+
+\[ \frac{AN}{NP}    =  \frac{NP}{PC} \quad\text{so} \quad {NP}^2 = AN \times PC  \]
+
+Now suppose that $B$ divides $[AC]$ according to the divine proportion that is :
+\[\phi = \frac{AB}{BC} =  \frac{AC}{AB} \quad\text{then}  \quad AN = \phi NP \text{and}  NP = \phi PC \]
+
+We have 
+\[ AC = AN + NP + PC\quad \text{either} \quad AB + BC = = AN + NP + PC \quad \text{or} \quad (\phi + 1) BC = AN + NP + PC \]
+
+we get 
+
+\[ (\phi + 1) BC = \phi NP + NP + PC =(\phi + 1)NP + PC = \phi(\phi + 1)PC + PC = {\phi}^2 + \phi + 1)PC \]
+
+as 
+\[ {\phi}^2 = \phi + 1 \quad \text{then} \quad (\phi + 1) BC = 2(\phi + 1) PC \quad\text{i.e.}\quad BC = 2 PC \]
+
+That is,
+$p$ is the middle of the segment $BC$.
+
+Part of the proof from \url{https://www.cut-the-knot.org}
+
+
+\subsection{ "The" Circle of APOLLONIUS}
+
+\begin{tikzpicture}
+\node [mybox,title={The Apollonius circle of a triangle  \_Apollonius\_}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{The circle which touches all three excircles of a triangle and encompasses them is often known as "the" Apollonius circle (Kimberling 1998, p. 102)}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+Explanation
+
+The purpose of the first  examples was to show the simplicity with which we could recreate these propositions. With TikZ you need to do calculations and use trigonometry while with \pkg{tkz-euclide} you only need to build simple objects
+
+But don't forget that behind or far above \pkg{tkz-euclide} there is TikZ. I'm only creating an interface between TikZ and the user of my package.
+
+The last example is very complex and it is to show you all that we can do with \pkg{tkz-euclide}.
+
+\subsubsection*{The code and the analyse}
+
+\begin{tkzexample}[code only,small]
+% !TEX TS-program = lualatex
+\documentclass{standalone}
+\usepackage{tkz-euclide}
+\begin{document}
+
+\begin{tikzpicture}[scale=1]
+\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+% we need some special points if the triangle,  tkz-euclide.sty knows about them
+
+\tkzDefTriangleCenter[euler](A,B,C)    \tkzGetPoint{N} % or   \tkzEulerCenter(A,B,C)
+\tkzDefTriangleCenter[circum](A,B,C)   \tkzGetPoint{O} %    \tkzCircumCenter(A,B,C)
+\tkzDefTriangleCenter[lemoine](A,B,C)  \tkzGetPoint{K}
+\tkzDefTriangleCenter[ortho](A,B,C)    \tkzGetPoint{H}
+
+ % \tkzDefSpcTriangle new macro to define new triangle in relation wth ABC
+\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
+\tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
+\tkzDefCircle[in](Ma,Mb,Mc)             \tkzGetPoint{Sp} % Sp Spieker center
+
+% here I used the definition but tkz-euclide knows this point
+% \tkzDefTriangleCenter[spieker](A,B,C)    \tkzGetPoint{Sp}
+% each center has three projections on the sides of the triangle ABC
+% We can do this with one macro
+\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){Y,Z,X}
+
+% but possible is
+% \tkzDefPointBy[projection=onto A--C ](Ja)  \tkzGetPoint{Za}
+\tkzDefLine[parallel=through Za](A,B)      \tkzGetPoint{Xc}
+\tkzInterLL(Za,Xc)(C,B)                    \tkzGetPoint{C'}
+\tkzDefLine[parallel=through Zc](B,C)      \tkzGetPoint{Ya}
+\tkzInterLL(Zc,Ya)(A,B)                    \tkzGetPoint{A'}
+\tkzDefPointBy[reflection= over Ja--Jc](C')\tkzGetPoint{Ab}
+\tkzDefPointBy[reflection= over Ja--Jc](A')\tkzGetPoint{Cb}
+
+% Now we can get the center of THE CIRCLE : Q
+% BUT we need to find the radius or a point on the circle
+\tkzInterLL(K,O)(N,Sp)                     \tkzGetPoint{Q}
+\tkzInterLC(A,B)(Q,Cb)                     \tkzGetSecondPoint{Ba}
+\tkzInterLC(A,C)(Q,Cb)                     \tkzGetPoints{Ca}{Ac}
+\tkzInterLC(B,C')(Q,Cb)                    \tkzGetSecondPoint{Bc}
+\tkzInterLC(Q,Ja)(Q,Cb)                    \tkzGetSecondPoint{F'a}
+\tkzInterLC(Q,Jc)(Q,Cb)                    \tkzGetSecondPoint{F'c}
+\tkzInterLC(Q,Jb)(Q,Cb)                    \tkzGetSecondPoint{F'b}
+\tkzInterLC(Sp,F'a)(Ja,Za)                 \tkzGetFirstPoint{Fa}
+\tkzInterLC(Sp,F'b)(Jb,Yb)                 \tkzGetFirstPoint{Fb}
+\tkzInterLC(Sp,F'c)(Jc,Yc)                 \tkzGetSecondPoint{Fc}
+\tkzInterLC(Mc,Sp)(Q,Cb)                   \tkzGetSecondPoint{A''}
+\tkzDefLine[parallel=through A''](N,Mc)    \tkzGetPoint{q}
+
+% Calculations are done, now you can draw, mark and label
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircle(Q,Bc)%
+\tkzDrawCircle[euler,lightgray](A,B,C)
+\tkzDrawCircles[ex](A,B,C B,C,A C,A,B)
+\tkzDrawSegments[dashed](A,A'  C,C' A',Zc Za,C' B,Cb B,Ab A,Ca C,Ac
+                        Ja,Xa Jb,Yb Jc,Zc)
+\begin{scope}
+   \tkzClipCircle(Q,Cb) % We limit the drawing of the lines
+   \tkzDrawLine[add=5 and 12,orange](K,O)
+   \tkzDrawLine[add=12 and 28,red!50!black](N,Sp)
+\end{scope}
+\tkzDrawPoints(A,B,C,K,Ja,Jb,Jc,Q,N,O,Sp,Mc,Xa,Xb,Yb,Yc,Za,Zc)
+\tkzDrawPoints(A',C',A'',Ab,Cb,Bc,Ca,Ac,Ba,Fa,Fb,Fc,F'a,F'b,F'c)
+\tkzLabelPoints(Ja,Jb,Jc,Q,Xa,Xb,Za,Zc,Ab,Cb,Bc,Ca,Ac,Ba,F'b)
+\tkzLabelPoints[above](O,K,F'a,Fa,A'')
+\tkzLabelPoints[below](B,F'c,Yc,N,Sp,Fc,Mc)
+\tkzLabelPoints[left](A',C',Fb)
+\tkzLabelPoints[right](C)
+\tkzLabelPoints[below right](A)
+\tkzLabelPoints[above right](Yb)
+\tkzDrawSegments[color=green!50!black](Mc,N Mc,A'' A'',Q)
+\tkzDrawSegments[color=red,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab)
+\tkzDrawSegments[color=red](Cb,Ab Bc,Ac Ba,Ca A',C')
+\tkzMarkSegments[color=red,mark=|](Cb,Ab Bc,Ac Ba,Ca)
+\tkzMarkRightAngles(Jc,Zc,A Ja,Xa,B Jb,Yb,C)
+\tkzDrawSegments[green,dashed](A,F'a B,F'b C,F'c)
+\end{tikzpicture}
+
+\end{document}
+\end{tkzexample}
+
+\subsubsection*{The result}
+%
+\begin{tikzpicture}[scale=.6]
+   \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+   \tkzDefTriangleCenter[euler](A,B,C)    \tkzGetPoint{N}
+   \tkzDefTriangleCenter[circum](A,B,C)   \tkzGetPoint{O}
+   \tkzDefTriangleCenter[lemoine](A,B,C)  \tkzGetPoint{K}
+   \tkzDefTriangleCenter[ortho](A,B,C)    \tkzGetPoint{H}
+   \tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
+   \tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
+   \tkzDefCircle[in](Ma,Mb,Mc)             \tkzGetPoint{Sp} % Sp Spieker center
+   \tkzDefProjExcenter[name=J](A,B,C)(a,b,c){Y,Z,X}
+   \tkzDefLine[parallel=through Za](A,B)      \tkzGetPoint{Xc}
+   \tkzInterLL(Za,Xc)(C,B)                    \tkzGetPoint{C'}
+   \tkzDefLine[parallel=through Zc](B,C)      \tkzGetPoint{Ya}
+   \tkzInterLL(Zc,Ya)(A,B)                    \tkzGetPoint{A'}
+   \tkzDefPointBy[reflection= over Ja--Jc](C')\tkzGetPoint{Ab}
+   \tkzDefPointBy[reflection= over Ja--Jc](A')\tkzGetPoint{Cb}
+   \tkzInterLL(K,O)(N,Sp)                     \tkzGetPoint{Q}
+   \tkzInterLC(A,B)(Q,Cb)                     \tkzGetSecondPoint{Ba}
+   \tkzInterLC(A,C)(Q,Cb)                     \tkzGetPoints{Ca}{Ac}
+   \tkzInterLC(B,C')(Q,Cb)                    \tkzGetSecondPoint{Bc}
+   \tkzInterLC(Q,Ja)(Q,Cb)                    \tkzGetSecondPoint{F'a}
+   \tkzInterLC(Q,Jc)(Q,Cb)                    \tkzGetSecondPoint{F'c}
+   \tkzInterLC(Q,Jb)(Q,Cb)                    \tkzGetSecondPoint{F'b}
+   \tkzInterLC(Sp,F'a)(Ja,Za)                 \tkzGetFirstPoint{Fa}
+   \tkzInterLC(Sp,F'b)(Jb,Yb)                 \tkzGetFirstPoint{Fb}
+   \tkzInterLC(Sp,F'c)(Jc,Yc)                 \tkzGetSecondPoint{Fc}
+   \tkzInterLC(Mc,Sp)(Q,Cb)                   \tkzGetSecondPoint{A''}
+   \tkzDefLine[parallel=through A''](N,Mc)    \tkzGetPoint{q}
+   \tkzDrawPolygon(A,B,C)
+   \tkzDrawCircle(Q,Bc)%
+   \tkzDrawCircle[euler,lightgray](A,B,C)
+   \tkzDrawCircles[ex](A,B,C B,C,A C,A,B)
+   \tkzDrawSegments[dashed](A,A' C,C' A',Zc Za,C' B,Cb B,Ab A,Ca C,Ac Ja,Xa Jb,Yb Jc,Zc)
+   \begin{scope}
+     \tkzClipCircle(Q,Cb)
+      \tkzDrawLine[add=5 and 12,orange](K,O)
+      \tkzDrawLine[add=12 and 28,red!50!black](N,Sp)
+   \end{scope}
+   \tkzDrawSegments[color=green!50!black](Mc,N Mc,A'' A'',Q)
+   \tkzDrawSegments[color=red,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab)
+   \tkzDrawSegments[color=red](Cb,Ab Bc,Ac Ba,Ca A',C')
+   \tkzMarkSegments[color=red,mark=|](Cb,Ab Bc,Ac Ba,Ca)
+   \tkzMarkRightAngles(Jc,Zc,A Ja,Xa,B Jb,Yb,C)
+   \tkzDrawSegments[green,dashed](A,F'a B,F'b C,F'c)
+   \tkzDrawPoints(A,B,C,K,Ja,Jb,Jc,Q,N,O,Sp,Mc,Xa,Xb,Yb,Yc,Za,Zc,
+                   A',C',A'',Ab,Cb,Bc,Ca,Ac,Ba,Fa,Fb,Fc,F'a,F'b,F'c)
+   \tkzLabelPoints(Ja,Jb,Jc,Q,Xa,Xb,Za,Zc,Ab,Cb,
+                   Bc, Ca, Ac, Ba, F'b)
+   \tkzLabelPoints[above](O, K, F'a, Fa, A'')
+   \tkzLabelPoints[below](B, F'c, Yc, N, Sp, Fc, Mc)
+   \tkzLabelPoints[left](A', C', Fb)
+   \tkzLabelPoints[right](C)
+   \tkzLabelPoints[below right](A)
+   \tkzLabelPoints[above right](Yb)
+\end{tikzpicture}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-examples.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-exemples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-exemples.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-exemples.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,539 +0,0 @@
-\section{Some examples}
-\subsection{Some interesting examples}
-
-\subsubsection{Similar isosceles triangles}
-
-The following is from the excellent site \textbf{Descartes et les Mathématiques}. I did not modify the text and I am only the author of the programming of the figures.
-
-\url{http://debart.pagesperso-orange.fr/seconde/triangle.html}
-
-Bibliography:
-
-\begin{itemize}
-
-\item   Géométrie au Bac - Tangente, special issue no. 8 - Exercise 11, page 11
-
-
-\item   Elisabeth Busser and Gilles Cohen: 200 nouveaux problèmes du "Monde" - POLE 2007 (200 new problems of "Le Monde")
-
-
-\item   Affaire de logique n° 364 - Le Monde February 17, 2004
-\end{itemize}
-
-
-Two statements were proposed, one by the magazine \textit{Tangente} and the other by \textit{Le Monde}.
-
-\vspace*{2cm}
-\emph{Editor of the magazine "Tangente"}: \textcolor{orange}{Two similar isosceles triangles $AXB$ and $BYC$ are constructed with main vertices $X$ and $Y$, such that $A$, $B$ and $C$ are aligned and that these triangles are "indirect". Let $\alpha$ be the angle at vertex $\widehat{AXB}$ = $\widehat{BYC}$. We then construct a third isosceles triangle $XZY$ similar to the first two, with main vertex $Z$ and "indirect".
-We ask to demonstrate that point $Z$ belongs to the straight line $(AC)$.}
-
-\vspace*{2cm}
-\emph{Editor of  "Le Monde"}: \textcolor{orange}{We construct two similar isosceles triangles $AXB$ and $BYC$ with principal vertices $X$ and $Y$, such that $A$, $B$ and $C$ are aligned and that these triangles are "indirect". Let $\alpha$ be the angle at vertex $\widehat{AXB}$ = $\widehat{BYC}$. The point Z of the line segment $[AC]$ is equidistant from the two vertices $X$ and $Y$.\\
-At what angle does he see these two vertices?}
-
-\vspace*{2cm} The constructions and their associated codes are on the next two pages, but you can search before looking. The programming respects (it seems to me ...) my reasoning in both cases.
-
- \subsubsection{Revised version of "Tangente"}
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=.8,rotate=60]
-  \tkzDefPoint(6,0){X}   \tkzDefPoint(3,3){Y}
-  \tkzDefShiftPoint[X](-110:6){A}    \tkzDefShiftPoint[X](-70:6){B}
-  \tkzDefShiftPoint[Y](-110:4.2){A'} \tkzDefShiftPoint[Y](-70:4.2){B'}
-  \tkzDefPointBy[translation= from A' to B ](Y) \tkzGetPoint{Y}
-  \tkzDefPointBy[translation= from A' to B ](B') \tkzGetPoint{C}
-  \tkzInterLL(A,B)(X,Y) \tkzGetPoint{O}
-  \tkzDefMidPoint(X,Y) \tkzGetPoint{I}
-  \tkzDefPointWith[orthogonal](I,Y)
-  \tkzInterLL(I,tkzPointResult)(A,B) \tkzGetPoint{Z}
-  \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
-  \tkzDrawCircle(O,X)
-  \tkzDrawLines[add = 0 and 1.5](A,C) \tkzDrawLines[add = 0 and 3](X,Y)
-  \tkzDrawSegments(A,X B,X B,Y C,Y)   \tkzDrawSegments[color=red](X,Z Y,Z)
-  \tkzDrawPoints(A,B,C,X,Y,O,Z)
-  \tkzLabelPoints(A,B,C,Z)   \tkzLabelPoints[above right](X,Y,O)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{"Le Monde" version}
-
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(3,0){B}
-  \tkzDefPoint(9,0){C}
-  \tkzDefPoint(1.5,2){X}
-  \tkzDefPoint(6,4){Y}
-  \tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
-  \tkzDefMidPoint(X,Y)               \tkzGetPoint{I}
-  \tkzDefPointWith[orthogonal](I,Y)  \tkzGetPoint{i}
-  \tkzDrawLines[add = 2 and 1,color=orange](I,i)
-  \tkzInterLL(I,i)(A,B)              \tkzGetPoint{Z}
-  \tkzInterLC(I,i)(O,B)              \tkzGetSecondPoint{M}
-  \tkzDefPointWith[orthogonal](B,Z)  \tkzGetPoint{b}
-  \tkzDrawCircle(O,B)
-  \tkzDrawLines[add = 0 and 2,color=orange](B,b)
-  \tkzDrawSegments(A,X B,X B,Y C,Y A,C X,Y)
-  \tkzDrawSegments[color=red](X,Z Y,Z)
-  \tkzDrawPoints(A,B,C,X,Y,Z,M,I)
-  \tkzLabelPoints(A,B,C,Z)
-  \tkzLabelPoints[above right](X,Y,M,I)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Triangle altitudes}
-
-The following is again from the excellent site \textbf{Descartes et les Mathématiques} (Descartes and the Mathematics).
-
-\url{http://debart.pagesperso-orange.fr/geoplan/geometrie_triangle.html}
-
-The three altitudes of a triangle intersect at the same H-point.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.8]
-   \tkzDefPoint(0,0){C}
-   \tkzDefPoint(7,0){B}
-   \tkzDefPoint(5,6){A}
-   \tkzDrawPolygon(A,B,C)
-   \tkzDefMidPoint(C,B)
-   \tkzGetPoint{I}
-   \tkzDrawArc(I,B)(C)
-   \tkzInterLC(A,C)(I,B)
-   \tkzGetSecondPoint{B'}
-   \tkzInterLC(A,B)(I,B)
-   \tkzGetFirstPoint{C'}
-   \tkzInterLL(B,B')(C,C')
-   \tkzGetPoint{H}
-   \tkzInterLL(A,H)(C,B)
-   \tkzGetPoint{A'}
-     \tkzDefCircle[circum](A,B',C')
-    \tkzGetPoint{O}
-   \tkzDrawCircle[color=red](O,A)
-   \tkzDrawSegments[color=orange](B,B' C,C' A,A')
-   \tkzMarkRightAngles(C,B',B B,C',C C,A',A)
-   \tkzDrawPoints(A,B,C,A',B',C',H)
-   \tkzLabelPoints(A,B,C,A',B',C',H)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Altitudes - other construction}
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.75]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(8,0){B}
-  \tkzDefPoint(3.5,10){C}
-  \tkzDefMidPoint(A,B)
-  \tkzGetPoint{O}
-  \tkzDefPointBy[projection=onto A--B](C)
-  \tkzGetPoint{P}
-  \tkzInterLC(C,A)(O,A)
-  \tkzGetSecondPoint{M}
-  \tkzInterLC(C,B)(O,A)
-  \tkzGetFirstPoint{N}
-  \tkzInterLL(B,M)(A,N)
-  \tkzGetPoint{I}
-  \tkzDrawCircle[diameter](A,B)
-  \tkzDrawSegments(C,A C,B A,B B,M A,N)
-  \tkzMarkRightAngles[fill=brown!20](A,M,B A,N,B A,P,C)
-  \tkzDrawSegment[style=dashed,color=orange](C,P)
-  \tkzLabelPoints(O,A,B,P)
-  \tkzLabelPoint[left](M){$M$}
-  \tkzLabelPoint[right](N){$N$}
-  \tkzLabelPoint[above](C){$C$}
-  \tkzLabelPoint[above right](I){$I$}
-  \tkzDrawPoints[color=red](M,N,P,I)
-  \tkzDrawPoints[color=brown](O,A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Different authors}
-
-\subsubsection{ Square root of the integers}
-How to get $1$, $\sqrt{2}$, $\sqrt{3}$ with a rule and a compass.
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.5]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(1,0){a0}
-   \tkzDrawSegment[blue](O,a0)
-  \foreach \i [count=\j] in {0,...,10}{%
-    \tkzDefPointWith[orthogonal normed](a\i,O)
-    \tkzGetPoint{a\j}
-    \tkzDrawPolySeg[color=blue](a\i,a\j,O)}
- \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{About right triangle}
-
-We have a segment $[AB]$ and we want to determine a point $C$ such that $AC=8$~cm    and $ABC$ is a right triangle in $B$.
-
-\begin{tkzexample}[latex=7cm]
-\begin{tikzpicture}[scale=.5]
-  \tkzDefPoint["$A$" left](2,1){A}
-  \tkzDefPoint(6,4){B}
-  \tkzDrawSegment(A,B)
-  \tkzDrawPoint[color=red](A)
-  \tkzDrawPoint[color=red](B)
-  \tkzDefPointWith[orthogonal,K=-1](B,A)
-  \tkzDrawLine[add = .5 and .5](B,tkzPointResult)
-  \tkzInterLC[R](B,tkzPointResult)(A,8 cm)
-  \tkzGetPoints{C}{J}
-  \tkzDrawPoint[color=red](C)
-  \tkzCompass(A,C)
-  \tkzMarkRightAngle(A,B,C)
-  \tkzDrawLine[color=gray,style=dashed](A,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Archimedes}
-
-This is an ancient problem   proved by the great Greek mathematician Archimedes .
-The figure below shows a semicircle, with diameter $AB$. A tangent line is drawn and  touches the semicircle at $B$.   An other tangent line at a point, $C$, on the semicircle is drawn. We project the point $C$ on the line segment $[AB]$  on a point $D$. The two tangent lines intersect at the point $T$.
-
-Prove that the line $(AT)$ bisects $(CD)$
-
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
-  \tkzDefPoint(0,0){A}\tkzDefPoint(6,0){D}
-  \tkzDefPoint(8,0){B}\tkzDefPoint(4,0){I}
-  \tkzDefLine[orthogonal=through D](A,D)
-  \tkzInterLC[R](D,tkzPointResult)(I,4 cm) \tkzGetFirstPoint{C}
-  \tkzDefLine[orthogonal=through C](I,C)    \tkzGetPoint{c}
-  \tkzDefLine[orthogonal=through B](A,B)    \tkzGetPoint{b}
-  \tkzInterLL(C,c)(B,b) \tkzGetPoint{T}
-  \tkzInterLL(A,T)(C,D) \tkzGetPoint{P}
-  \tkzDrawArc(I,B)(A)
-  \tkzDrawSegments(A,B A,T C,D I,C) \tkzDrawSegment[color=orange](I,C)
-  \tkzDrawLine[add = 1 and 0](C,T)   \tkzDrawLine[add = 0 and 1](B,T)
-  \tkzMarkRightAngle(I,C,T)
-  \tkzDrawPoints(A,B,I,D,C,T)
-  \tkzLabelPoints(A,B,I,D)  \tkzLabelPoints[above right](C,T)
-  \tkzMarkSegment[pos=.25,mark=s|](C,D) \tkzMarkSegment[pos=.75,mark=s|](C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example: Dimitris Kapeta}
-
-You need in this example to use \tkzname{mkpos=.2} with \tkzcname{tkzMarkAngle} because the measure of $ \widehat{CAM}$ is too small.
-Another possiblity is to use \tkzcname{tkzFillAngle}.
-
-
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2.5,0){N}
-  \tkzDefPoint(-4.2,0.5){M}
-  \tkzDefPointBy[rotation=center O angle 30](N)
-  \tkzGetPoint{B}
-  \tkzDefPointBy[rotation=center O angle -50](N)
-  \tkzGetPoint{A}
-  \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
-  \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
-  \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
-  \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
-  \tkzDrawSegments(A,C M,A M,B)
-  \tkzDrawCircle(O,N)
-  \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
-  \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
-  \tkzDrawPoints(O, A, B, M, B, C)
-  \tkzLabelPoints[right](O,A,B)
-  \tkzLabelPoints[above left](M,C)
-  \tkzLabelPoint[below left](A'){$A'$}
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Example 1: John Kitzmiller }
-
-Prove that $\bigtriangleup LKJ$ is equilateral.
-
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=2]
-  \tkzDefPoint[label=below left:A](0,0){A}
-  \tkzDefPoint[label=below right:B](6,0){B}
-  \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
-  \tkzMarkSegments[mark=|](A,B A,C B,C)
-  \tkzDefBarycentricPoint(A=1,B=2) \tkzGetPoint{C'}
-  \tkzDefBarycentricPoint(A=2,C=1) \tkzGetPoint{B'}
-  \tkzDefBarycentricPoint(C=2,B=1) \tkzGetPoint{A'}
-  \tkzInterLL(A,A')(C,C') \tkzGetPoint{J}
-  \tkzInterLL(C,C')(B,B') \tkzGetPoint{K}
-  \tkzInterLL(B,B')(A,A') \tkzGetPoint{L}
-  \tkzLabelPoint[above](C){C}
-  \tkzDrawPolygon(A,B,C) \tkzDrawSegments(A,J B,L C,K)
-  \tkzMarkAngles[size=1 cm](J,A,C K,C,B L,B,A)
-  \tkzMarkAngles[thick,size=1 cm](A,C,J C,B,K B,A,L)
-  \tkzMarkAngles[opacity=.5](A,C,J C,B,K B,A,L)
-  \tkzFillAngles[fill= orange,size=1 cm,opacity=.3](J,A,C K,C,B L,B,A)
-  \tkzFillAngles[fill=orange, opacity=.3,thick,size=1,](A,C,J C,B,K B,A,L)
-  \tkzFillAngles[fill=green, size=1, opacity=.5](A,C,J C,B,K B,A,L)
-  \tkzFillPolygon[color=yellow, opacity=.2](J,A,C)
-  \tkzFillPolygon[color=yellow, opacity=.2](K,B,C)
-  \tkzFillPolygon[color=yellow, opacity=.2](L,A,B)
-  \tkzDrawSegments[line width=3pt,color=cyan,opacity=0.4](A,J C,K B,L)
-  \tkzDrawSegments[line width=3pt,color=red,opacity=0.4](A,L B,K C,J)
-  \tkzMarkSegments[mark=o](J,K K,L L,J)
-  \tkzLabelPoint[right](J){J}
-  \tkzLabelPoint[below](K){K}
-  \tkzLabelPoint[above left](L){L}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example 2:  John Kitzmiller }
-Prove that $\dfrac{AC}{CE}=\dfrac{BD}{DF}$.
-
-Another interesting example from John, you can see how to use some extra options like \tkzname{decoration} and \tkzname{postaction}  from \TIKZ\ with \tkzname{tkz-euclide}.
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=2,decoration={markings,
-  mark=at position 3cm with {\arrow[scale=2]{>}}}]
-  \tkzDefPoints{0/0/E, 6/0/F, 0/1.8/P, 6/1.8/Q, 0/3/R, 6/3/S}
-  \tkzDrawLines[postaction={decorate}](E,F P,Q R,S)
-  \tkzDefPoints{3.5/3/A, 5/3/B}
-  \tkzDrawSegments(E,A F,B)
-  \tkzInterLL(E,A)(P,Q) \tkzGetPoint{C}
-  \tkzInterLL(B,F)(P,Q) \tkzGetPoint{D}
-  \tkzLabelPoints[above right](A,B)
-  \tkzLabelPoints[below](E,F)
-  \tkzLabelPoints[above left](C)
-  \tkzDrawSegments[style=dashed](A,F)
-  \tkzInterLL(A,F)(P,Q) \tkzGetPoint{G}
-  \tkzLabelPoints[above right](D,G)
-  \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](A,C A,G)
-  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](C,E G,F)
-  \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](B,D)
-  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](D,F)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example 3:  John Kitzmiller }
-Prove that $\dfrac{BC}{CD}=\dfrac{AB}{AD} \qquad$ (Angle Bisector).
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=2]
-  \tkzDefPoints{0/0/B, 5/0/D}       \tkzDefPoint(70:3){A}
-  \tkzDrawPolygon(B,D,A)
-  \tkzDefLine[bisector](B,A,D)      \tkzGetPoint{a}
-  \tkzInterLL(A,a)(B,D)           \tkzGetPoint{C}
-  \tkzDefLine[parallel=through B](A,C) \tkzGetPoint{b}
-  \tkzInterLL(A,D)(B,b)           \tkzGetPoint{P}
-  \begin{scope}[decoration={markings,
-   mark=at position .5 with {\arrow[scale=2]{>}}}]
-   \tkzDrawSegments[postaction={decorate},dashed](C,A P,B)
-  \end{scope}
-  \tkzDrawSegment(A,C) \tkzDrawSegment[style=dashed](A,P)
-  \tkzLabelPoints[below](B,C,D) \tkzLabelPoints[above](A,P)
-  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](B,C P,A)
-  \tkzDrawSegments[color=teal,    line width=3pt, opacity=0.4](C,D A,D)
-  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](A,B)
-  \tkzMarkAngles[size=3mm](B,A,C C,A,D)
-  \tkzMarkAngles[size=3mm](B,A,C A,B,P)
-  \tkzMarkAngles[size=3mm](B,P,A C,A,D)
-  \tkzMarkAngles[size=3mm](B,A,C A,B,P B,P,A C,A,D)
-  \tkzFillAngles[fill=green,  opacity=0.5](B,A,C A,B,P)
-  \tkzFillAngles[fill=yellow, opacity=0.3](B,P,A C,A,D)
-  \tkzFillAngles[fill=green,  opacity=0.6](B,A,C A,B,P B,P,A C,A,D)
-  \tkzLabelAngle[pos=1](B,A,C){1}   \tkzLabelAngle[pos=1](C,A,D){2}
-  \tkzLabelAngle[pos=1](A,B,P){3}    \tkzLabelAngle[pos=1](B,P,A){4}
-  \tkzMarkSegments[mark=|](A,B A,P)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Example 4: author John Kitzmiller }
-Prove that $\overline{AG}\cong\overline{EF} \qquad$ (Detour).
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=2]
-  \tkzDefPoint(0,3){A}    \tkzDefPoint(6,3){E}  \tkzDefPoint(1.35,3){B}
-  \tkzDefPoint(4.65,3){D} \tkzDefPoint(1,1){G}  \tkzDefPoint(5,5){F}
-  \tkzDefMidPoint(A,E)    \tkzGetPoint{C}
-  \tkzFillPolygon[yellow, opacity=0.4](B,G,C)
-  \tkzFillPolygon[yellow, opacity=0.4](D,F,C)
-  \tkzFillPolygon[blue, opacity=0.3](A,B,G)
-  \tkzFillPolygon[blue, opacity=0.3](E,D,F)
-  \tkzMarkAngles[size=0.5 cm](B,G,A D,F,E)
-  \tkzMarkAngles[size=0.5 cm](B,C,G D,C,F)
-  \tkzMarkAngles[size=0.5 cm](G,B,C F,D,C)
-  \tkzMarkAngles[size=0.5 cm](A,B,G E,D,F)
-  \tkzFillAngles[size=0.5 cm,fill=green](B,G,A D,F,E)
-  \tkzFillAngles[size=0.5 cm,fill=orange](B,C,G D,C,F)
-  \tkzFillAngles[size=0.5 cm,fill=yellow](G,B,C F,D,C)
-  \tkzFillAngles[size=0.5 cm,fill=red](A,B,G E,D,F)
-  \tkzMarkSegments[mark=|](B,C D,C)  \tkzMarkSegments[mark=s||](G,C F,C)
-  \tkzMarkSegments[mark=o](A,G E,F)  \tkzMarkSegments[mark=s](B,G D,F)
-  \tkzDrawSegment[color=red](A,E)
-  \tkzDrawSegment[color=blue](F,G)
-  \tkzDrawSegments(A,G G,B E,F F,D)
-  \tkzLabelPoints[below](C,D,E,G)  \tkzLabelPoints[above](A,B,F)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example 1: from Indonesia}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=3]
-   \tkzDefPoints{0/0/A,2/0/B}
-   \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
-   \tkzDefPointBy[rotation=center D angle 45](C)\tkzGetPoint{G}
-   \tkzDefSquare(G,D)\tkzGetPoints{E}{F}
-   \tkzInterLL(B,C)(E,F)\tkzGetPoint{H}
-   \tkzFillPolygon[gray!10](D,E,H,C,D)
-   \tkzDrawPolygon(A,...,D)\tkzDrawPolygon(D,...,G)
-   \tkzDrawSegment(B,E)
-   \tkzMarkSegments[mark=|,size=3pt,color=gray](A,B B,C C,D D,A E,F F,G G,D D,E)
-   \tkzMarkSegments[mark=||,size=3pt,color=gray](B,E E,H)
-   \tkzLabelPoints[left](A,D)
-   \tkzLabelPoints[right](B,C,F,H)
-   \tkzLabelPoints[above](G)\tkzLabelPoints[below](E)
-   \tkzMarkRightAngles(D,A,B D,G,F)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example 2: from Indonesia}
-\begin{tkzexample}[vbox,small]
-  \begin{tikzpicture}[pol/.style={fill=brown!40,opacity=.5},
-                     seg/.style={tkzdotted,color=gray},
-                     hidden pt/.style={fill=gray!40},
-                     mra/.style={color=gray!70,tkzdotted,/tkzrightangle/size=.2},
-                     scale=3]
-  \tkzSetUpPoint[size=2]                
-  \tkzDefPoints{0/0/A,2.5/0/B,1.33/0.75/D,0/2.5/E,2.5/2.5/F}
-  \tkzDefLine[parallel=through D](A,B) \tkzGetPoint{I1}
-  \tkzDefLine[parallel=through B](A,D) \tkzGetPoint{I2}
-  \tkzInterLL(D,I1)(B,I2) \tkzGetPoint{C}
-  \tkzDefLine[parallel=through E](A,D) \tkzGetPoint{I3}
-  \tkzDefLine[parallel=through D](A,E) \tkzGetPoint{I4}
-  \tkzInterLL(E,I3)(D,I4) \tkzGetPoint{H}
-  \tkzDefLine[parallel=through F](E,H) \tkzGetPoint{I5}
-  \tkzDefLine[parallel=through H](E,F) \tkzGetPoint{I6}
-  \tkzInterLL(F,I5)(H,I6) \tkzGetPoint{G}
-  \tkzDefMidPoint(G,H) \tkzGetPoint{P}
-  \tkzDefMidPoint(G,C) \tkzGetPoint{Q}
-  \tkzDefMidPoint(B,C) \tkzGetPoint{R}
-  \tkzDefMidPoint(A,B) \tkzGetPoint{S}
-  \tkzDefMidPoint(A,E) \tkzGetPoint{T}
-  \tkzDefMidPoint(E,H) \tkzGetPoint{U}
-  \tkzDefMidPoint(A,D) \tkzGetPoint{M}
-  \tkzDefMidPoint(D,C) \tkzGetPoint{N}
-  \tkzInterLL(B,D)(S,R) \tkzGetPoint{L}
-  \tkzInterLL(H,F)(U,P) \tkzGetPoint{K}
-  \tkzDefLine[parallel=through K](D,H) \tkzGetPoint{I7}
-  \tkzInterLL(K,I7)(B,D) \tkzGetPoint{O}
-  
-  \tkzFillPolygon[pol](P,Q,R,S,T,U)
-  \tkzDrawSegments[seg](K,O K,L P,Q R,S T,U 
-                    C,D H,D A,D M,N B,D)
-  \tkzDrawSegments(E,H B,C G,F G,H G,C Q,R S,T U,P H,F)
-  \tkzDrawPolygon(A,B,F,E)
-  \tkzDrawPoints(A,B,C,E,F,G,H,P,Q,R,S,T,U,K)
-  \tkzDrawPoints[hidden pt](M,N,O,D)
-  \tkzMarkRightAngle[mra](L,O,K)
-  \tkzMarkSegments[mark=|,size=1pt,thick,color=gray](A,S B,S B,R C,R 
-                    Q,C Q,G G,P H,P 
-                    E,U H,U E,T A,T)
-  
-  \tkzLabelAngle[pos=.3](K,L,O){$\alpha$}
-  \tkzLabelPoints[below](O,A,S,B)
-  \tkzLabelPoints[above](H,P,G)
-  \tkzLabelPoints[left](T,E)
-  \tkzLabelPoints[right](C,Q)
-  \tkzLabelPoints[above left](U,D,M)
-  \tkzLabelPoints[above right](L,N)
-  \tkzLabelPoints[below right](F,R)
-  \tkzLabelPoints[below left](K)
-  \end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{Three circles}
-
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=1.5]
-  \tkzDefPoints{0/0/A,8/0/B,0/4/a,8/4/b,8/8/c}
-  \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
-  \tkzDrawPolygon(A,B,C)
-  \tkzDefSquare(A,B) \tkzGetPoints{D}{E}
-  \tkzClipBB
-  \tkzDefMidPoint(A,B) \tkzGetPoint{M}
-  \tkzDefMidPoint(B,C) \tkzGetPoint{N}
-  \tkzDefMidPoint(A,C) \tkzGetPoint{P}
-  \tkzDrawSemiCircle[gray,dashed](M,B)
-  \tkzDrawSemiCircle[gray,dashed](A,M)
-  \tkzDrawSemiCircle[gray,dashed](A,B)
-  \tkzDrawCircle[gray,dashed](B,A)
-  \tkzInterLL(A,N)(M,a) \tkzGetPoint{Ia}
-  \tkzDefPointBy[projection = onto A--B](Ia)
-  \tkzGetPoint{ha}
-  \tkzDrawCircle[gray](Ia,ha)
-  \tkzInterLL(B,P)(M,b) \tkzGetPoint{Ib}
-  \tkzDefPointBy[projection = onto A--B](Ib)
-  \tkzGetPoint{hb}
-  \tkzDrawCircle[gray](Ib,hb)
-  \tkzInterLL(A,c)(M,C) \tkzGetPoint{Ic}
-  \tkzDefPointBy[projection = onto A--C](Ic)
-  \tkzGetPoint{hc}
-  \tkzDrawCircle[gray](Ic,hc)
-  \tkzInterLL(A,Ia)(B,Ib) \tkzGetPoint{G}
-  \tkzDrawCircle[gray,dashed](G,Ia)
-  \tkzDrawPolySeg(A,E,D,B)
-  \tkzDrawPoints(A,B,C)
-  \tkzDrawPoints(G,Ia,Ib,Ic)
-  \tkzDrawSegments[gray,dashed](C,M A,N B,P M,a M,b A,a a,b b,B A,D Ia,ha)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{"The" Circle of APOLLONIUS}
-
-\begin{tkzexample}[vbox,small]
-  \begin{tikzpicture}[scale=.5]
-  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
-  \tkzDefTriangleCenter[euler](A,B,C)        \tkzGetPoint{N} 
-  \tkzDefTriangleCenter[circum](A,B,C)       \tkzGetPoint{O} 
-  \tkzDefTriangleCenter[lemoine](A,B,C)      \tkzGetPoint{K} 
-  \tkzDefTriangleCenter[spieker](A,B,C)      \tkzGetPoint{Sp}
-  \tkzDefExCircle(A,B,C)     \tkzGetPoint{Jb}
-  \tkzDefExCircle(C,A,B)     \tkzGetPoint{Ja}
-  \tkzDefExCircle(B,C,A)     \tkzGetPoint{Jc}
-  \tkzDefPointBy[projection=onto B--C ](Jc)   \tkzGetPoint{Xc}
-  \tkzDefPointBy[projection=onto B--C ](Jb)   \tkzGetPoint{Xb}
-  \tkzDefPointBy[projection=onto A--B ](Ja)   \tkzGetPoint{Za}
-  \tkzDefPointBy[projection=onto A--B ](Jb)   \tkzGetPoint{Zb}
-  \tkzDefLine[parallel=through Xc](A,C)       \tkzGetPoint{X'c}
-  \tkzDefLine[parallel=through Xb](A,B)       \tkzGetPoint{X'b}
-  \tkzDefLine[parallel=through Za](C,A)       \tkzGetPoint{Z'a}
-  \tkzDefLine[parallel=through Zb](C,B)       \tkzGetPoint{Z'b}
-  \tkzInterLL(Xc,X'c)(A,B)                    \tkzGetPoint{B'}
-  \tkzInterLL(Xb,X'b)(A,C)                    \tkzGetPoint{C'}
-  \tkzInterLL(Za,Z'a)(C,B)                    \tkzGetPoint{A''}
-  \tkzInterLL(Zb,Z'b)(C,A)                    \tkzGetPoint{B''}
-  \tkzDefPointBy[reflection= over Jc--Jb](B') \tkzGetPoint{Ca}
-  \tkzDefPointBy[reflection= over Jc--Jb](C') \tkzGetPoint{Ba}
-  \tkzDefPointBy[reflection= over Ja--Jb](A'')\tkzGetPoint{Bc}
-  \tkzDefPointBy[reflection= over Ja--Jb](B'')\tkzGetPoint{Ac}
-  \tkzDefCircle[circum](Ac,Ca,Ba)             \tkzGetPoint{Q}
-  \tkzDrawCircle[circum](Ac,Ca,Ba)
-  \tkzDefPointWith[linear,K=1.1](Q,Ac)        \tkzGetPoint{nAc}
-  \tkzClipCircle[through](Q,nAc)
-  \tkzDrawLines[add=1.5 and 1.5,dashed](A,B B,C A,C)
-  \tkzDrawPolygon[color=blue](A,B,C)
-  \tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
-  \tkzDrawCircles[ex](A,B,C B,C,A C,A,B) 
-  \tkzDrawLines[add=0 and 0,dashed](Ca,Bc B,Za A,Ba B',C')
-  \tkzDrawLine[add=1 and 1,dashed](Xb,Xc)
-  \tkzDrawLine[add=7 and 3,blue](O,K)
-  \tkzDrawLine[add=8 and 15,red](N,Sp)
-  \tkzDrawLines[add=10 and 10](K,O N,Sp)
-  \tkzDrawSegments(Ba,Ca Bc,Ac)
-  \tkzDrawPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp,K,O)
-  \tkzLabelPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp)
-  \tkzLabelPoints[above](K,O)
-  \end{tikzpicture}
-\end{tkzexample}
-
-
- 
-\endinput

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-filling.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-filling.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-filling.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,297 @@
+\subsection{Coloring a disc}
+This was possible with the macro \tkzcname{tkzDrawCircle}, but disk tracing was mandatory, this is no longer the case.
+  
+\begin{NewMacroBox}{tkzFillCircle}{\oarg{local options}\parg{A,B}}%
+\begin{tabular}{lll}%
+options             & default & definition                         \\ 
+\midrule
+\TOline{radius}  {radius}{two points define a radius}
+\TOline{R} {radius}{a point and the measurement of a radius }
+\bottomrule
+\end{tabular}
+
+\medskip
+You don't need to put \tkzname{radius} because that's the default option. Of course, you have to add all the styles of \TIKZ\ for the plots.
+\end{NewMacroBox}  
+
+
+\subsubsection{Yin and Yang} 
+\begin{tkzexample}[latex=8cm,small]
+  \begin{tikzpicture}[scale=.75]
+    \tkzDefPoint(0,0){O}
+    \tkzDefPoint(-4,0){A}
+    \tkzDefPoint(4,0){B}
+    \tkzDefPoint(-2,0){I}
+    \tkzDefPoint(2,0){J}
+    \tkzDrawSector[fill=teal](O,A)(B)
+    \tkzFillCircle[fill=white](J,B) 
+    \tkzFillCircle[fill=teal](I,A) 
+    \tkzDrawCircle(O,A) 
+  \end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{From a sangaku} 
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+   \tkzDefPoint(0,0){B}  \tkzDefPoint(6,0){C}%
+   \tkzDefSquare(B,C)    \tkzGetPoints{D}{A} 
+   \tkzClipPolygon(B,C,D,A) 
+   \tkzDefMidPoint(A,D)  \tkzGetPoint{F}
+   \tkzDefMidPoint(B,C)  \tkzGetPoint{E}
+   \tkzDefMidPoint(B,D)  \tkzGetPoint{Q}           
+   \tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H} 
+   \tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
+   \tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
+   \tkzDefPointBy[projection=onto B--A](K)   
+   \tkzGetPoint{M}  
+   \tkzDrawPolygon(A,B,C,D)
+   \tkzFillCircle[red!20](E,B)
+   \tkzFillCircle[blue!20](M,A)
+   \tkzFillCircle[green!20](K,Q)
+  \tkzDrawCircles(B,A M,A E,B K,Q) 
+\end{tikzpicture}
+\end{tkzexample} 
+
+\subsubsection{Clipping and filling part I} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,4/0/B,2/2/O,3/4/X,4/1/Y,1/0/Z,
+              0/3/W,3/0/R,4/3/S,1/4/T,0/1/U}
+\tkzDefSquare(A,B)\tkzGetPoints{C}{D}
+\tkzDefPointWith[colinear normed=at X,K=1](O,X)
+ \tkzGetPoint{F}
+\begin{scope}
+  \tkzFillCircle[fill=teal!20](O,F)
+  \tkzFillPolygon[white](A,...,D)
+  \tkzClipPolygon(A,...,D)
+  \foreach \c/\t in {S/C,R/B,U/A,T/D}
+  {\tkzFillCircle[teal!20](\c,\t)}
+\end{scope}
+\foreach \c/\t in {X/C,Y/B,Z/A,W/D}
+{\tkzFillCircle[white](\c,\t)}
+  \foreach \c/\t in {S/C,R/B,U/A,T/D}
+  {\tkzFillCircle[teal!20](\c,\t)}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Clipping and filling part II} 
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture}[scale=.75]
+\tkzDefPoints{0/0/A,8/0/B,8/8/C,0/8/D}
+\tkzDefMidPoint(A,B) \tkzGetPoint{F}
+\tkzDefMidPoint(B,C) \tkzGetPoint{E}
+\tkzDefMidPoint(D,B) \tkzGetPoint{I}
+\tkzDefMidPoint(I,B) \tkzGetPoint{a}
+\tkzInterLC(B,I)(B,C) \tkzGetSecondPoint{K}
+\tkzDefMidPoint(I,K) \tkzGetPoint{b}
+\begin{scope}
+  \tkzFillSector[fill=blue!10](B,C)(A)
+  \tkzDrawSemiCircle[diameter,fill=white](A,B)
+  \tkzDrawSemiCircle[diameter,fill=white](B,C)
+  \tkzClipCircle(E,B)
+  \tkzClipCircle(F,B)
+  \tkzFillCircle[fill=blue!10](B,A)
+\end{scope}
+\tkzDrawSemiCircle[thick](F,B)
+\tkzDrawSemiCircle[thick](E,C)
+\tkzDrawArc[thick](B,C)(A)
+\tkzDrawSegments[thick](A,B B,C)
+\tkzDrawPoints(A,B,C,E,F)
+\tkzLabelPoints[centered](a,b)
+\tkzLabelPoints(A,B,C,E,F)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Clipping and filling part III} 
+
+\begin{tkzexample}[latex=7cm, small] 
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){A} \tkzDefPoint(1,0){B}
+  \tkzDefPoint(2,0){C} \tkzDefPoint(-3,0){a} 
+  \tkzDefPoint(3,0){b}  \tkzDefPoint(0,3){c} 
+  \tkzDefPoint(0,-3){d}
+\begin{scope}
+ \tkzClipPolygon(a,b,c,d)
+ \tkzFillCircle[teal!20](A,C)
+\end{scope}
+ \tkzFillCircle[white](A,B)
+ \tkzDrawCircle[color=red](A,C)
+ \tkzDrawCircle[color=red](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Coloring a polygon} 
+ \begin{NewMacroBox}{tkzFillPolygon}{\oarg{local options}\parg{points list}}%
+You can color by drawing the polygon, but in this case you color the inside of the polygon without drawing it.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments                & example & explication                         \\ 
+\midrule
+\TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{}
+%\bottomrule
+ \end{tabular}
+\end{NewMacroBox} 
+
+\subsubsection{\tkzcname{tkzFillPolygon}} 
+\begin{tkzexample}[latex=7cm, small]  
+\begin{tikzpicture}[scale=.5]
+   \tkzDefPoint(0,0){C} \tkzDefPoint(4,0){A}
+   \tkzDefPoint(0,3){B}
+   \tkzDefSquare(B,A)      \tkzGetPoints{E}{F}
+   \tkzDefSquare(A,C)      \tkzGetPoints{G}{H}
+   \tkzDefSquare(C,B)       \tkzGetPoints{I}{J}
+   \tkzFillPolygon[color  =  orange!30   ](A,C,G,H)
+   \tkzFillPolygon[color  =  teal!40  ](C,B,I,J)
+   \tkzFillPolygon[color  =  purple!20](B,A,E,F)
+   \tkzDrawPolygon[line width  =  1pt](A,B,C)
+   \tkzDrawPolygon[line width  =  1pt](A,C,G,H)
+   \tkzDrawPolygon[line width  =  1pt](C,B,I,J)
+   \tkzDrawPolygon[line width  =  1pt](B,A,E,F)
+   \tkzLabelSegment[above](C,A){$a$}
+   \tkzLabelSegment[right](B,C){$b$}
+   \tkzLabelSegment[below left](B,A){$c$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{\tkzcname{tkzFillSector}}
+\tkzHandBomb\ Attention the arguments vary according to the options. 
+\begin{NewMacroBox}{tkzFillSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
+\begin{tabular}{lll}%
+options          & default & definition      \\ 
+\midrule
+\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$}
+\TOline{rotate} {towards}{the arc starts from A and the angle determines its length } 
+\TOline{R}{towards}{We give the radius and two angles}
+\TOline{R with nodes}{towards}{We give the radius and two points}
+\bottomrule
+\end{tabular} 
+
+\medskip
+Of course, you have to add all the styles of \TIKZ\ for the tracings...
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & arguments & example                         \\ 
+\midrule
+\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzFillSector(O,A)(B)}}
+\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzFillSector[rotate,color=red](O,A)(90)}}
+\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzFillSector[R,color=blue](O,2)(30,90)}} 
+\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzFillSector[R with nodes](O,2)(A,B)}}
+\end{tabular}   
+\end{NewMacroBox} 
+
+\subsubsection{\tkzcname{tkzFillSector} and \tkzname{towards}} 
+It is useless to put \tkzname{towards} and you will notice that the contours are not drawn, only the surface is colored.
+\begin{tkzexample}[latex=5.75cm,small]
+  \begin{tikzpicture}[scale=.6] 
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(-30:3){A}
+  \tkzDefPointBy[rotation = center O angle -60](A)   
+  \tkzFillSector[fill=purple!20](O,A)(tkzPointResult) 
+    \begin{scope}[shift={(-60:1)}]
+    \tkzDefPoint(0,0){O}
+    \tkzDefPoint(-30:3){A}
+    \tkzDefPointBy[rotation = center O angle -60](A)
+    \tkzGetPoint{A'}
+    \tkzFillSector[color=teal!40](O,A')(A)
+      \end{scope}
+  \end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{\tkzcname{tkzFillSector} and \tkzname{rotate}} 
+\begin{tkzexample}[latex=5.75cm,small]
+\begin{tikzpicture}[scale=1.5]
+ \tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
+ \tkzFillSector[rotate,color=purple!20](O,A)(30)
+ \tkzFillSector[rotate,color=teal!40](O,A)(-30)
+\end{tikzpicture}    
+\end{tkzexample} 
+
+\subsection{Colour an angle: \tkzcname{tkzFillAngle}}
+
+The simplest operation
+\begin{NewMacroBox}{tkzFillAngle}{\oarg{local options}\parg{A,O,B}}%
+$O$ is the vertex of the angle. $OA$ and $OB$ are the sides. Attention the angle is determined by the order of the points.
+
+\medskip
+
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                        \\ 
+\midrule
+\TOline{size}{1}{this option determines the radius of the coloured angular sector.}
+
+\bottomrule
+\end{tabular} 
+
+\medskip
+Of course, you have to add all the styles of \TIKZ, like the use of fill and shade... 
+\end{NewMacroBox}  
+
+\subsubsection{Example with \tkzname{size}}  
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture} 
+   \tkzInit 
+   \tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
+   \tkzFillAngle[size=2, fill=gray!10](A,O,B)
+   \tkzDrawLines(O,A O,B)
+   \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{Changing the order of items} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture} 
+   \tkzInit 
+   \tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
+   \tkzFillAngle[size=2,fill=gray!10](B,O,A)
+   \tkzDrawLines(O,A O,B)
+   \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture} 
+   \tkzInit 
+   \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+   % Don't forget {} to get, () to use
+   \tkzFillAngle[size=4,left color=white, 
+                 right color=red!50](A,O,B)
+   \tkzDrawLines(O,A O,B)
+   \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{NewMacroBox}{tkzFillAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
+With common options, there is a macro for multiple angles.
+  \end{NewMacroBox}  
+  
+\subsubsection{Multiples angles}  
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}[scale=0.5]
+  \tkzDefPoints{0/0/B,8/0/C,0/8/A,8/8/D}
+  \tkzDrawPolygon(B,C,D,A)
+  \tkzDefTriangle[equilateral](B,C) \tkzGetPoint{M}
+  \tkzInterLL(D,M)(A,B) \tkzGetPoint{N}
+  \tkzDefPointBy[rotation=center N angle -60](D) 
+  \tkzGetPoint{L}
+  \tkzInterLL(N,L)(M,B)     \tkzGetPoint{P}
+  \tkzInterLL(M,C)(D,L)     \tkzGetPoint{Q}
+  \tkzDrawSegments(D,N N,L L,D B,M M,C)
+  \tkzDrawPoints(L,N,P,Q,M,A,D) 
+  \tkzLabelPoints[left](N,P,Q)
+  \tkzLabelPoints[above](M,A,D)
+  \tkzLabelPoints(L,B,C)
+  \tkzMarkAngles(C,B,M B,M,C M,C,B D,L,N L,N,D N,D,L)
+  \tkzFillAngles[fill=red!20,opacity=.2](C,B,M%
+      B,M,C M,C,B D,L,N L,N,D N,D,L)
+\end{tikzpicture}
+\end{tkzexample} 
+\endinput


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-filling.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-installation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-installation.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-installation.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,62 +1,12 @@
  \section{Installation}
 
-\tkzNamePack{tkz-euclide} and \tkzNamePack{tkz-base} are now on the server of the \tkzname{CTAN}\footnote{\tkzNamePack{tkz-base} and \tkzNamePack{tkz-euclide} are part of \NameDist{TeXLive} and \tkzname{tlmgr} allows you to install them. These packages are also part of \NameDist{MiKTeX} under \NameSys{Windows}.}. If you want to test a beta version, just put the following files in a texmf folder that your system can find.
+\tkzname{\tkznameofpack} is on the server of the \tkzname{CTAN}\footnote{\tkzname{\tkznameofpack} is part of \NameDist{TeXLive} and \tkzname{tlmgr} allows you to install them. This package is also part of \NameDist{MiKTeX} under \NameSys{Windows}.}. If you want to test a beta version, just put the following files in a texmf folder that your system can find.
 You will have to check several points:
 
 \begin{itemize}\setlength{\itemsep}{5pt}
-\item  The \tkzNamePack{tkz-base} and \tkzNamePack{tkz-euclide} folders must be located on a path recognized by \tkzname{latex}.
-\item  The \tkzNamePack{xfp}\footnote{\tkzNamePack{xfp} replaces \tkzNamePack{fp}.}, \tkzNamePack{numprint} and \tkzNamePack{tikz 3.00} must be installed as they are mandatory, for the proper functioning of \tkzNamePack{tkz-euclide}.
-\item This documentation and all examples were obtained with \tkzname{lualatex-dev} but \tkzname{pdflatex} should be suitable.
+\item  The \tkzname{\tkznameofpack} folder must be located on a path recognized by \tkzname{latex}.
+\item  The  \tkzname{\tkznameofpack} uses \tkzNamePack{xfp}.
+\item This documentation and all examples were obtained with \tkzname{lualatex} but \tkzname{pdflatex} or \tkzname{xelatex} should be suitable.
 \end{itemize}
 
-\subsection{List of folder files \tkzname{tkzbase}  and \tkzname{tkzeuclide}}
-
-In the folder \tkzname{base}:
-
-\begin{itemize}
-\item  \tkzname{tkz-base.cfg}
-\item  \tkzname{tkz-base.sty}
-\item  \tkzname{tkz-lib-marks.tex}
-\item  \tkzname{tkz-obj-axes.tex}
-\item  \tkzname{tkz-obj-grids.tex}
-\item  \tkzname{tkz-obj-marks.tex}
-\item  \tkzname{tkz-obj-points.tex}
-\item  \tkzname{tkz-obj-rep.tex}
-\item  \tkzname{tkz-tools-arith.tex}
-\item  \tkzname{tkz-tools-base.tex}
-\item  \tkzname{tkz-tools-BB.tex}
-\item  \tkzname{tkz-tools-misc.tex}
-\item  \tkzname{tkz-tools-modules.tex}
-\item  \tkzname{tkz-tools-print.tex}
-\item  \tkzname{tkz-tools-text.tex}
-\item  \tkzname{tkz-tools-utilities.tex}
-\end{itemize}
-
-In the folder \tkzname{euclide}:
-
-\begin{itemize}
-\item   \tkzname{tkz-euclide.sty}
-\item   \tkzname{tkz-obj-eu-angles.tex}
-\item   \tkzname{tkz-obj-eu-arcs.tex}
-\item   \tkzname{tkz-obj-eu-circles.tex}
-\item   \tkzname{tkz-obj-eu-compass.tex}
-\item   \tkzname{tkz-obj-eu-draw-circles.tex}
-\item   \tkzname{tkz-obj-eu-draw-lines.tex}
-\item   \tkzname{tkz-obj-eu-draw-polygons.tex}
-\item   \tkzname{tkz-obj-eu-draw-triangles.tex}
-\item   \tkzname{tkz-obj-eu-lines.tex}
-\item   \tkzname{tkz-obj-eu-points-by.tex}
-\item   \tkzname{tkz-obj-eu-points-rnd.tex}
-\item   \tkzname{tkz-obj-eu-points-with.tex}
-\item   \tkzname{tkz-obj-eu-points.tex}
-\item   \tkzname{tkz-obj-eu-polygons.tex}
-\item   \tkzname{tkz-obj-eu-protractor.tex}
-\item   \tkzname{tkz-obj-eu-sectors.tex}
-\item   \tkzname{tkz-obj-eu-show.tex}
-\item   \tkzname{tkz-obj-eu-triangles.tex}
-\item   \tkzname{tkz-tools-angles.tex}
-\item   \tkzname{tkz-tools-intersections.tex}
-\item   \tkzname{tkz-tools-math.tex}
-\end{itemize}
-\tkzHandBomb\ Now \tkzname{tkz-euclide} loads all the files. 
-\endinput
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-intersec.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-intersec.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-intersec.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -43,16 +43,16 @@
 options            & default & definition                         \\ 
 \midrule
 \TOline{N}         {N}    { (O,C) determines the circle}
-\TOline{R}         {N}    { (O, 1 cm) or (O, 120 pt)}  
+\TOline{R}         {N}    { (O, 1 ) unit 1 cm}  
 \TOline{with nodes}{N}    { (O,C,D) CD is a radius}  
 \bottomrule
 \end{tabular}
 
 \medskip   
-The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file.
+The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file. \tkzname{with nodes} vous évite de calculer le rayon qui est la longueur de $[CD]$.
 \end{NewMacroBox}
 
-\subsubsection{Simple example of a line-circle intersection}
+\subsubsection{Line-circle intersection}
 
 In the following example, the drawing of the circle uses two points and the intersection of the straight line and the circle uses two pairs of points:
 
@@ -72,6 +72,53 @@
 \end{tikzpicture} 
 \end{tkzexample}
 
+
+\subsubsection{Line-circle intersection in Sangaku}
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[scale=1]
+   \def\ORadius{6}
+   \def\OORadius{4}
+   \pgfmathparse{(2*(\ORadius-\OORadius))/(\ORadius/\OORadius+1)}%
+   \let\OOORadius\pgfmathresult%
+   \pgfmathparse{\ORadius-\OOORadius}%
+   \let\OOOORadius\pgfmathresult%
+   \pgfmathparse{2*\OORadius-\ORadius}%
+   \let\XA\pgfmathresult%
+   \tkzDefPoint["$O$" below left](0,0){O}
+   \ifdim\XA pt  =  0pt\relax%
+       \tkzDefPoint["$A$"  below right](\XA,0){A}
+   \else
+       \tkzDefPoint["$A$"  below left](\XA,0){A}
+   \fi
+   \tkzDefPoint["$D$"  below right](\OORadius,0){D}
+   \tkzDefPoint["$X$"  below left](-\ORadius,0){X}
+   \tkzDefPoint["$B$"  below right](\ORadius,0){B}
+   \tkzDefPoint["$O_2$" below left](\OORadius-\ORadius,0){O2}
+   \tkzDefLine[mediator](A,B)             \tkzGetPoints{mr}{ml}
+   \tkzInterLC[R](D,mr)(O,\ORadius)    \tkzGetPoints{C}{E}
+   \tkzDefLine[orthogonal=through A](X,A) \tkzGetPoint{pr}
+   \ifdim\XA pt < 0 pt\relax
+     \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O4}{O3}
+   \else
+   \ifdim\XA pt = 0pt\relax
+     \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O4}{O3}
+   \else
+     \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O3}{O4}
+   \fi
+   \fi
+   \tkzDefPointBy[projection=onto A--C](O3) \tkzGetPoint{H}
+   \tkzDrawCircles[R](O,{\ORadius} O2,{\OORadius} O3,{\OOORadius})
+   \tkzDrawSegments[dashed](O,O3 C,D O3,A O3,H)
+   \tkzDrawSegments(X,B A,C B,C)
+   \tkzMarkSegments[mark=s|](D,B D,A)
+   \tkzLabelPoints[right](O3,H)
+   \tkzLabelPoint[above right](C){$C$}
+   \tkzMarkRightAngles[fill=gray!30](X,D,C X,A,O3 A,H,O3)
+   \tkzDrawPoints(A,B,C,D,X,O,O2,O3,H)
+  \end{tikzpicture}
+\end{tkzexample}
+
+
 \subsubsection{More complex example of a line-circle intersection}
 Figure from  \url{http://gogeometry.com/problem/p190_tangent_circle}
 
@@ -81,21 +128,20 @@
   \tkzDefPoint(8,0){B}
   \tkzDefMidPoint(A,B)  
   \tkzGetPoint{O}
-  \tkzDrawCircle(O,B)
   \tkzDefMidPoint(O,B)  
   \tkzGetPoint{O'}
-  \tkzDrawCircle(O',B)
   \tkzDefTangent[from=A](O',B) 
   \tkzGetSecondPoint{E}
   \tkzInterLC(A,E)(O,B)     
   \tkzGetSecondPoint{D}
   \tkzDefPointBy[projection=onto A--B](D)  
-   \tkzGetPoint{F}
-  \tkzMarkRightAngle(D,F,B)
+  \tkzGetPoint{F}
+  \tkzDrawCircles(O,B O',B)
   \tkzDrawSegments(A,D A,B D,F) 
   \tkzDrawSegments[color=red,line width=1pt,
       opacity=.4](A,O F,B)
   \tkzDrawPoints(A,B,O,O',E,D) 
+  \tkzMarkRightAngle(D,F,B)
   \tkzLabelPoints(A,B,O,O',E,D) 
 \end{tikzpicture}
 \end{tkzexample}
@@ -108,16 +154,15 @@
   \tkzDefPoint(0,8){A}  \tkzDefPoint(8,0){B}
   \tkzDefPoint(8,8){C}  \tkzDefPoint(4,4){I}
   \tkzDefPoint(2,7){E}  \tkzDefPoint(6,4){F}
-  \tkzDrawCircle[R](I,4 cm)
-  \tkzInterLC[R](A,C)(I,4 cm)  \tkzGetPoints{I1}{I2}
-  \tkzInterLC[R](B,C)(I,4 cm)  \tkzGetPoints{J1}{J2}
-  \tkzInterLC[R](A,B)(I,4 cm)  \tkzGetPoints{K1}{K2}
+  \tkzInterLC[R](A,C)(I,4)  \tkzGetPoints{I1}{I2}
+  \tkzInterLC[R](B,C)(I,4)  \tkzGetPoints{J1}{J2}
+  \tkzInterLC[R](A,B)(I,4)  \tkzGetPoints{K1}{K2}
+  \tkzInterLC[R](E,F)(I,4)  \tkzGetPoints{I2}{J2}
+  \tkzDrawCircle[R](I,4)
   \tkzDrawPoints[color=red](I1,J1,K1,K2)
-  \tkzDrawLines(A,B B,C A,C)
-  \tkzInterLC[R](E,F)(I,4 cm)  \tkzGetPoints{I2}{J2}
+  \tkzDrawLines(A,B B,C A,C I2,J2)
   \tkzDrawPoints[color=blue](E,F)
   \tkzDrawPoints[color=red](I2,J2)
-  \tkzDrawLine(I2,J2)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -126,23 +171,23 @@
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.25]
-  \tkzDefPoint(0,1){J} 
-  \tkzDefPoint(0,0){O}
-  \tkzDrawArc[R,line width=1pt,color=red](J,2.5 cm)(180,0)
-  \foreach \i in {0,-5,-10,...,-85,-90}{
-    \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
-     \tkzDrawSegment[color=orange](J,P)
-     \tkzInterLC[R](P,J)(O,1 cm) 
-     \tkzGetPoints{M}{N}
-     \tkzDrawPoints[red](N)
-     }
-  \foreach \i in {-90,-95,...,-175,-180}{
-     \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
-     \tkzDrawSegment[color=orange](J,P)
-     \tkzInterLC[R](P,J)(O,1 cm) 
-     \tkzGetPoints{M}{N}
-     \tkzDrawPoints[red](M)
-     }
+\tkzDefPoint(0,1){J}
+\tkzDefPoint(0,0){O}
+\tkzDrawArc[R,line width=1pt,color=red](J,2.5)(180,0)
+\foreach \i in {0,-5,-10,...,-85,-90}{
+  \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
+   \tkzDrawSegment[color=orange](J,P)
+   \tkzInterLC[R](P,J)(O,1)
+   \tkzGetPoints{M}{N}
+   \tkzDrawPoints[red](N)
+   }
+\foreach \i in {-90,-95,...,-175,-180}{
+   \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
+   \tkzDrawSegment[color=orange](J,P)
+   \tkzInterLC[R](P,J)(O,1)
+   \tkzGetPoints{M}{N}
+   \tkzDrawPoints[red](M)
+   }
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -151,7 +196,7 @@
 
 The radius measurement may be the result of a calculation that is not done within the intersection macro, but before.
 A length can be calculated in several ways. It is possible of course,
- to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$. 
+ to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$.
 
 \subsubsection{Calculation of radius example 2}
 With \tkzname{xfp} and \tkzcname{fpeval}:
@@ -161,10 +206,11 @@
   \tkzDefPoint(2,2){A}
   \tkzDefPoint(5,4){B}
   \tkzDefPoint(4,4){O}
-  \edef\tkzLen{\fpeval{0.0002/0.0001}}
-  \tkzDrawCircle[R](O,\tkzLen cm)
-  \tkzInterLC[R](A,B)(O, \tkzLen cm)
+  \pgfmathsetmacro\tkzLen{\fpeval{0.0002/0.0001}}
+ % or \edef\tkzLen{\fpeval{0.0002/0.0001}}
+  \tkzInterLC[R](A,B)(O, \tkzLen)
   \tkzGetPoints{I}{J}
+  \tkzDrawCircle[R](O,\tkzLen)
   \tkzDrawPoints[color=blue](A,B)
   \tkzDrawPoints[color=red](I,J)
   \tkzDrawLine(I,J)
@@ -171,54 +217,16 @@
 \end{tikzpicture}
   \end{tkzexample}
 
-\subsubsection{Calculation of radius example 3}
- With \TEX\ and \tkzcname{tkzLength}.
 
- This dimension was created with \tkzcname{newdimen}. 2 cm has been transformed into points. It is of course possible to use \TEX\ to calculate.
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-	\tkzDefPoints{2/2/A,5/4/B,4/4/0}
-  \tkzLength=2cm
-  \tkzDrawCircle[R](O,\tkzLength)
-  \tkzInterLC[R](A,B)(O,\tkzLength)
-  \tkzGetPoints{I}{J}
-  \tkzDrawPoints[color=blue](A,B)
-  \tkzDrawPoints[color=red](I,J)
-  \tkzDrawLine(I,J)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Squares in half a disc}
-A Sangaku look! It is a question of proving that one can inscribe in a half-disc, two squares, and to determine the length of their respective sides according to the radius.
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoints{0/0/A,8/0/B,4/0/I}
- \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
- \tkzInterLC(I,C)(I,B)\tkzGetPoints{E'}{E}
- \tkzInterLC(I,D)(I,B)\tkzGetPoints{F'}{F}
- \tkzDefPointsBy[projection = onto A--B](E,F){H,G}
- \tkzDefPointsBy[symmetry   = center H](I){J}
- \tkzDefSquare(H,J)\tkzGetPoints{K}{L}
- \tkzDrawSector[fill=brown!30](I,B)(A)
- \tkzFillPolygon[color=red!40](H,E,F,G)
- \tkzFillPolygon[color=blue!40](H,J,K,L)
- \tkzDrawPolySeg[color=red](H,E,F,G) 
- \tkzDrawPolySeg[color=red](J,K,L)
- \tkzDrawPoints(E,G,H,F,J,K,L)
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsubsection{Option "with nodes"}
 \begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}[scale=.75]
 \tkzDefPoints{0/0/A,4/0/B,1/1/D,2/0/E}
-\tkzDefTriangle[equilateral](A,B) 
+\tkzDefTriangle[equilateral](A,B)
 \tkzGetPoint{C}
+\tkzInterLC[with nodes](D,E)(C,A,B)
+\tkzGetPoints{F}{G}
 \tkzDrawCircle(C,A)
-\tkzInterLC[with nodes](D,E)(C,A,B) 
-\tkzGetPoints{F}{G}
 \tkzDrawPolygon(A,B,C)
 \tkzDrawPoints(A,...,G)
 \tkzDrawLine(F,G)
@@ -251,8 +259,7 @@
  \tkzDefPoint(5,1){B}
  \tkzInterCC(A,B)(B,A)\tkzGetPoints{C}{D}
  \tkzDrawPoint[color=black](C)
- \tkzDrawCircle[dashed](A,B)
- \tkzDrawCircle[dashed](B,A)
+ \tkzDrawCircles(A,B B,A)
  \tkzCompass[color=red](A,C)
  \tkzCompass[color=red](B,C)
  \tkzDrawPolygon(A,B,C)
@@ -267,12 +274,11 @@
 \begin{tikzpicture}[scale=.5]
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(2,2){B}
-  \tkzDrawCircle[color=blue](B,A)
-  \tkzDrawCircle[color=blue](A,B)
   \tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N}
-  \tkzDrawLine(A,B)
+  \tkzDrawCircles[color=teal](A,B B,A)
+  \tkzDrawCircle[color=teal](A,B)
   \tkzDrawPoints(M,N)
-  \tkzDrawLine[color=red](M,N)
+  \tkzDrawLine[new](M,N)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -281,14 +287,13 @@
 \begin{tikzpicture}[rotate=120,scale=.75]
  \tkzDefPoint(1,2){A}
  \tkzDefPoint(4,0){B}
- \tkzInterCC[R](A,4cm)(B,4cm)
+ \tkzInterCC[R](A,4)(B,4)
  \tkzGetPoints{C}{D}
- \tkzDrawCircle[R,dashed](A,4 cm)
- \tkzDrawCircle[R,dashed](B,4 cm)
- \tkzCompass[color=red](A,C)
- \tkzCompass[color=red](B,C)
+ \tkzDrawCircles[R,dashed](A,4 B,4)
+ \tkzCompass[new](A,C)
+ \tkzCompass[new](B,C)
  \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints[color=blue](A,B,C)
+ \tkzDrawPoints(A,B,C)
  \tkzMarkSegments[mark=s|](A,C B,C)
  \tkzLabelPoints[](A,B)
  \tkzLabelPoint[above](C){$C$}
@@ -298,60 +303,100 @@
 
 \subsubsection{Segment trisection}
  The idea here is to divide a segment with a ruler and a compass into three segments of equal length.
- 
-\begin{tkzexample}[latex=9cm,small]
-\begin{tikzpicture}[scale=.8]
- \tkzDefPoint(0,0){A}  
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A}
  \tkzDefPoint(3,2){B}
- \tkzInterCC(A,B)(B,A) 
- \tkzGetPoints{C}{D}
- \tkzInterCC(D,B)(B,A) 
- \tkzGetPoints{A}{E}
- \tkzInterCC(D,B)(A,B) 
- \tkzGetPoints{F}{B}
- \tkzInterLC(E,F)(F,A) 
- \tkzGetPoints{D}{G}
- \tkzInterLL(A,G)(B,E) 
- \tkzGetPoint{O}
- \tkzInterLL(O,D)(A,B) 
- \tkzGetPoint{J}
- \tkzInterLL(O,F)(A,B) 
- \tkzGetPoint{I}
- \tkzDrawCircle(D,A)    
- \tkzDrawCircle(A,B)
- \tkzDrawCircle(B,A)    
- \tkzDrawCircle(F,A)
- \tkzDrawSegments[color=red](O,G
+ \tkzInterCC(A,B)(B,A)  \tkzGetPoints{C}{D}
+ \tkzInterCC(D,B)(B,A)  \tkzGetPoints{A}{E}
+ \tkzInterCC(D,B)(A,B)  \tkzGetPoints{F}{B}
+ \tkzInterLC(E,F)(F,A)  \tkzGetPoints{D}{G}
+ \tkzInterLL(A,G)(B,E)  \tkzGetPoint{O}
+ \tkzInterLL(O,D)(A,B)  \tkzGetPoint{J}
+ \tkzInterLL(O,F)(A,B)  \tkzGetPoint{I}
+ \tkzDrawCircles(D,A A,B B,A F,A)
+ \tkzDrawSegments[new](O,G
   O,B O,D O,F)
- \tkzDrawPoints(A,B,D,E,F,G,I,J)  
+ \tkzDrawPoints(A,B,D,E,F,G,I,J)
  \tkzLabelPoints(A,B,D,E,F,G,I,J)
- \tkzDrawSegments[blue](A,B B,D A,D%
+ \tkzDrawSegments(A,B B,D A,D%
   A,F F,G E,G B,E)
  \tkzMarkSegments[mark=s|](A,I I,J J,B)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{With the option \tkzimp{with nodes}}
+\subsubsection{With the option "\tkzimp{with nodes}"}
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[scale=.5]
  \tkzDefPoints{0/0/a,0/5/B,5/0/C}
  \tkzDefPoint(54:5){F}
- \tkzDrawCircle[color=gray](A,C) 
- \tkzInterCC[with nodes](A,A,C)(C,B,F) 
+ \tkzInterCC[with nodes](A,A,C)(C,B,F)
  \tkzGetPoints{a}{e}
  \tkzInterCC(A,C)(a,e) \tkzGetFirstPoint{b}
  \tkzInterCC(A,C)(b,a) \tkzGetFirstPoint{c}
  \tkzInterCC(A,C)(c,b) \tkzGetFirstPoint{d}
- \tkzDrawPoints(a,b,c,d,e)  
- \tkzDrawPolygon[color=red](a,b,c,d,e)
+ \tkzDrawCircle[new](A,C)
+ \tkzDrawPoints(a,b,c,d,e)
+ \tkzDrawPolygon(a,b,c,d,e)
  \foreach \vertex/\num in {a/36,b/108,c/180,
                           d/252,e/324}{%
  \tkzDrawPoint(\vertex)
- \tkzLabelPoint[label=\num:$\vertex$](\vertex){} 
- \tkzDrawSegment[color=gray,style=dashed](A,\vertex)
- }  
+ \tkzLabelPoint[label=\num:$\vertex$](\vertex){}
+ \tkzDrawSegment(A,\vertex)
+ }
 \end{tikzpicture}
 \end{tkzexample}
 
- \endinput 
+\subsubsection{Mix of intersections}
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}[scale = .75]
+  \tkzDefPoint(2,2){A}
+  \tkzDefPoint(0,0){B}
+  \tkzDefPoint(-2,2){C}
+  \tkzDefPoint(0,4){D}
+  \tkzDefPoint(4,2){E}
+  \tkzCircumCenter(A,B,C)\tkzGetPoint{O}
+  \tkzInterCC[R](O,2)(D,2) \tkzGetPoints{M1}{M2}
+  \tkzInterCC(O,A)(D,O) \tkzGetPoints{1}{2}
+  \tkzInterLC(A,E)(B,M1) \tkzGetSecondPoint{M3}
+  \tkzInterLC(O,C)(M3,D) \tkzGetSecondPoint{L}
+  \tkzDrawSegments(C,L)
+  \tkzDrawPoints(A,B,C,D,E,M1,M2,M3,O,L)
+  \tkzDrawSegments(O,E)
+  \tkzDrawSegments[dashed](C,A D,B)
+  \tkzDrawPoint(O)
+  \tkzDrawCircles[dashed](M3,D B,M2 D,O)
+  \tkzDrawCircle(O,A)
+  \tkzLabelPoints(A,B,C,D,E,M1,M2,M3,O,L)
+\end{tikzpicture}
+\end{tkzexample}
 
+\subsubsection{An oval}
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[scale=0.4]
+    \tkzDefPoint(-4,0){I}
+    \tkzDefPoint(4,0){J}
+    \tkzDefPoint(0,0){O} 
+    \tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H}
+    \tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G} 
+    \tkzInterLL(I,K)(J,H) \tkzGetPoint{M}
+    \tkzInterLL(I,G)(J,L) \tkzGetPoint{N}
+    \tkzDefPointsBy[symmetry=center J](L,H){D,E} 
+    \tkzDefPointsBy[symmetry=center I](G,K){C,F}
+    \begin{scope}[line style/.style = {very thin,teal}]
+      \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L) 
+      \tkzDrawLines[add=.5 and .5](I,J) 
+      \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N)
+      \tkzDrawCircles[R](O,4 I,4 J,4) 
+      \tkzDrawArc(N,D)(C) 
+      \tkzDrawArc(M,F)(E) 
+      \tkzDrawArc(J,E)(D) 
+      \tkzDrawArc(I,C)(F) 
+    \end{scope}
+    \tkzLabelPoints(H,L,K,G,I,J,D,E,C,F,M,N)      
+  \end{tikzpicture} 
+\end{tkzexample}
+
+\endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-labelling.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-labelling.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-labelling.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,437 @@
+\section{Labelling} 
+\subsection{Label for a point} 
+\hypertarget{tlp}{}
+It is possible to add several labels at the same point by using this macro several times.  
+
+
+\begin{NewMacroBox}{tkzLabelPoint}{\oarg{local options}\parg{point}\var{label}}%
+\begin{tabular}{lll}%
+arguments &  example  &                  \\ 
+\midrule
+\TAline{point}{\tkzcname{tkzLabelPoint(A)\{\$A\_1\$\}}}{}
+options  & default & definition\\
+\midrule
+\TOline{TikZ options}{}{colour, position etc.}
+\bottomrule
+\end{tabular}
+
+\medskip
+Optionally, we can use any style of \TIKZ, especially placement with above, right, dots...
+\end{NewMacroBox}
+
+\subsubsection{Example with \tkzcname{tkzLabelPoint}} 
+\begin{tkzexample}[latex=7cm,small]  
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(4,0){B}
+  \tkzDefPoint(0,3){C}
+  \tkzDrawSegments(A,B B,C C,A)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoint[left,red](A){$A$}
+  \tkzLabelPoint[right,blue](B){$B$}
+  \tkzLabelPoint[above,purple](C){$C$}  
+\end{tikzpicture} 
+\end{tkzexample} 
+
+\subsubsection{Label and reference}
+ The reference of a point is the object that allows to use the point, the label is the name of the point that will be displayed.
+ 
+\begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+    \tkzDefPoint(2,0){A} 
+    \tkzDrawPoint(A)
+    \tkzLabelPoint[above](A){$A_1$}  
+  \end{tikzpicture}
+ \end{tkzexample}
+ 
+\subsection{Add labels to points \tkzcname{tkzLabelPoints}}
+It is possible to place several labels quickly when the point references are identical to the labels and when the labels are placed in the same way in relation to the points. By default, \tkzname{below right} is chosen.
+\hypertarget{tlps}{}  
+
+\begin{NewMacroBox}{tkzLabelPoints}{\oarg{local options}\parg{$A_1,A_2,...$}}%
+\begin{tabular}{lll}
+arguments &  example & result                 \\ 
+\midrule
+\TAline{list of points}{\tkzcname{tkzLabelPoints(A,B,C)}}{Display of $A$, $B$ and $C$}
+\bottomrule
+\end{tabular}
+
+\medskip
+This macro reduces the number of lines of code, but it is not obvious that all points need the same label positioning.
+\end{NewMacroBox}
+
+\subsubsection{Example with \tkzcname{tkzLabelPoints}}   
+\begin{tkzexample}[latex = 6cm,small]  
+\begin{tikzpicture}
+  \tkzDefPoint(2,3){A}
+  \tkzDefShiftPoint[A](30:2){B}
+  \tkzDefShiftPoint[A](30:5){C}
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(A,B,C) 
+\end{tikzpicture} 
+\end{tkzexample}
+
+%<--------------------------------------------------------------------------->
+%                       tkzAutoLabelPoints
+%<--------------------------------------------------------------------------->
+\subsection{Automatic position of labels \tkzcname{tkzAutoLabelPoints}}
+The label of a point is placed in a direction defined by a center and a point \tkzname{center}. The distance to the point is determined by a percentage of the distance between the center and the point. This percentage is given by \tkzname{dist}.
+\begin{NewMacroBox}{tkzLabelPoints}{\oarg{local options}\parg{$A_1,A_2,...$}}%
+\begin{tabular}{lll}
+arguments &  example & result                 \\ 
+\midrule
+\TAline{list of points}{\tkzcname{tkzLabelPoint(A,B,C)}}{Display of $A$, $B$ and $C$}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}} 
+Here the points are positioned relative to the center of gravity of $A,B,C \text{ and } O$.
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}[scale=1.25]
+  \tkzDefPoint(2,1){O}
+  \tkzDefRandPointOn[circle=center O radius 1.5]
+  \tkzGetPoint{A}
+  \tkzDrawCircle(O,A) 
+  \tkzDefPointBy[rotation=center O angle 100](A)
+  \tkzGetPoint{C}
+  \tkzDefPointBy[rotation=center O angle 78](A)
+  \tkzGetPoint{B}
+  \tkzDrawPoints(O,A,B,C) 
+  \tkzDrawSegments(C,B B,A A,O O,C)
+  \tkzDefCentroid(A,B,C,O)
+  \tkzDrawPoint(tkzPointResult)
+  \tkzAutoLabelPoints[center=tkzPointResult,
+                     dist=.3,red](O,A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}} 
+This time the reference is $O$ and the distance is by default $0.15$.
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}[scale=1.25]
+ \tkzDefPoint(2,1){O}
+ \tkzDefRandPointOn[circle=center O radius 1.5]
+ \tkzGetPoint{A}
+ \tkzDrawCircle(O,A) 
+ \tkzDefPointBy[rotation=center O angle 100](A)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation=center O angle 78](A)
+ \tkzGetPoint{B}
+ \tkzDrawPoints(O,A,B,C) 
+ \tkzDrawSegments(C,B B,A A,O O,C)
+ \tkzAutoLabelPoints[center=O,red](A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\section{Label for a segment} 
+\hypertarget{tls}{}  
+\begin{NewMacroBox}{tkzLabelSegment}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
+This macro allows you to place a label along a segment or a line. The options are those of \TIKZ\ for example \tkzname{pos}.
+
+\medskip
+\begin{tabular}{lll}%%
+argument    & example & definition    \\
+\midrule
+\TAline{label}{\tkzcname{tkzLabelSegment(A,B)\{$5$\}}}{label text} 
+\TAline{(pt1,pt2)}{(A,B)}{label along $[AB]$} 
+\bottomrule
+\end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+options  & default & definition    \\
+\midrule
+\TOline{pos}{.5}{label's position} 
+\end{tabular}
+\end{NewMacroBox}  
+
+\subsubsection{First example}      
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(6,0){B}
+\tkzDrawSegment(A,B)
+\tkzLabelSegment[above,pos=.8](A,B){$a$}
+\tkzLabelSegment[below,pos=.2](A,B){$4$}
+\end{tikzpicture} 
+\end{tkzexample}  
+
+\subsubsection{Example : blackboard}  
+\begin{tkzexample}[latex=6cm,small]
+\tikzstyle{background rectangle}=[fill=black]
+\begin{tikzpicture}[show background rectangle,scale=.4]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(1,0){I}
+  \tkzDefPoint(10,0){A}
+  \tkzDefPointWith[orthogonal normed,K=4](I,A)
+   \tkzGetPoint{H}
+  \tkzDefMidPoint(O,A) \tkzGetPoint{M}
+  \tkzInterLC(I,H)(M,A)\tkzGetPoints{C}{B}   
+  \tkzDrawSegments[color=white,line width=1pt](I,H O,A)
+  \tkzDrawPoints[color=white](O,I,A,B,M) 
+  \tkzMarkRightAngle[color=white,line width=1pt](A,I,B) 
+  \tkzDrawArc[color=white,line width=1pt,
+              style=dashed](M,A)(O)    
+  \tkzLabelSegment[white,right=1ex,pos=.5](I,B){$\sqrt{a}$} 
+  \tkzLabelSegment[white,below=1ex,pos=.5](O,I){$1$}   
+  \tkzLabelSegment[pos=.6,white,below=1ex](I,A){$a$} 
+\end{tikzpicture} 
+\end{tkzexample}
+
+\subsubsection{Labels and option : \tkzname{swap}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[rotate=-60]
+\tkzSetUpStyle[red,auto]{label seg style}
+\tkzDefPoint(0,1){A}
+\tkzDefPoint(2,4){C}
+\tkzDefPointWith[orthogonal normed,K=7](C,A)
+\tkzGetPoint{B}
+\tkzDefSpcTriangle[orthic](A,B,C){N,O,P}
+\tkzDefTriangleCenter[circum](A,B,C)
+\tkzGetPoint{O}
+\tkzDrawPolygon[green!60!black](A,B,C)
+\tkzDrawLine[dashed,color=magenta](C,P)
+\tkzLabelSegment(B,A){$c$}
+\tkzLabelSegment[swap](B,C){$a$}
+\tkzLabelSegment[swap](C,A){$b$}
+\tkzMarkAngles[size=1,
+     color=cyan,mark=|](C,B,A A,C,P)
+\tkzMarkAngle[size=0.75,
+     color=orange,mark=||](P,C,B)
+\tkzMarkAngle[size=0.75,
+      color=orange,mark=||](B,A,C)
+\tkzMarkRightAngles[german](A,C,B B,P,C)
+\tkzAutoLabelPoints[center = O,dist= .1](A,B,C)
+ \tkzLabelPoint[below left](P){$P$}
+ \end{tikzpicture} 
+\end{tkzexample}
+
+\hypertarget{tlss}{} 
+ \begin{NewMacroBox}{tkzLabelSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
+The arguments are a two-point couple list. The styles of \TIKZ\ are available for plotting.
+\end{NewMacroBox} 
+ 
+\subsubsection{Labels for an isosceles triangle}      
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
+ \tkzDrawSegments(O,A A,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawLine(O,B)   
+ \tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
+\end{tikzpicture}
+\end{tkzexample}  
+
+
+\section{Add labels on a straight line \tkzcname{tkzLabelLine}}% 
+
+\begin{NewMacroBox}{tkzLabelLine}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
+\begin{tabular}{lll}%
+arguments &  default & definition   \\ 
+\midrule
+\TAline{label}{}{\tkzcname{tkzLabelLine(A,B)}\{\$\tkzcname{Delta}\$\}}
+\bottomrule
+\end{tabular}
+
+\begin{tabular}{lll}%
+options             & default & definition   \\ 
+\midrule
+\TOline{pos}{.5}{\tkzname{pos} is an option for \TIKZ, but essential in this case\dots} 
+\end{tabular}
+
+As an option, and in addition to the \tkzname{pos}, you can use all styles of \TIKZ, especially the placement with \tkzname{above}, \tkzname{right}, \dots
+\end{NewMacroBox}
+
+\subsubsection{Example with \tkzcname{tkzLabelLine}}
+An important option is \tkzname{pos}, it's the one that allows you to place the label along the right. The value of \tkzname{pos} can be greater than 1 or negative.
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+   \tkzDefPoints{0/0/A,3/0/B,1/1/C}
+   \tkzDefLine[perpendicular=through C,K=-1](A,B)
+   \tkzGetPoint{c}
+   \tkzDrawLines(A,B C,c)
+   \tkzLabelLine[pos=1.25,blue,right](C,c){$(\delta)$} 
+   \tkzLabelLine[pos=-0.25,red,left](C,c){again $(\delta)$} 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Label at an angle : \tkzcname{tkzLabelAngle}}
+
+\begin{NewMacroBox}{tkzLabelAngle}{\oarg{local options}\parg{A,O,B}}%
+There is only one option, dist (with or without unit), which can be replaced by the TikZ's pos option (without unit for the latter). By default, the value is in centimeters.
+
+\begin{tabular}{lll}%
+  \toprule
+options             & default & definition                        \\ 
+\midrule
+\TOline{pos}{1}{ or dist, controls the distance from the top to the label.}
+\bottomrule
+\end{tabular} 
+
+\medskip 
+It is possible to move the label with all TikZ options : rotate, shift, below, etc.
+\end{NewMacroBox}  
+
+\subsubsection{Example author js bibra stackexchange} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoint(0,0){C}
+  \tkzDefPoint(20:9){B}
+  \tkzDefPoint(80:5){A}
+  \tkzDefPointsBy[projection=onto B--C](A){a}
+  \tkzDrawPolygon[thick,fill=yellow!15](A,B,C)
+  \tkzDrawSegment[dashed, red](A,a)   
+  \tkzDrawSegment[style=red, dashed, 
+  dim={$10$,15pt,midway,font=\scriptsize,
+   rotate=90}](A,a) 
+  \tkzMarkAngle(B,C,A)
+  \tkzMarkRightAngle(A,a,C)    
+  \tkzMarkRightAngle(C,A,B)
+  \tkzFillAngle[fill=blue!20, opacity=0.5](B,C,A)
+  \tkzFillAngle[fill=red!20, opacity=0.5](A,B,C)
+  \tkzLabelAngle[pos=1.25](A,B,C){$\beta$}
+  \tkzLabelAngle[pos=1.25](B,C,A){$\alpha$}
+  \tkzMarkAngle(A,B,C)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(B,C)
+  \tkzLabelPoints[above](A)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{Example with \tkzname{pos}} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+  \tkzMarkAngle[size = 4,mark = ||,
+      arc=ll,color = red](A,O,B)%     
+  \tkzDrawLines(O,A O,B)
+  \tkzDrawPoints(O,A,B)
+  \tkzLabelAngle[pos=2,draw,circle,
+      fill=blue!10](A,O,B){$\alpha$} 
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[rotate=30]
+  \tkzDefPoint(2,1){S} 
+  \tkzDefPoint(7,3){T}
+  \tkzDefPointBy[rotation=center S angle 60](T)
+  \tkzGetPoint{P} 
+  \tkzDefLine[bisector,normed](T,S,P)
+  \tkzGetPoint{s}
+  \tkzDrawPoints(S,T,P)   
+  \tkzDrawPolygon[color=blue](S,T,P) 
+  \tkzDrawLine[dashed,color=blue,add=0 and 3](S,s)  
+  \tkzLabelPoint[above right](P){$P$}
+  \tkzLabelPoints(S,T)
+  \tkzMarkAngle[size = 1.8,mark = |,arc=ll,
+                    color = blue](T,S,P)
+  \tkzMarkAngle[size = 2.1,mark = |,arc=l,
+                    color = blue](T,S,s)
+  \tkzMarkAngle[size = 2.3,mark = |,arc=l,
+                    color = blue](s,S,P)  
+ \tkzLabelAngle[pos = 1.5](T,S,P){$60^{\circ}$}%    
+ \tkzLabelAngles[pos = 2.7](T,S,s s,S,P){%
+                            $30^{\circ}$}%   
+\end{tikzpicture}
+\end{tkzexample}
+
+
+
+\begin{NewMacroBox}{tkzLabelAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
+With common options, there is a macro for multiple angles.
+\end{NewMacroBox}  
+
+It finally remains to be able to give a label to designate a circle and if several possibilities are offered, we will see here \tkzcname{tkzLabelCircle}.
+
+\subsection{Giving a label to a circle}
+\begin{NewMacroBox}{tkzLabelCircle}{\oarg{local options}\parg{A,B}\parg{angle}\marg{label}}%
+\begin{tabular}{lll}%
+options             & default & definition                         \\
+\midrule
+\TOline{radius} {radius}{circle characterized by two points defining a radius}
+\TOline{R} {radius}{circle characterized by a point and the measurement of a radius }
+\bottomrule
+\end{tabular} 
+
+\medskip
+You don't need to put \tkzname{radius} because that's the default option. We can use the styles from \TIKZ. The label is created and therefore "passed" between braces.
+\end{NewMacroBox} 
+
+\subsubsection{Example}  
+\begin{tkzexample}[latex=5cm,small] 
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(2,0){N}
+ \tkzDefPointBy[rotation=center O angle 50](N) 
+     \tkzGetPoint{M}
+ \tkzDefPointBy[rotation=center O angle -20](N) 
+      \tkzGetPoint{P}
+ \tkzDefPointBy[rotation=center O angle 125](N) 
+      \tkzGetPoint{P'}
+ \tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
+ \tkzDrawCircle(O,M) 
+ \tkzFillCircle[color=blue!10,opacity=.4](O,M) 
+ \tkzLabelCircle[R,draw,
+       text width=2cm,text centered](O,3)(-60)%
+          {The circle\\ $\mathcal{C}$}  
+ \tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)   
+\end{tikzpicture}      
+\end{tkzexample} 
+
+\subsubsection{Second example}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{2/3/A,5/-1/B}
+ \tkzDefPoint[label=below:$\mathcal{C}$,
+               shift={(2,3)}](-30:5.5){E}
+ \begin{scope}[shift=(A)]
+    \tkzDefPoint(30:5){C}
+ \end{scope}
+ \tkzDrawCircle(A,B)
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints[right](B,C)
+ \tkzLabelPoints[above](A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\section{Label for an arc} 
+\hypertarget{tls}{}  
+\begin{NewMacroBox}{tkzLabelArc}{\oarg{local options}\parg{pt1,pt2,pt3}\marg{label}}
+This macro allows you to place a label along an arc. The options are those of \TIKZ\ for example \tkzname{pos}.
+
+\medskip
+\begin{tabular}{lll}%%
+argument    & example & definition    \\
+\midrule
+\TAline{label}{\tkzcname{tkzLabelSegment(A,B)\{$5$\}}}{label text} 
+\TAline{(pt1,pt2,pt3)}{(O,A,B)}{label along the arc $\widearc{AB}$} 
+\bottomrule
+\end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+options  & default & definition    \\
+\midrule
+\TOline{pos}{.5}{label's position} 
+\end{tabular}
+\end{NewMacroBox}  
+
+\subsubsection{Label on arc}      
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}
+\tkzDefPoint(0,0){O}
+\pgfmathsetmacro\r{2}
+\tkzDefPoint(30:\r){A}
+\tkzDefPoint(85:\r){B}
+\tkzDrawCircle(O,A)
+\tkzDrawPoints(B,A,O)
+\tkzLabelArc[right=2pt](O,A,B){$\widearc{AB}$}
+\tkzLabelPoints(A,B,O)
+\end{tikzpicture}
+\end{tkzexample}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-labelling.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-lines.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-lines.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-lines.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -7,6 +7,7 @@
 
 \begin{NewMacroBox}{tkzDefLine}{\oarg{local options}\parg{pt1,pt2} or \parg{pt1,pt2,pt3}}%
 The argument is a list of two or three points. Depending on the case, the macro defines one or two points necessary to obtain the line sought. Either the macro \tkzcname{tkzGetPoint} or the macro \tkzcname{tkzGetPoints} must be used.
+I used the term "mediator" to designate the perpendicular bisector line at the middle of a line segment.
 
 \medskip
 \begin{tabular}{lll}%
@@ -21,7 +22,7 @@
 \begin{tabular}{lll}%
 \toprule
 options             & default & definition                         \\ 
-\TOline{mediator}{}{two points are defined} 
+\TOline{mediator}{}{perpendicular bisector of a line segment}  
 \TOline{perpendicular=through\dots}{mediator}{perpendicular to a straight line passing through a point} 
 \TOline{orthogonal=through\dots}{mediator}{see above }
 \TOline{parallel=through\dots}{mediator}{parallel to a straight line passing through a point}
@@ -39,7 +40,7 @@
  \tkzDefLine[mediator](A,B)          \tkzGetPoints{C}{D}
  \tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D}
  \tkzDefMidPoint(A,B)                \tkzGetPoint{I}
- \tkzFillPolygon[color=orange!30](A,C,B,D)
+ \tkzFillPolygon[color=teal!30](A,C,B,D)
  \tkzDrawSegments(A,B C,D)
  \tkzMarkRightAngle(B,I,C) 
  \tkzDrawSegments(D,B D,A)
@@ -54,7 +55,7 @@
  \tkzDefLine[bisector,normed](B,A,C) \tkzGetPoint{a}
  \tkzDrawLines[add= 0 and .5](A,B A,C)
  \tkzShowLine[bisector,gap=4,size=2,color=red](B,A,C)
- \tkzDrawLines[blue!50,dashed,add= 0 and 3](A,a)
+ \tkzDrawLines[new,dashed,add= 0 and 3](A,a)
 \end{tikzpicture}
 \end{tkzexample} 
 
@@ -108,7 +109,7 @@
  \foreach \ang in {5,10,...,360}{%
   \tkzDefPoint(\ang:4){M}
   \tkzDefLine[mediator](A,M) 
-  \tkzDrawLine[color=magenta,add= 3 and 3](tkzFirstPointResult,tkzSecondPointResult)}
+  \tkzDrawLine[color=teal,add= 3 and 3](tkzFirstPointResult,tkzSecondPointResult)}
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -146,7 +147,7 @@
 \begin{tikzpicture}[scale=.75]
   \tkzDefPoint(0,0){O}
   \tkzDefPoint(6,6){E}
-  \tkzDefRandPointOn[circle=center O radius 3cm]
+  \tkzDefRandPointOn[circle=center O radius 3]
   \tkzGetPoint{A}
   \tkzDrawSegment(O,A)
   \tkzDrawCircle(O,A)
@@ -153,26 +154,26 @@
   \tkzDefTangent[at=A](O)
   \tkzGetPoint{h}
   \tkzDrawLine[add = 4 and 3](A,h)
-  \tkzMarkRightAngle[fill=red!30](O,A,h)
+  \tkzMarkRightAngle[fill=teal!30](O,A,h)
 \end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Example of tangents passing through an external point } 
 \begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.8] 
+\begin{tikzpicture}[scale=.8]
   \tkzDefPoint(3,3){c}
-  \tkzDefPoint(6,3){a0}  
-  \tkzRadius=1 cm 
-  \tkzDrawCircle[R](c,\tkzRadius) 
+  \tkzDefPoint(6,3){a0}
+  \pgfmathsetmacro\R{1}
+  \tkzDrawCircle[R](c,\R)
   \foreach \an in {0,10,...,350}{
-     \tkzDefPointBy[rotation=center c angle \an](a0)  
-     \tkzGetPoint{a}  
-     \tkzDefTangent[from with R = a](c,\tkzRadius)  
-     \tkzGetPoints{e}{f} 
-     \tkzDrawLines[color=magenta](a,f a,e) 
-      \tkzDrawSegments(c,e c,f)
-      }%
-\end{tikzpicture} 
+     \tkzDefPointBy[rotation=center c angle \an](a0)
+     \tkzGetPoint{a}
+     \tkzDefTangent[from with R = a](c,\R)
+     \tkzGetPoints{e}{f}
+     \tkzDrawLines[color=teal](a,f a,e)
+     \tkzDrawSegments(c,e c,f)
+  }%
+\end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Example of Andrew Mertz}
@@ -183,8 +184,8 @@
  \tkzDrawCircle(C,R)
  \tkzDefTangent[from = A](C,R)  \tkzGetPoints{D}{E}
  \tkzDefTangent[from = B](C,R)  \tkzGetPoints{F}{G}
- \tkzDrawSector[fill=blue!80!black,opacity=0.5](A,D)(E)
- \tkzFillSector[color=red!80!black,opacity=0.5](B,F)(G)
+ \tkzDrawSector[fill=teal!20,opacity=0.5](A,D)(E)
+ \tkzFillSector[color=teal,opacity=0.5](B,F)(G)
  \tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I}
  \tkzDrawPoint[color=black](I)
  \end{tikzpicture}
@@ -191,23 +192,8 @@
 \end{tkzexample}
 \url{http://www.texample.net/tikz/examples/}  
 
-\subsubsection{Drawing a tangent option \tkzimp{from with R} and \tkzimp{at}}
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}[scale=.5] 
-  \tkzDefPoint(0,0){O}
-  \tkzDefRandPointOn[circle=center O radius 4cm]
-  \tkzGetPoint{A}
-  \tkzDefTangent[at=A](O)
-  \tkzGetPoint{h}
-  \tkzDrawSegments(O,A) 
-  \tkzDrawCircle(O,A) 
-  \tkzDrawLine[add = 1 and 1](A,h)
-  \tkzMarkRightAngle[fill=red!30](O,A,h)
-  \end{tikzpicture}
-\end{tkzexample}
-
 \subsubsection{Drawing a tangent option \tkzimp{from}}
-\begin{tkzexample}[latex=5cm,small]
+\begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[scale=.5] 
  \tkzDefPoint(0,0){B} 
  \tkzDefPoint(0,8){A} 
@@ -230,436 +216,4 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-
-\section{Drawing, naming the lines}
-The following macros are simply used to draw, name lines.
-\subsection{Draw a straight line}
-To draw a normal straight line, just give a couple of points. You can  use the \tkzname{add} option to extend the line (This option is due to \tkzimp{Mark Wibrow}, see the code below). 
-
-\begin{tkzltxexample}[]
-  \tikzset{%
-    add/.style args={#1 and #2}{
-        to path={%
- ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
-  \tikztonodes}}}
-\end{tkzltxexample}
-
-In the special case of lines defined in a triangle, the number of arguments is a list of three points (the vertices of the triangle). The second point is where the line will come from. The first and last points determine the target segment. The old method has therefore been slightly modified. So for \tkzcname{tkzDrawMedian}, instead of $(A,B)(C)$ you have to write $(B,C,A)$ where $C$ is the point that will be linked to the middle of the segment $[A,B]$.
-
-\begin{NewMacroBox}{tkzDrawLine}{\oarg{local options}\parg{pt1,pt2} or \parg{pt1,pt2,pt3}}%
-The arguments are a list of two points or three points.
-
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                         \\ 
-\midrule
-\TOline{median}{none}{[median](A,B,C) median from $B$}
-\TOline{altitude}{none}{[altitude](C,A,B) altitude from $A$} 
-\TOline{bisector}{none}{[bisector](B,C,A) bisector from $C$}
-\TOline{none}{none}{draw the straight line $(AB)$} 
-\TOline{add= nb1 and nb2}{.2 and .2}{extends the segment} 
- \bottomrule
-\end{tabular}
-
-\tkzname{add} defines the length of the line passing through the points pt1 and pt2. Both numbers are percentages. The styles of \TIKZ\ are accessible for plots.
-\end{NewMacroBox}
-
-\subsubsection{Examples  with \tkzname{add}}
-\begin{tkzexample}[latex=5cm,small]
-\begin{tikzpicture}
- \tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
- \tkzClip[space=.25]
- \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
- \tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D} 
- \tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F} 
- \tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
- \tkzDrawLine(A,B)    \tkzDrawLine[add = 0 and .5](C,D) 
- \tkzDrawLine[add = 1 and 0](E,F)
- \tkzDrawLine[add = 0 and 0](G,H) 
- \tkzDrawPoints(A,B,C,D,E,F,G,H)    
- \tkzLabelPoints(A,B,C,D,E,F,G,H)  
-\end{tikzpicture}
-\end{tkzexample} 
-
-It is possible to draw several lines, but with the same options. 
-\begin{NewMacroBox}{tkzDrawLines}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}% 
-Arguments are a list of pairs of  points separated by spaces.  The styles of \TIKZ\ are available for the draws. 
-\end{NewMacroBox}      
-
-\subsubsection{Example with \tkzcname{tkzDrawLines}}    
-
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(2,0){B}
-  \tkzDefPoint(1,2){C}
-  \tkzDefPoint(3,2){D}   
-  \tkzDrawLines(A,B C,D A,C B,D)
-  \tkzLabelPoints(A,B,C,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example with  the option \tkzname{add}}   
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(3,1){I}
- \tkzDefPoint(1,4){J}
- \tkzDefLine[bisector](I,O,J)     
-   \tkzGetPoint{i}   
- \tkzDefLine[bisector out](I,O,J) 
-   \tkzGetPoint{j}
- \tkzDrawLines[add = 1 and .5,color=red](O,I O,J) 
- \tkzDrawLines[add = 1 and .5,color=blue](O,i O,j) 
-\end{tikzpicture} 
-\end{tkzexample}
-
-\subsubsection{Medians in a triangle}
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
-  \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
-  \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
-  \tkzSetUpLine[color=blue]
-  \tkzDrawLine[median](B,C,A)
-  \tkzDrawLine[median](C,A,B)
-  \tkzDrawLine[median](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Altitudes in a triangle}
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzSetUpLine[color=magenta]
- \tkzDrawLine[altitude](B,C,A)
- \tkzDrawLine[altitude](C,A,B)
- \tkzDrawLine[altitude](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Bisectors in a triangle}
-You have to give the angles in a straight line.
-
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzSetUpLine[color=purple]
- \tkzDrawLine[bisector](B,C,A)
- \tkzDrawLine[bisector](C,A,B)
- \tkzDrawLine[bisector](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Add labels on a straight line \tkzcname{tkzLabelLine}}% 
-\begin{NewMacroBox}{tkzLabelLine}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
-\begin{tabular}{lll}%
-arguments &  default & definition   \\ 
-\midrule
-\TAline{label}{}{\tkzcname{tkzLabelLine(A,B)}\{\$\tkzcname{Delta}\$\}}
-\bottomrule
-\end{tabular}
-
-\begin{tabular}{lll}%
-options             & default & definition   \\ 
-\midrule
-\TOline{pos}{.5}{\tkzname{pos} is an option for \TIKZ, but essential in this case\dots} 
-\end{tabular}
-
-As an option, and in addition to the \tkzname{pos}, you can use all styles of \TIKZ, especially the placement with \tkzname{above}, \tkzname{right}, \dots
-\end{NewMacroBox}
-
-\subsubsection{Example with \tkzcname{tkzLabelLine}}
-An important option is \tkzname{pos}, it's the one that allows you to place the label along the right. The value of \tkzname{pos} can be greater than 1 or negative.
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-   \tkzDefPoints{0/0/A,3/0/B,1/1/C}
-   \tkzDefLine[perpendicular=through C,K=-1](A,B)
-   \tkzGetPoint{c}
-   \tkzDrawLines(A,B C,c)
-   \tkzLabelLine[pos=1.25,blue,right](C,c){$(\delta)$} 
-   \tkzLabelLine[pos=-0.25,red,left](C,c){again $(\delta)$} 
-\end{tikzpicture}
-\end{tkzexample}
-
-\section{Draw, Mark segments}
-There is, of course, a macro to simply draw a segment (it would be possible, as for a half line, to create a style with \tkzcname{add}).
-\subsection{Draw a segment \tkzcname{tkzDrawSegment}} 
-\begin{NewMacroBox}{tkzDrawSegment}{\oarg{local options}\parg{pt1,pt2}}%
-The arguments are a list of two points. The styles of \TIKZ\ are available for the drawings.
- 
-\medskip
-\begin{tabular}{lll}%
-argument    & example & definition    \\
-\midrule
-\TAline{(pt1,pt2)}{(A,B)}{draw the segment $[A,B]$}
-\bottomrule 
-\end{tabular}
- 
-\medskip
-\begin{tabular}{lll}%
-options    & example & definition    \\
-\midrule
-\TOline{\TIKZ\ options}{}{all \TIKZ\ options are valid.}
-\TOline{add}{0 and 0}{add = $kl$ and $kr$, \dots}
-\TOline{\dots}{\dots}{allows the segment to be extended to the left and right. }
-\TOline{dim}{no default}{dim = \{label,dim,option\}, \dots}
-\TOline{\dots}{\dots}{allows you to add dimensions to a figure.}
-\bottomrule 
-\end{tabular}
-
-This is of course equivalent to \tkzcname{draw (A)--(B);} 
-\end{NewMacroBox}
-
-\subsubsection{Example with point references}     
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1.5]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(2,1){B}
-  \tkzDrawSegment[color=red,thin](A,B)
-  \tkzDrawPoints(A,B)    
-  \tkzLabelPoints(A,B)  
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example of extending an segment with option \tkzname{add}} 
-
-\begin{tkzexample}[latex=7cm,small]
-  \begin{tikzpicture}
-  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
-  \tkzDefTriangleCenter[euler](A,B,C) 
-  \tkzGetPoint{E}
-  \tkzDrawCircle[euler,red](A,B,C)
-  \tkzDrawLines[add=.5 and .5](A,B A,C B,C)
-  \tkzDrawPoints(A,B,C,E)
-  \tkzLabelPoints(A,B,C,E)
-  \end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example of adding dimensions with option \tkzname{dim}} 
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=4]
- \pgfkeys{/pgf/number format/.cd,fixed,precision=2}
- % Define the first two points
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,0){B}
- \tkzDefPoint(1,1){C}
- % Draw the triangle and the points
- \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints(A,B,C)
- % Label the sides
- \tkzCalcLength[cm](A,B)\tkzGetLength{ABl}
- \tkzCalcLength[cm](B,C)\tkzGetLength{BCl}
- \tkzCalcLength[cm](A,C)\tkzGetLength{ACl}
- % add dim
- \tkzDrawSegment[dim={\pgfmathprintnumber\BCl,6pt,transform shape}](C,B)
- \tkzDrawSegment[dim={\pgfmathprintnumber\ACl,6pt,transform shape}](A,C)
- \tkzDrawSegment[dim={\pgfmathprintnumber\ABl,-6pt,transform shape}](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
- 
-\subsection{Drawing segments \tkzcname{tkzDrawSegments}} 
-If the options are the same we can plot several segments with the same macro. 
-
-\begin{NewMacroBox}{tkzDrawSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
-The arguments are a two-point couple list. The styles of \TIKZ\ are available for the plots.
-\end{NewMacroBox}
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-  \tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
-  \tkzClip[space=1]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(2,1){B} 
-  \tkzDefPoint(3,0){C} 
-  \tkzDrawSegments(A,B B,C)
-  \tkzDrawPoints(A,B,C)    
-  \tkzLabelPoints(A,C) 
-  \tkzLabelPoints[above](B)  
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Place an arrow on segment}
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}
-  \tikzset{
-    arr/.style={postaction=decorate,
-    decoration={markings, 
-    mark=at position .5 with {\arrow[thick]{#1}}
-      }}}
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(4,-4){B}
-  \tkzDrawSegments[arr=stealth](A,B)
-  \tkzDrawPoints(A,B) 
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Mark a segment \tkzcname{tkzMarkSegment}}
-\hypertarget{tms}{}  
-  
- \begin{NewMacroBox}{tkzMarkSegment}{\oarg{local options}\parg{pt1,pt2}}% 
-The macro allows you to place a mark on a segment.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition   \\
-\midrule
-\TOline{pos}{.5}{position of the mark} 
-\TOline{color}{black}{color of the mark} 
-\TOline{mark}{none}{choice of the mark} 
-\TOline{size}{4pt}{size of the mark}
-\bottomrule
-\end{tabular}
-
-Possible marks are those provided by \TIKZ, but other marks have been created based on an idea by Yves Combe.
-\end{NewMacroBox} 
-
-\subsubsection{Several marks }
-\begin{tkzexample}[latex=5cm,small] 
-\begin{tikzpicture}
-  \tkzDefPoint(2,1){A}
-  \tkzDefPoint(6,4){B}
-  \tkzDrawSegment(A,B)
-  \tkzMarkSegment[color=brown,size=2pt,pos=0.4, mark=z](A,B) 
-  \tkzMarkSegment[color=blue,pos=0.2, mark=oo](A,B)
-  \tkzMarkSegment[pos=0.8,mark=s,color=red](A,B) 
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Use of \tkzname{mark}}      
-\begin{tkzexample}[latex=5cm,small] 
-\begin{tikzpicture}
-  \tkzDefPoint(2,1){A} 
-  \tkzDefPoint(6,4){B}
-  \tkzDrawSegment(A,B)
-  \tkzMarkSegment[color=gray,pos=0.2,mark=s|](A,B)
-  \tkzMarkSegment[color=gray,pos=0.4,mark=s||](A,B)
-  \tkzMarkSegment[color=brown,pos=0.6,mark=||](A,B)
-  \tkzMarkSegment[color=red,pos=0.8,mark=|||](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsection{Marking segments \tkzcname{tkzMarkSegments}}
-\hypertarget{tmss}{} 
- 
-\begin{NewMacroBox}{tkzMarkSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
-Arguments are a list of pairs of points separated by spaces. The styles of \TIKZ\ are available for plots.
-\end{NewMacroBox} 
-
-\subsubsection{Marks for an isosceles triangle}      
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
- \tkzDrawSegments(O,A A,B)
- \tkzDrawPoints(O,A,B)
- \tkzDrawLine(O,B)   
- \tkzMarkSegments[mark=||,size=6pt](O,A A,B)
-\end{tikzpicture}
-\end{tkzexample} 
-
-\subsection{Another marking}   
-\begin{tkzexample}[latex=5cm,small] 
- \begin{tikzpicture}[scale=1]
-  \tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B} 
-  \tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
-  \tkzDrawPolygon(A,B,C)
-  \tkzDefEquilateral(A,P) \tkzGetPoint{P'}
-  \tkzDefPointsBy[rotation=center A angle 60](P,B){P',C'}
-  \tkzDrawPolygon(A,P,P')
-  \tkzDrawPolySeg(P',C',A,P,B)
-  \tkzDrawSegment(C,P)
-  \tkzDrawPoints(A,B,C,C',P,P')
-  \tkzMarkSegments[mark=s|,size=6pt,
-  color=blue](A,P P,P' P',A) 
-  \tkzMarkSegments[mark=||,color=orange](B,P P',C')
-  \tkzLabelPoints(A,C) \tkzLabelPoints[below](P) 
-  \tkzLabelPoints[above right](P',C',B) 
-\end{tikzpicture} 
-\end{tkzexample}  
-
-\hypertarget{tls}{}  
-\begin{NewMacroBox}{tkzLabelSegment}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
-This macro allows you to place a label along a segment or a line. The options are those of \TIKZ\ for example \tkzname{pos}.
-
-\medskip
-\begin{tabular}{lll}%%
-argument    & example & definition    \\
-\midrule
-\TAline{label}{\tkzcname{tkzLabelSegment(A,B)\{$5$\}}}{label text} 
-\TAline{(pt1,pt2)}{(A,B)}{label along $[AB]$} 
-\bottomrule
-\end{tabular}
-
-
-\medskip
-\begin{tabular}{lll}%
-options  & default & definition    \\
-\midrule
-\TOline{pos}{.5}{label's position} 
-\end{tabular}
-\end{NewMacroBox}  
-
-\subsubsection{Multiple labels}      
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}
-\tkzInit
-\tkzDefPoint(0,0){A}
-\tkzDefPoint(6,0){B}
-\tkzDrawSegment(A,B)
-\tkzLabelSegment[above,pos=.8](A,B){$a$}
-\tkzLabelSegment[below,pos=.2](A,B){$4$}
-\end{tikzpicture} 
-\end{tkzexample}  
-
-\subsubsection{Labels and right-angled triangle}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[rotate=-60]
-\tikzset{label seg style/.append style = {%
-	        color      = red,
-	        }}
-\tkzDefPoint(0,1){A}
-\tkzDefPoint(2,4){C}
-\tkzDefPointWith[orthogonal normed,K=7](C,A)
-\tkzGetPoint{B}
-\tkzDrawPolygon[green!60!black](A,B,C)
-\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
-\tkzGetPoint{P}
-\tkzLabelPoint[left](A){$A$}
-\tkzLabelPoint[right](B){$B$}
-\tkzLabelPoint[above](C){$C$}
-\tkzLabelPoint[below](P){$P$}
-\tkzLabelSegment[](B,A){$c$}
-\tkzLabelSegment[swap](B,C){$a$}
-\tkzLabelSegment[swap](C,A){$b$}
-\tkzMarkAngles[size=1cm,
-     color=cyan,mark=|](C,B,A A,C,P)
-\tkzMarkAngle[size=0.75cm,
-     color=orange,mark=||](P,C,B)
-\tkzMarkAngle[size=0.75cm,
-      color=orange,mark=||](B,A,C)
-\tkzMarkRightAngles[german](A,C,B B,P,C)
-\end{tikzpicture} 
-\end{tkzexample}
-
-\hypertarget{tlss}{} 
- \begin{NewMacroBox}{tkzLabelSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
-The arguments are a two-point couple list. The styles of \TIKZ\ are available for plotting.
-\end{NewMacroBox} 
- 
-\subsubsection{Labels for an isosceles triangle}      
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
- \tkzDrawSegments(O,A A,B)
- \tkzDrawPoints(O,A,B)
- \tkzDrawLine(O,B)   
- \tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
-\end{tikzpicture}
-\end{tkzexample}  
 \endinput
\ No newline at end of file

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

Index: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.pdf	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.pdf	2022-01-04 22:31:15 UTC (rev 61496)

Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-main.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,63 +1,36 @@
 % !TEX TS-program = lualatex
-%  encoding : utf8 
-%  Documentation of tkz-euclide
-% Copyright 2020  Alain Matthes
+% encoding : utf8 
+% Documentation of tkz-euclide v4
+% Copyright 2022  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
+% 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.
-%
-% This work consists of the files:
-% TKZdoc-euclide-pointby.tex
-% TKZdoc-euclide-presentation.tex
-% TKZdoc-euclide-exemples.tex
-% TKZdoc-euclide-rapporteur.tex
-% TKZdoc-euclide-compass.tex
-% TKZdoc-euclide-intersec.tex
-% TKZdoc-euclide-tools.tex
-% TKZdoc-euclide-arcs.tex
-% TKZdoc-euclide-circles.tex
-% TKZdoc-euclide-polygons.tex
-% TKZdoc-euclide-triangles.tex
-% TKZdoc-euclide-lines.tex
-% TKZdoc-euclide-pointwith.tex
-% TKZdoc-euclide-pointsSpc.tex
-% TKZdoc-euclide-points.tex
-% TKZdoc-euclide-installation.tex
-% TKZdoc-euclide-angles.tex
-% TKZdoc-euclide-config.tex
-% TKZdoc-euclide-base.tex
-% TKZdoc-euclide-FAQ.tex
-% TKZdoc-euclide-show.tex
-% TKZdoc-euclide-sectors.tex
-% TKZdoc-euclide-rnd.tex
-% TKZdoc-euclide-news.tex
+\PassOptionsToPackage{unicode}{hyperref}
 
 \documentclass[DIV         = 14,
                fontsize    = 10,
-               headinclude = false,
                index       = totoc,
-               footinclude = false,
                twoside,
-               headings    = small
+               headings    = small,
+               cadre
                ]{tkz-doc}
+%\usepackage{etoc}
 \gdef\tkznameofpack{tkz-euclide}
-\gdef\tkzversionofpack{3.06c}
-\gdef\tkzdateofpack{2020/03/18}
+\gdef\tkzversionofpack{4.00}
+\gdef\tkzdateofpack{2022/01/04}
 \gdef\tkznameofdoc{doc-tkz-euclide}
-\gdef\tkzversionofdoc{3.06c} 
-\gdef\tkzdateofdoc{2020/03/18}
+\gdef\tkzversionofdoc{4.00} 
+\gdef\tkzdateofdoc{2022/01/04}
 \gdef\tkzauthorofpack{Alain Matthes}
 \gdef\tkzadressofauthor{}
 \gdef\tkznamecollection{AlterMundus}
-\gdef\tkzurlauthor{}
+\gdef\tkzurlauthor{http://altermundus.fr}
 \gdef\tkzengine{lualatex}
 \gdef\tkzurlauthorcom{http://altermundus.fr}
 % -- Packages ---------------------------------------------------          
@@ -64,7 +37,8 @@
 \usepackage[dvipsnames,svgnames]{xcolor}
 \usepackage{calc}
 \usepackage{tkz-euclide} 
-\usepackage[colorlinks]{hyperref}
+\usetikzlibrary{backgrounds}
+\usepackage[colorlinks,pdfencoding=auto, psdextra]{hyperref}
 \hypersetup{
       linkcolor=Gray,
       citecolor=Green,
@@ -85,15 +59,32 @@
 }
 \usepackage{tkzexample}
 \usepackage{fontspec}
-\setmainfont{texgyrepagella}%
- [Extension = .otf ,
-  UprightFont = *-regular,
-  ItalicFont = *-italic,
-  BoldFont = *-bold,
-  BoldItalicFont = *-bolditalic,
-  Ligatures=TeX,
-  Numbers={Lowercase,Monospaced}]
-\usepackage{unicode-math}
+\setmainfont{texgyrepagella}[
+  Extension = .otf,
+  UprightFont = *-regular ,
+  ItalicFont  = *-italic  ,
+  BoldFont    = *-bold    ,
+  BoldItalicFont = *-bolditalic
+]
+\setsansfont{texgyreheros}[
+  Extension = .otf,
+  UprightFont = *-regular ,
+  ItalicFont  = *-italic  ,
+  BoldFont    = *-bold    ,
+  BoldItalicFont = *-bolditalic ,
+]
+
+\setmonofont{lmmono10-regular.otf}[
+  Numbers={Lining,SlashedZero},
+  ItalicFont=lmmonoslant10-regular.otf,
+  BoldFont=lmmonolt10-bold.otf,
+  BoldItalicFont=lmmonolt10-boldoblique.otf,
+]
+\newfontfamily\ttcondensed{lmmonoltcond10-regular.otf}
+%% (La)TeX font-related declarations:
+\linespread{1.05}      % Pagella needs more space between lines
+%\usepackage{unicode-math}
+\usepackage[math-style=literal,bold-style=literal]{unicode-math}
 \usepackage{fourier-otf}
 \makeatletter
 \if at tkzcadre \usepackage{zorna} \fi
@@ -100,14 +91,20 @@
 \makeatother
 \usepackage{datetime,multicol,lscape}
 \usepackage[english]{babel}
-\usepackage[autolanguage]{numprint}
 \usepackage[normalem]{ulem}
-\usepackage{microtype}
 \usepackage{array,multirow,multido,booktabs}
-\usepackage{shortvrb,fancyvrb} 
+\usepackage{shortvrb,fancyvrb,bookmark} 
 
 \renewcommand{\labelitemi}{--}
 \setlength\parindent{0pt}
+\RedeclareSectionCommand[tocnumwidth=3.5em]{part}
+\RedeclareSectionCommand[tocnumwidth=3.5em]{section}
+\RedeclareSectionCommand[tocnumwidth=3.5em]{subsection}
+\RedeclareSectionCommand[tocnumwidth=3.5em]{subsubsection}
+\renewcommand\partheadstartvskip{\clearpage\null\vfil}
+\renewcommand\partheadmidvskip{\par\nobreak\vskip 20pt\thispagestyle{empty}}
+\renewcommand\partheadendvskip{\vfil\clearpage}
+\renewcommand\raggedpart{\centering}
 \RequirePackage{makeidx} 
 \makeindex 
 % \def\tkzref{\arabic{section}-\arabic{subsection}-\arabic{subsubsection}}
@@ -118,8 +115,47 @@
 % }
 %<---------------------------------------------------------------------------> 
 \AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb
-\begin{document}
+% settings
+\tkzSetUpColors[background=white,text=black]  
+\tkzSetUpCompass[color=orange, line width=.4pt,delta=10]
+\tkzSetUpArc[color=gray,line width=.4pt]
+\tkzSetUpPoint[size=2,color=teal]
+\tkzSetUpLine[line width=.4pt,color=teal]
+\tkzSetUpStyle[orange]{new}
+\tikzset{every picture/.style={line width=.4pt}}
+\makeatletter
+% We need to save the node
+% Every append after command might be useful to have this code
+\def\savelastnode{\pgfextra\edef\tmpA{\tikzlastnode}\endpgfextra}
+\def\restorelastnode{\pgfextra\edef\tikzlastnode{\tmpA}\endpgfextra}
 
+% Define box and box title style
+\tikzstyle{mybox} = [draw=blue!50!black, very thick,
+    rectangle, rounded corners, inner sep=10pt, inner ysep=20pt,text=darkgray]
+\tikzstyle{fancytitle} =[fill=MidnightBlue!20, text=blue!50!black,rounded corners]
+\tikzstyle{title} = [append after command={%
+    \savelastnode node[fancytitle,right=10pt] at (\tikzlastnode.north west)%
+    {#1}\restorelastnode}]
+\makeatother 
+
+\newcommand{\red}{\color{BrickRed}}
+\newcommand{\orange}{\color{PineGreen}}
+\newcommand{\blanc}{\color{White}}
+\newcommand{\ntt}{\normalfont\ttfamily}
+%    command name
+\newcommand{\cn}[1]{{\protect\ntt\bslash#1}}
+%    LaTeX package name
+%    File name
+\newcommand{\fn}[1]{{\protect\ntt#1}}
+%    environment name
+\newcommand{\env}[1]{{\protect\ntt#1}}
+\hfuzz1pc % Don't bother to report overfull boxes if overage is < 1pc
+
+\newcommand{\pkg}[1]{{\protect\ntt#1}}
+\begin{document} 
+  
+
+
 \parindent=0pt
 \author{\tkzauthorofpack}  
 \title{\tkznameofpack}
@@ -142,9 +178,9 @@
  fill=myblue!10,opacity=.5] (0,0) rectangle (300pt,240pt);
  \node[text width=240pt] at (150 pt,120 pt){%
   \begin{center}
-	  \color{MidnightBlue}
+    \color{MidnightBlue}
       \fontsize{24}{48}
-	  \selectfont tkz-euclide\\ 
+    \selectfont tkz-euclide\\ 
                 tool for \\
                 Euclidean Geometry 
  \end{center}};
@@ -160,8 +196,8 @@
 \let\rmfamily\ttfamily
 \nameoffile{\tkznameofpack}
 \defoffile{\lefthand\
-The \tkzname{\tkznameofpack} is a set of convenient macros for drawing in a plane (fundamental two-dimensional object) with a Cartesian coordinate system. It  handles the most classic situations in Euclidean Geometry. \tkzname{\tkznameofpack} is built on top of PGF and its associated front-end \TIKZ\ and is a (La)TeX-friendly drawing package. The aim is to provide a high-level user interface  to build graphics  relatively simply. It uses a Cartesian coordinate system orthogonal provided by the \tkzimp{tkz-base} package as well as tools to define the unique coordinates of points and to manipulate them. The idea is to allow you to follow step by step a construction that would be done by hand as naturally as possible.\\
-Now the package needs the version 3.0 of \TIKZ.  English is  not my native language so there  might be some errors.
+\tkzname{\tkznameofpack} 4.00 is now independent of tkz-base. It is a set of convenient macros for drawing in a plane (fundamental two-dimensional object) with a Cartesian coordinate system. It  handles the most classic situations in Euclidean Geometry. \tkzname{\tkznameofpack} is built on top of PGF and its associated front-end \TIKZ\ and is a (La)TeX-friendly drawing package. The aim is to provide a high-level user interface  to build graphics  relatively simply.  The idea is to allow you to follow step by step a construction that would be done by hand as naturally as possible.\\
+English is  not my native language so there  might be some errors.
 }
 
 \presentation
@@ -170,7 +206,7 @@
 \lefthand\ Firstly, I would like to thank \textbf{Till Tantau} for the  beautiful \LaTeX{}  package, namely  \href{http://sourceforge.net/projects/pgf/}{\TIKZ}.
 
 \vspace*{12pt}
-\lefthand\ I received much valuable advice, remarks, corrections and examples from \tkzimp{Jean-Côme Charpentier}, \tkzimp{Josselin Noirel}, \tkzimp{Manuel Pégourié-Gonnard}, \tkzimp{Franck Pastor}, \tkzimp{David Arnold}, \tkzimp{Ulrike Fischer}, \tkzimp{Stefan Kottwitz}, \tkzimp{Christian Tellechea}, \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Arnold}, \tkzimp{Wolfgang Büchel}, \tkzimp{John Kitzmiller}, \tkzimp{Dimitri Kapetas}, \tkzimp{Gaétan Marris}, \tkzimp{Mark Wibrow}, \tkzimp{Yves Combe} for his work on a protractor, \tkzimp{Paul Gaborit} and \tkzimp{Laurent Van Deik} for all his corrections, remarks and questions.
+\lefthand\ Acknowledgements : I received much valuable advice, remarks, corrections and examples from \tkzimp{Jean-Côme Charpentier}, \tkzimp{Josselin Noirel}, \tkzimp{Manuel Pégourié-Gonnard}, \tkzimp{Franck Pastor}, \tkzimp{David Arnold}, \tkzimp{Ulrike Fischer}, \tkzimp{Stefan Kottwitz}, \tkzimp{Christian Tellechea}, \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Arnold}, \tkzimp{Wolfgang Büchel}, \tkzimp{John Kitzmiller}, \tkzimp{Dimitri Kapetas}, \tkzimp{Gaétan Marris}, \tkzimp{Mark Wibrow}, \tkzimp{Yves Combe} for his work on a protractor, \tkzimp{Paul Gaborit}, \tkzimp{Laurent Van Deik} for all his corrections, remarks and questions and \tkzimp{Muzimuzhi Z} for the code about the option "dim".
 
 \vspace*{12pt}
 \lefthand\ I would also like to thank Eric Weisstein, creator of MathWorld:
@@ -192,32 +228,54 @@
 \clearpage
 \newpage
 
-\setlength{\parskip}{1ex plus 0.5ex minus 0.2ex}
+\part{General survey : a brief but comprehensive review}
+\include{TKZdoc-euclide-installation}
 \include{TKZdoc-euclide-presentation}
-\include{TKZdoc-euclide-installation}
+\include{TKZdoc-euclide-elements}
 \include{TKZdoc-euclide-news}
+
+\part{Setting}
 \include{TKZdoc-euclide-points}
+
+\part{Calculating}
 \include{TKZdoc-euclide-pointsSpc}
 \include{TKZdoc-euclide-pointby}
 \include{TKZdoc-euclide-pointwith}
-\include{TKZdoc-euclide-rnd}
 \include{TKZdoc-euclide-lines}
 \include{TKZdoc-euclide-triangles}
 \include{TKZdoc-euclide-polygons}
 \include{TKZdoc-euclide-circles}
+\include{TKZdoc-euclide-circleby}
 \include{TKZdoc-euclide-intersec}
 \include{TKZdoc-euclide-angles}
-\include{TKZdoc-euclide-sectors}
-\include{TKZdoc-euclide-arcs}
-\include{TKZdoc-euclide-tools}
+\include{TKZdoc-euclide-rnd}
+
+\part{Drawing and Filling}
+\include{TKZdoc-euclide-drawing}
+\include{TKZdoc-euclide-filling}
+\include{TKZdoc-euclide-clipping}
+
+\part{Marking}
+\include{TKZdoc-euclide-marking}
+
+\part{Labelling}
+\include{TKZdoc-euclide-labelling}
+
+\part{Complements}
 \include{TKZdoc-euclide-compass}
 \include{TKZdoc-euclide-show}
 \include{TKZdoc-euclide-rapporteur}
-\include{TKZdoc-euclide-exemples}
-\include{TKZdoc-euclide-config}
-\include{TKZdoc-euclide-base}
+\include{TKZdoc-euclide-tools}
+
+\part{Working with style}
+\include{TKZdoc-euclide-styles}
+
+\part{Examples}
+\include{TKZdoc-euclide-examples}
+\include{TKZdoc-euclide-others}
+\part{FAQ}
 \include{TKZdoc-euclide-FAQ}
 
 \clearpage\newpage
 \small\printindex
-\end{document}
+\end{document}
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-marking.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-marking.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-marking.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,406 @@
+\subsection{Mark a segment \tkzcname{tkzMarkSegment}}
+\hypertarget{tms}{}  
+  
+ \begin{NewMacroBox}{tkzMarkSegment}{\oarg{local options}\parg{pt1,pt2}}% 
+The macro allows you to place a mark on a segment.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition   \\
+\midrule
+\TOline{pos}{.5}{position of the mark} 
+\TOline{color}{black}{color of the mark} 
+\TOline{mark}{none}{choice of the mark} 
+\TOline{size}{4pt}{size of the mark}
+\bottomrule
+\end{tabular}
+
+Possible marks are those provided by \TIKZ, but other marks have been created based on an idea by Yves Combe.
+\end{NewMacroBox} 
+
+\subsubsection{Several marks }
+\begin{tkzexample}[latex=5cm,small] 
+\begin{tikzpicture}
+  \tkzDefPoint(2,1){A}
+  \tkzDefPoint(6,4){B}
+  \tkzDrawSegment(A,B)
+  \tkzMarkSegment[color=brown,size=2pt,pos=0.4, mark=z](A,B) 
+  \tkzMarkSegment[color=blue,pos=0.2, mark=oo](A,B)
+  \tkzMarkSegment[pos=0.8,mark=s,color=red](A,B) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Use of \tkzname{mark}}      
+\begin{tkzexample}[latex=5cm,small] 
+\begin{tikzpicture}
+  \tkzDefPoint(2,1){A} 
+  \tkzDefPoint(6,4){B}
+  \tkzDrawSegment(A,B)
+  \tkzMarkSegment[color=gray,pos=0.2,mark=s|](A,B)
+  \tkzMarkSegment[color=gray,pos=0.4,mark=s||](A,B)
+  \tkzMarkSegment[color=brown,pos=0.6,mark=||](A,B)
+  \tkzMarkSegment[color=red,pos=0.8,mark=|||](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Marking segments \tkzcname{tkzMarkSegments}}
+\hypertarget{tmss}{} 
+ 
+\begin{NewMacroBox}{tkzMarkSegments}{\oarg{local options}\parg{pt1,pt2 pt3,pt4 ...}}%
+Arguments are a list of pairs of points separated by spaces. The styles of \TIKZ\ are available for plots.
+\end{NewMacroBox} 
+
+\subsubsection{Marks for an isosceles triangle}      
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
+ \tkzDrawSegments(O,A A,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawLine(O,B)   
+ \tkzMarkSegments[mark=||,size=6pt](O,A A,B)
+\end{tikzpicture}
+\end{tkzexample} 
+
+\subsection{Another marking}   
+\begin{tkzexample}[latex=5cm,small] 
+ \begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B} 
+  \tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDefEquilateral(A,P) \tkzGetPoint{P'}
+  \tkzDefPointsBy[rotation=center A angle 60](P,B){P',C'}
+  \tkzDrawPolygon(A,P,P')
+  \tkzDrawPolySeg(P',C',A,P,B)
+  \tkzDrawSegment(C,P)
+  \tkzDrawPoints(A,B,C,C',P,P')
+  \tkzMarkSegments[mark=s|,size=6pt,
+  color=blue](A,P P,P' P',A) 
+  \tkzMarkSegments[mark=||,color=orange](B,P P',C')
+  \tkzLabelPoints(A,C) \tkzLabelPoints[below](P) 
+  \tkzLabelPoints[above right](P',C',B) 
+\end{tikzpicture} 
+\end{tkzexample}  
+
+\subsection{Mark an arc \tkzcname{tkzMarkArc}}
+\hypertarget{tms}{}  
+  
+ \begin{NewMacroBox}{tkzMarkArc}{\oarg{local options}\parg{pt1,pt2,pt3}}% 
+The macro allows you to place a mark on an arc. pt1 is the center, pt2 and pt3 are the endpoints of the arc.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition   \\
+\midrule
+\TOline{pos}{.5}{position of the mark} 
+\TOline{color}{black}{color of the mark} 
+\TOline{mark}{none}{choice of the mark} 
+\TOline{size}{4pt}{size of the mark}
+\bottomrule
+\end{tabular}
+
+Possible marks are those provided by \TIKZ, but other marks have been created based on an idea by Yves Combe.
+\begin{tkzltxexample}[]
+|, ||,|||, z, s, x, o, oo 
+\end{tkzltxexample}
+\end{NewMacroBox} 
+
+\subsubsection{Several marks }
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}
+\tkzDefPoint(0,0){O}
+\pgfmathsetmacro\r{2}
+\tkzDefPoint(30:\r){A}
+\tkzDefPoint(85:\r){B}
+\tkzDrawCircle(O,A)
+\tkzMarkArc[color=red,mark=||](O,A,B)
+\tkzDrawPoints(B,A,O)
+\end{tikzpicture}
+\end{tkzexample}
+
+ 
+\subsection{Mark an angle mark : {\tkzcname{tkzMarkAngle}}}
+More delicate operation because there are many options. The symbols used for marking in addition to those of \TIKZ\ are defined in the file |tkz-lib-marks.tex| and designated by the following characters:\begin{tkzltxexample}[]
+|, ||,|||, z, s, x, o, oo 
+\end{tkzltxexample}
+
+% Their definitions are as follows
+%
+% \begin{tkzltxexample}[]
+% \pgfdeclareplotmark{||}
+%   %double bar
+% {%
+%   \pgfpathmoveto{\pgfqpoint{2\pgflinewidth}{\pgfplotmarksize}}
+%   \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-\pgfplotmarksize}}
+%   \pgfpathmoveto{\pgfqpoint{-2\pgflinewidth}{\pgfplotmarksize}}
+%   \pgfpathlineto{\pgfqpoint{-2\pgflinewidth}{-\pgfplotmarksize}}
+%   \pgfusepathqstroke
+% }
+% \end{tkzltxexample}
+%
+% \begin{tkzltxexample}[]
+%   %triple bar
+%   \pgfdeclareplotmark{|||}
+%   {%
+%     \pgfpathmoveto{\pgfqpoint{0 pt}{\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{0 pt}{-\pgfplotmarksize}}
+%     \pgfpathmoveto{\pgfqpoint{-3\pgflinewidth}{\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{-3\pgflinewidth}{-\pgfplotmarksize}}
+%     \pgfpathmoveto{\pgfqpoint{3\pgflinewidth}{\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{3\pgflinewidth}{-\pgfplotmarksize}}
+%     \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+% \begin{tkzltxexample}[]
+%   % An bar slant
+%   \pgfdeclareplotmark{s|}
+%   {%
+%     \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}%
+%                              {-.70710678\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}%
+%                              {.70710678\pgfplotmarksize}}
+%     \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+%
+% \begin{tkzltxexample}[]
+%   % An double bar slant
+%   \pgfdeclareplotmark{s||}
+%   {%
+%    \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+%    \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}}
+%    \pgfpathmoveto{\pgfqpoint{0\pgfplotmarksize}{-\pgfplotmarksize}}
+%    \pgfpathlineto{\pgfqpoint{1\pgfplotmarksize}{\pgfplotmarksize}}
+%    \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+%
+% \begin{tkzltxexample}[]
+%   % z
+%   \pgfdeclareplotmark{z}
+%   {%
+%     \pgfpathmoveto{\pgfqpoint{0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{0.75\pgfplotmarksize}{\pgfplotmarksize}}
+%     \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{\pgfplotmarksize}}
+%     \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+% \begin{tkzltxexample}[]
+%   % s
+%   \pgfdeclareplotmark{s}
+%   {%
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%      \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{-\pgfplotmarksize}{\pgfplotmarksize}}
+%          {\pgfpoint{\pgfplotmarksize}{\pgfplotmarksize}}
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%       \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{\pgfplotmarksize}{-\pgfplotmarksize}}
+%          {\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}
+%       \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+% \begin{tkzltxexample}[]
+%   % infinity
+%   \pgfdeclareplotmark{oo}
+%   {%
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%      \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{.5\pgfplotmarksize}{1\pgfplotmarksize}}
+%          {\pgfpoint{\pgfplotmarksize}{0pt}}
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%       \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{-.5\pgfplotmarksize}{1\pgfplotmarksize}}
+%          {\pgfpoint{-\pgfplotmarksize}{0pt}}
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%         \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{.5\pgfplotmarksize}{-1\pgfplotmarksize}}
+%          {\pgfpoint{\pgfplotmarksize}{0pt}}
+%      \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
+%       \pgfpathcurveto
+%          {\pgfpoint{0pt}{0pt}}
+%          {\pgfpoint{-.5\pgfplotmarksize}{-1\pgfplotmarksize}}
+%          {\pgfpoint{-\pgfplotmarksize}{0pt}}
+%       \pgfusepathqstroke
+%   }
+% \end{tkzltxexample}
+%
+
+
+%                \tkzMarkAngle(B, A, C)
+%
+% Marque d'angle
+% arc de cercle (simple/double/triple) et marque d'églité.
+%
+% Par défaut: 
+%                 arc       = simple
+%                 mksize  = 1 (rayon de l'arc)
+%                 style traits pleins
+%                 mkpos ?  position: 0.5 (position de la marque)
+%                 mark rien du tout (ignoré si type est utilisé)
+%
+% Paramètres (optionnels)
+%             arc     : l, ll, lll
+%             mksize  : 1
+%             gap     : 3pt
+%             dist    : 1?
+%             style   : type de traits
+%             mkpos   : 0.5
+%             mark    : none  , |, ||,|||, z, s, x, o, oo mais tous les 
+%  % symboles de tikz sont permis
+
+\begin{NewMacroBox}{tkzMarkAngle}{\oarg{local options}\parg{A,O,B}}%
+$O$ is the vertex. Attention the arguments vary according to the options. Several markings are possible. You can simply draw an arc or  add a mark on this arc. The style of the arc is chosen with the option \tkzname{arc}, the radius of the arc is given by \tkzname{mksize}, the arc can, of course, be colored.
+
+\medskip
+
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition                        \\ 
+\midrule
+\TOline{arc}{l}{choice of l, ll and lll (single, double or triple).}
+\TOline{size}{1 (cm)}{arc radius.}
+\TOline{mark}{none}{choice of mark.}
+\TOline{mksize}{4pt}{symbol size (mark).}
+\TOline{mkcolor}{black}{symbol color (mark).}
+\TOline{mkpos}{0.5}{position of the symbol on the arc.}
+\end{tabular} 
+\end{NewMacroBox}  
+
+\subsubsection{Example with \tkzname{mark = x}}
+\begin{tkzexample}[latex=6cm,small]
+    \begin{tikzpicture}[scale=.75]
+        \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+        \tkzMarkAngle[size = 4,mark = x,
+                      arc=ll,mkcolor = red](A,O,B)
+        \tkzDrawLines(O,A O,B)
+        \tkzDrawPoints(O,A,B)
+    \end{tikzpicture}
+\end{tkzexample}
+\DeleteShortVerb{\|}
+\subsubsection{Example with \tkzname{mark =||}}
+\MakeShortVerb{\|}
+\begin{tkzexample}[latex=6cm,small]
+    \begin{tikzpicture}[scale=.75]
+        \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+        \tkzMarkAngle[size = 4,mark = ||,
+                    arc=ll,mkcolor = red](A,O,B)
+        \tkzDrawLines(O,A O,B)
+        \tkzDrawPoints(O,A,B)
+    \end{tikzpicture}
+\end{tkzexample}
+
+\begin{NewMacroBox}{tkzMarkAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
+With common options, there is a macro for multiple angles.
+  \end{NewMacroBox}  
+
+  
+\subsection{Marking a right angle: {\tkzcname{tkzMarkRightAngle}}}
+
+\begin{NewMacroBox}{tkzMarkRightAngle}{\oarg{local options}\parg{A,O,B}}%
+The \tkzname{german} option allows you to change the style of the drawing. The option \tkzname{size} allows to change the size of the drawing.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options             & default & definition         \\ 
+\midrule
+\TOline{german}{normal}{ german arc with inner point.}
+\TOline{size}{0.2}{ side size.}
+\end{tabular} 
+\end{NewMacroBox}  
+
+\subsubsection{Example of marking a right angle} 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
+  \tkzDefPointBy[projection = onto B--A](P)  \tkzGetPoint{H}
+  \tkzDrawLines[add=.5 and .5](P,H)
+  \tkzMarkRightAngle[fill=blue!20,size=.5,draw](A,H,P) 
+  \tkzDrawLines[add=.5 and .5](A,B)
+  \tkzMarkRightAngle[fill=red!20,size=.8](B,H,P)
+  \tkzDrawPoints[](A,B,P,H)  
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example of marking a right angle, german style} 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
+  \tkzDefPointBy[projection = onto B--A](P)  \tkzGetPoint{H}
+  \tkzDrawLines[add=.5 and .5](P,H)
+  \tkzMarkRightAngle[german,size=.5,draw](A,H,P) 
+  \tkzDrawPoints[](A,B,P,H) 
+  \tkzDrawLines[add=.5 and .5](A,B)
+  \tkzMarkRightAngle[german,size=.8](P,H,B) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Mix of styles} 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(4,1){B}
+  \tkzDefPoint(2,5){C}
+  \tkzDefPointBy[projection=onto B--A](C) 
+      \tkzGetPoint{H}
+  \tkzDrawLine(A,B)
+  \tkzDrawLine[add = .5 and .2,color=red](C,H)
+  \tkzMarkRightAngle[,size=1,color=red](C,H,A)
+  \tkzMarkRightAngle[german,size=.8,color=blue](B,H,C)
+  \tkzFillAngle[opacity=.2,fill=blue!20,size=.8](B,H,C)
+  \tkzLabelPoints(A,B,C,H)
+  \tkzDrawPoints(A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Full example} 
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[rotate=-90]
+\tkzDefPoint(0,1){A}
+\tkzDefPoint(2,4){C}
+\tkzDefPointWith[orthogonal normed,K=7](C,A)
+\tkzGetPoint{B}
+\tkzDrawSegment[green!60!black](A,C)
+\tkzDrawSegment[green!60!black](C,B)
+\tkzDrawSegment[green!60!black](B,A)
+\tkzDefSpcTriangle[orthic](A,B,C){N,O,P}
+\tkzDrawLine[dashed,color=magenta](C,P)
+\tkzLabelPoint[left](A){$A$}
+\tkzLabelPoint[right](B){$B$}
+\tkzLabelPoint[above](C){$C$}
+\tkzLabelPoint[left](P){$P$}
+\tkzLabelSegment[auto](B,A){$c$}
+\tkzLabelSegment[auto,swap](B,C){$a$}
+\tkzLabelSegment[auto,swap](C,A){$b$}
+\tkzMarkAngle[size=1,color=cyan,mark=|](C,B,A)
+\tkzMarkAngle[size=1,color=cyan,mark=|](A,C,P)
+\tkzMarkAngle[size=0.75,color=orange,
+    mark=||](P,C,B)
+\tkzMarkAngle[size=0.75,color=orange,
+   mark=||](B,A,C)
+\tkzMarkRightAngle[german](A,C,B)
+\tkzMarkRightAngle[german](B,P,C)
+\end{tikzpicture} 
+\end{tkzexample} 
+
+\subsection{\tkzcname{tkzMarkRightAngles}}
+\begin{NewMacroBox}{tkzMarkRightAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
+With common options, there is a macro for multiple angles.
+\end{NewMacroBox}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-marking.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-news.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-news.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-news.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,22 +1,36 @@
 \section{News and compatibility}
 
-
 Some changes have been made to make the syntax more homogeneous and especially to distinguish the definition and search for coordinates from the rest, i.e. drawing, marking and labelling.
 In the future, the definition macros being isolated, it will be easier to introduce a phase of coordinate calculations using \tkzimp{Lua}.
 
-An important novelty is the recent replacement of the \tkzNamePack{fp} package by \tkzNamePack{xfp}.  This is to improve the calculations a little bit more and to make it easier to use.
 
 
-Here are some of the changes. 
+Here are some of the changes. I'm sorry but the list of changes and novelties is made in the greatest disorder!
+
 \vspace{1cm}
  \begin{itemize}\setlength{\itemsep}{10pt} 
+   
+\item An important novelty is the recent replacement of the \tkzNamePack{fp} package by \tkzNamePack{xfp}.  This is to improve the calculations a little bit more and to make it easier to use;
 
 \item Improved code and bug fixes;
 
-\item With \tkzimp{tkz-euclide} loads all objects, so there's no need to place \tkzcname{usetkzobj\{all\}};\item The bounding box is now controlled in each macro (hopefully) to avoid the use of \tkzcname{tkzInit} followed by \tkzcname{tkzClip};\item Added macros for the bounding box: \tkzcname{tkzSaveBB} \tkzcname{tkzClipBB} and so on;\item  Logically most macros accept \TIKZ\ options. So I removed the "duplicate" options when possible thus the "label options" option is removed;
+\item First of all, you don’t have to deal with Tik Z the size of the bounding box. Early versions of \tkzname{\tkznameofpack} did not control the size of the bounding box, The bounding box is now controlled in each macro (hopefully) to avoid the use of \tkzcname{tkzInit} followed by \tkzcname{tkzClip};
 
-\item Random points are now in \tkzname{\tkznameofpack} and the macro \tkzcname{tkzGetRandPointOn} is replaced by \tkzcname{tkzDefRandPointOn}. For homogeneity reasons, the points must be retrieved with \tkzcname{tkzGetPoint};
+\item  With \tkzimp{tkz-euclide} loads all objects, so there's no need to place \tkzcname{usetkzobj\{all\}};
 
+\item Added macros for the bounding box: \tkzcname{tkzSaveBB} \tkzcname{tkzClipBB} and so on;
+
+\item  Logically most macros accept \TIKZ\ options. So I removed the "duplicate" options when possible thus the "label options" option is removed;
+
+\item The unit is now the cm;
+
+\item |\tkzCalcLength| |\tkzGetLength| gives result in cm;
+
+\item  |\tkzMarkArc| and |\tkzLabelArc| are new macros;
+
+\item Now |\tkzClipCircle| and |\tkzClipPolygon| have an option \tkzimp{out}. To use this option you must have a Bounding Box that contains the object on which the Clip action will be performed. Cela peut se faire en utilisant un objet qui englobe la figure ou bien en utilisant la macro \tkzcname{tkzInit};
+
+
 \item The options \tkzname{end} and \tkzname{start} which allowed to give a label to a straight  line are removed. You now have to use the macro \tkzcname{tkzLabelLine};
 
 \item Introduction of the libraries \NameLib{quotes} and \NameLib{angles}; it allows to give a label to a point, even if I am not in favour of this practice;
@@ -23,23 +37,30 @@
 
 \item  The notion of vector disappears, to draw a vector just pass "->" as an option to \tkzcname{tkzDrawSegment};
 
-\item Many macros still exist, but are obsolete and will disappear:
-\begin{itemize}
+\item |\tkzDrawMedian|, |\tkzDrawBisector|, |\tkzDrawAltitude|, |\tkzDrawMedians|, |\tkzDrawBisectors| et  |\tkzDrawAltitudes| do not exist anymore. The creation and drawing separation is not respected so it is preferable to first create the coordinates of these points with |\tkzDefSpcTriangle[median]| and then to choose the ones you are going to draw with |\tkzDrawSegments| or |\tkzDrawLines|;
 
-\item |\tkzDrawMedians| trace and create midpoints on the sides of a triangle. The creation and drawing separation is not respected so it is preferable to first create the coordinates of these points with |\tkzSpcTriangle[median]| and then to choose the ones you are going to draw with |\tkzDrawSegments| or |\tkzDrawLines|;
-
-\item |\tkzDrawMedians(A,B)(C)| is now spelled |\tkzDrawMedians(A,C,B)|. This defines the median from $C$;
+\item |\tkzDefIntSimilitudeCenter| and |\tkzDefExtSimilitudeCenter|  do not exist anymore;
   
-\item Another example |\tkzDrawTriangle[equilateral]| was handy but it is better to get the third point with |\tkzDefTriangle[equilateral]| and then draw with |\tkzDrawPolygon|;
+\item |\tkzDrawTriangle| has been deleted.  |\tkzDrawTriangle[equilateral]| was handy but it is better to get the third point with |\tkzDefTriangle[equilateral]| and then draw with |\tkzDrawPolygon|; idem for |\tkzDrawSquare| and |\tkzDrawGoldRectangle|;
   
-\item |\tkzDefRandPointOn| is replaced by |\tkzGetRandPointOn|;\item now |\tkzTangent| is replaced by |\tkzDefTangent|;
+\item |\tkzDefRandPointOn| is replaced by |\tkzGetRandPointOn|;
 
-\item You can use |global path name| if you want find intersection  but it's very slow like in \TIKZ.
+\item now |\tkzTangent| is replaced by |\tkzDefTangent|;
 
-\end{itemize}
+\item An option of the macro \tkzcname{tkzDefTriangle} has changed, in the previous version the option was "euclide" with an "e". Now it's "euclid";
 
+\item Random points are now in \tkzname{\tkznameofpack} and the macro \tkzcname{tkzGetRandPointOn} is replaced by
 
-\item Appearance of the macro \tkzcname{usetkztool} which allows to load new "tools".
+ \tkzcname{tkzDefRandPointOn}. For homogeneity reasons, the points must be retrieved with \tkzcname{tkzGetPoint};
+
+\item New macros have been added : \tkzcname{tkzDrawSemiCircles}, \tkzcname{tkzDrawPolygons}, \tkzcname{tkzDrawTriangles};
+
+
+\item Option "isosceles right" is a new option of the macro \tkzcname{tkzDefTriangle};
+
+\item Appearance of the macro \tkzcname{usetkztool} which allows to load new "tools";
+
+\item The styles can be modified with the help of the following macros : \tkzcname{tkzSetUpPoint}, \tkzcname{tkzSetUpLine}, \tkzcname{tkzSetUpArc}, \tkzcname{tkzSetUpCompass}, \tkzcname{tkzSetUpLabel} and \tkzcname{tkzSetUpStyle}. The last one allows you to create a new style.
 \end{itemize}
 
 \endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-others.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-others.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-others.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,319 @@
+
+\section{Different authors}
+
+\subsection{Code from Andrew Swan}
+
+\begin{tkzexample}[latex=7cm]
+\begin{tikzpicture}[scale=1.25]
+\def\radius{4}
+\def\angle{40}
+\pgfmathsetmacro{\htan}{tan(\angle)}
+\tkzDefPoint(0,0){A} \tkzDefPoint(0,\radius){F}
+\tkzDefPoint(\radius,0){B}
+\tkzDefPointBy[rotation= center A angle \angle](B)
+\tkzGetPoint{C}
+\tkzDefLine[perpendicular=through B,K=1](A,B)
+\tkzGetPoint{b}
+\tkzInterLL(A,C)(B,b) \tkzGetPoint{D}
+\tkzDefLine[perpendicular=through C,K=-1](A,B)
+\tkzGetPoint{c}
+\tkzInterLL(C,c)(A,B) \tkzGetPoint{E}
+\tkzDrawSector[fill=blue,opacity=0.1](A,B)(C)
+\tkzDrawArc[thin](A,B)(F)
+\tkzMarkAngle(B,A,C)
+\tkzLabelAngle[pos=0.8](B,A,C){$x$}
+\tkzDrawPolygon(A,B,D)
+\tkzDrawSegments(C,B)
+\tkzDrawSegments[dashed,thin](C,E)
+\tkzLabelPoints[below left](A)
+\tkzLabelPoints[below right](B)
+\tkzLabelPoints[above](C)
+\tkzLabelPoints[above right](D)
+\begin{scope}[/pgf/decoration/raise=5pt]
+\draw [decorate,decoration={brace,mirror,
+   amplitude=10pt},xshift=0pt,yshift=-4pt]
+(A) -- (B) node [black,midway,yshift=-20pt]
+{\footnotesize $1$};
+\draw [decorate,decoration={brace,amplitude=10pt},
+       xshift=4pt,yshift=0pt]
+(D) -- (B) node [black,midway,xshift=27pt]
+{\footnotesize $\tan x$};
+\draw [decorate,decoration={brace,amplitude=10pt},
+       xshift=4pt,yshift=0pt]
+(E) -- (C) node [black,midway,xshift=-27pt]
+{\footnotesize $\sin x$};
+\end{scope}
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Example: Dimitris Kapeta}
+
+You need in this example to use \tkzname{mkpos=.2} with \tkzcname{tkzMarkAngle} because the measure of $ \widehat{CAM}$ is too small.
+Another possiblity is to use \tkzcname{tkzFillAngle}.
+
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(2.5,0){N}
+  \tkzDefPoint(-4.2,0.5){M}
+  \tkzDefPointBy[rotation=center O angle 30](N)
+  \tkzGetPoint{B}
+  \tkzDefPointBy[rotation=center O angle -50](N)
+  \tkzGetPoint{A}
+  \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
+  \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
+  \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
+  \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
+  \tkzDrawSegments(A,C M,A M,B)
+  \tkzDrawCircle(O,N)
+  \tkzLabelCircle[above left](O,N)(120){%
+                 $\mathcal{C}$}
+  \begin{scope}[xfp]
+    \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
+  \end{scope}
+
+  \tkzDrawPoints(O, A, B, M, B, C)
+  \tkzLabelPoints[right](O,A,B)
+  \tkzLabelPoints[above left](M,C)
+  \tkzLabelPoint[below left](A'){$A'$}
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Example :  John Kitzmiller }
+Prove that $\dfrac{AC}{CE}=\dfrac{BD}{DF}$.
+
+Another interesting example from John, you can see how to use some extra options like\\\ \tkzname{decoration} and \tkzname{postaction}  from \TIKZ\ with \tkzname{tkz-euclide}.
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=1.5,decoration={markings,
+  mark=at position 3cm with {\arrow[scale=2]{>}}}]
+  \tkzDefPoints{0/0/E, 6/0/F, 0/1.8/P, 6/1.8/Q, 0/3/R, 6/3/S}
+  \tkzDrawLines[postaction={decorate}](E,F P,Q R,S)
+  \tkzDefPoints{3.5/3/A, 5/3/B}
+  \tkzDrawSegments(E,A F,B)
+  \tkzInterLL(E,A)(P,Q) \tkzGetPoint{C}
+  \tkzInterLL(B,F)(P,Q) \tkzGetPoint{D}
+  \tkzLabelPoints[above right](A,B)
+  \tkzLabelPoints[below](E,F)
+  \tkzLabelPoints[above left](C)
+  \tkzDrawSegments[style=dashed](A,F)
+  \tkzInterLL(A,F)(P,Q) \tkzGetPoint{G}
+  \tkzLabelPoints[above right](D,G)
+  \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](A,C A,G)
+  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](C,E G,F)
+  \tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](B,D)
+  \tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](D,F)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Example 1: from Indonesia}
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=3]
+   \tkzDefPoints{0/0/A,2/0/B}
+   \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+   \tkzDefPointBy[rotation=center D angle 45](C)\tkzGetPoint{G}
+   \tkzDefSquare(G,D)\tkzGetPoints{E}{F}
+   \tkzInterLL(B,C)(E,F)\tkzGetPoint{H}
+   \tkzFillPolygon[gray!10](D,E,H,C,D)
+   \tkzDrawPolygon(A,...,D)\tkzDrawPolygon(D,...,G)
+   \tkzDrawSegment(B,E)
+   \tkzMarkSegments[mark=|,size=3pt,color=gray](A,B B,C C,D D,A E,F F,G G,D D,E)
+   \tkzMarkSegments[mark=||,size=3pt,color=gray](B,E E,H)
+   \tkzLabelPoints[left](A,D)
+   \tkzLabelPoints[right](B,C,F,H)
+   \tkzLabelPoints[above](G)\tkzLabelPoints[below](E)
+   \tkzMarkRightAngles(D,A,B D,G,F)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Example 2: from Indonesia}
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[pol/.style={fill=brown!40,opacity=.5},
+      seg/.style={tkzdotted,color=gray}, hidden pt/.style={fill=gray!40},
+       mra/.style={color=gray!70,tkzdotted,/tkzrightangle/size=.2},scale=1.5]
+  \tkzDefPoints{0/0/A,2.5/0/B,1.33/0.75/D,0/2.5/E,2.5/2.5/F}
+  \tkzDefLine[parallel=through D](A,B)  \tkzGetPoint{I1}
+  \tkzDefLine[parallel=through B](A,D)  \tkzGetPoint{I2}
+  \tkzInterLL(D,I1)(B,I2)               \tkzGetPoint{C}
+  \tkzDefLine[parallel=through E](A,D)  \tkzGetPoint{I3}
+  \tkzDefLine[parallel=through D](A,E)  \tkzGetPoint{I4}
+  \tkzInterLL(E,I3)(D,I4)               \tkzGetPoint{H}
+  \tkzDefLine[parallel=through F](E,H)  \tkzGetPoint{I5}
+  \tkzDefLine[parallel=through H](E,F)  \tkzGetPoint{I6}
+  \tkzInterLL(F,I5)(H,I6)               \tkzGetPoint{G}
+  \tkzDefMidPoint(G,H) \tkzGetPoint{P}  \tkzDefMidPoint(G,C) \tkzGetPoint{Q}
+  \tkzDefMidPoint(B,C) \tkzGetPoint{R}  \tkzDefMidPoint(A,B) \tkzGetPoint{S}
+  \tkzDefMidPoint(A,E) \tkzGetPoint{T}  \tkzDefMidPoint(E,H) \tkzGetPoint{U}
+  \tkzDefMidPoint(A,D) \tkzGetPoint{M}  \tkzDefMidPoint(D,C) \tkzGetPoint{N}
+  \tkzInterLL(B,D)(S,R)\tkzGetPoint{L} \tkzInterLL(H,F)(U,P) \tkzGetPoint{K}
+  \tkzDefLine[parallel=through K](D,H)  \tkzGetPoint{I7}
+  \tkzInterLL(K,I7)(B,D)                \tkzGetPoint{O}
+  \tkzFillPolygon[pol](P,Q,R,S,T,U)
+  \tkzDrawSegments[seg](K,O K,L P,Q R,S T,U C,D H,D A,D M,N B,D)
+  \tkzDrawSegments(E,H B,C G,F G,H G,C Q,R S,T U,P H,F)
+  \tkzDrawPolygon(A,B,F,E)
+  \tkzDrawPoints(A,B,C,E,F,G,H,P,Q,R,S,T,U,K) \tkzDrawPoints[hidden pt](M,N,O,D)
+  \tkzMarkRightAngle[mra](L,O,K)
+  \tkzMarkSegments[mark=|,size=1pt,thick,color=gray](A,S B,S B,R C,R
+                    Q,C Q,G G,P H,P E,U H,U E,T A,T)
+  \tkzLabelAngle[pos=.3](K,L,O){$\alpha$}
+  \tkzLabelPoints[below](O,A,S,B)    \tkzLabelPoints[above](H,P,G)
+  \tkzLabelPoints[left](T,E)         \tkzLabelPoints[right](C,Q)
+  \tkzLabelPoints[above left](U,D,M) \tkzLabelPoints[above right](L,N)
+  \tkzLabelPoints[below right](F,R)  \tkzLabelPoints[below left](K)
+\end{tikzpicture}
+\end{tkzexample}
+\newpage
+
+\subsection{Illustration of  the Morley theorem by Nicolas François}
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}
+    \tkzInit[ymin=-3,ymax=5,xmin=-5,xmax=7]
+    \tkzClip
+    \tkzDefPoints{-2.5/-2/A,2/4/B,5/-1/C}
+    \tkzFindAngle(C,A,B) \tkzGetAngle{anglea}
+    \tkzDefPointBy[rotation=center A angle 1*\anglea/3](C) \tkzGetPoint{TA1}
+    \tkzDefPointBy[rotation=center A angle 2*\anglea/3](C) \tkzGetPoint{TA2}
+    \tkzFindAngle(A,B,C) \tkzGetAngle{angleb}
+    \tkzDefPointBy[rotation=center B angle 1*\angleb/3](A) \tkzGetPoint{TB1}
+    \tkzDefPointBy[rotation=center B angle 2*\angleb/3](A) \tkzGetPoint{TB2}
+    \tkzFindAngle(B,C,A) \tkzGetAngle{anglec}
+    \tkzDefPointBy[rotation=center C angle 1*\anglec/3](B) \tkzGetPoint{TC1}
+    \tkzDefPointBy[rotation=center C angle 2*\anglec/3](B) \tkzGetPoint{TC2}
+    \tkzInterLL(A,TA1)(B,TB2) \tkzGetPoint{U1}
+    \tkzInterLL(A,TA2)(B,TB1) \tkzGetPoint{V1}
+    \tkzInterLL(B,TB1)(C,TC2) \tkzGetPoint{U2}
+    \tkzInterLL(B,TB2)(C,TC1) \tkzGetPoint{V2}
+    \tkzInterLL(C,TC1)(A,TA2) \tkzGetPoint{U3}
+    \tkzInterLL(C,TC2)(A,TA1) \tkzGetPoint{V3}
+    \tkzDrawPolygons(A,B,C U1,U2,U3 V1,V2,V3)
+    \tkzDrawLines[add=2 and 2,very thin,dashed](A,TA1 B,TB1 C,TC1 A,TA2 B,TB2 C,TC2)
+    \tkzDrawPoints(U1,U2,U3,V1,V2,V3)
+    \tkzLabelPoint[left](V1){$s_a$} \tkzLabelPoint[right](V2){$s_b$}
+    \tkzLabelPoint[below](V3){$s_c$} \tkzLabelPoint[above left](A){$A$}
+    \tkzLabelPoints[above right](B,C) \tkzLabelPoint(U1){$t_a$}
+    \tkzLabelPoint[below left](U2){$t_b$} \tkzLabelPoint[above](U3){$t_c$}
+  \end{tikzpicture}
+  \end{tkzexample}
+
+\newpage
+\subsection{Gou gu theorem / Pythagorean Theorem by  Zhao Shuang}
+\begin{tikzpicture}
+\node [mybox,title={Gou gu theorem / Pythagorean Theorem by  Zhao Shuang}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{Pythagoras was not the first person who discovered this theorem around the world. Ancient China discovered this theorem much earlier than him. So there is another name for the Pythagorean theorem in China, the Gou-Gu theorem.
+Zhao Shuang was an ancient Chinese mathematician. He rediscovered the “Gou gu therorem”, which is actually the Chinese version of the “Pythagorean theorem”. Zhao Shuang used a method called the “cutting and compensation principle”, he  created a picture of “Pythagorean Round Square”
+Below the figure used to illustrate the proof of the “Gou gu theorem.”  (code from Nan Geng)
+}} 
+\end{minipage}
+};
+\end{tikzpicture}
+  
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.8]
+  \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){A'}
+  \tkzInterCC[R](A, 5)(A', 3)
+  \tkzGetSecondPoint{B}
+  \tkzDefSquare(A,B)   \tkzGetPoints{C}{D}
+  \tkzCalcLength(A,A') \tkzGetLength{lA}
+  \tkzCalcLength(A',B) \tkzGetLength{lB}
+  \pgfmathparse{\lA-\lB}
+  \tkzInterLC[R](A,A')(A',\pgfmathresult)
+  \tkzGetFirstPoint{D'}
+  \tkzDefSquare(D',A')\tkzGetPoints{B'}{C'}
+  \tkzDefLine[orthogonal=through D](D,D') 
+   \tkzGetPoint{d}
+  \tkzDefLine[orthogonal=through A](A,A')
+   \tkzGetPoint{a}
+  \tkzDefLine[orthogonal=through C](C,C') 
+   \tkzGetPoint{c}  
+  \tkzInterLL(D,d)(C,c) \tkzGetPoint{E}
+  \tkzInterLL(D,d)(A,a) \tkzGetPoint{F}
+  \tkzDefSquare(E,F)\tkzGetPoints{G}{H}
+  \tkzDrawPolygons[fill=teal!10](A,B,A' B,C,B'
+     C,D,C' A,D',D)  
+  \tkzDrawPolygons(A,B,C,D E,F,G,H)
+  \tkzDrawPolygon[fill=green!10](A',B',C',D')
+  \tkzDrawSegment[dim={$a$,-10pt,}](D,C')
+  \tkzDrawSegment[dim={$b$,-10pt,}](C,C')
+  \tkzDrawSegment[dim={$c$,-10pt,}](C,D)
+  \tkzDrawPoints[size=2](A,B,C,D,A',B',C',D')
+  \tkzLabelPoints[left](A)
+  \tkzLabelPoints[below](B)
+  \tkzLabelPoints[right](C)
+  \tkzLabelPoints[above](D)
+  \tkzLabelPoints[right](A')
+  \tkzLabelPoints[below right](B')
+  \tkzLabelPoints[below left](C') 
+  \tkzLabelPoints[below](D')
+ \end{tikzpicture}
+\end{tkzexample}
+
+\newpage
+\subsection{Reuleaux-Triangle}
+\begin{tikzpicture}
+\node [mybox,title={Reuleaux-triangle by  Stefan Kottwitz}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{A well-known classic field of mathematics is geometry.
+You may know Euclidean geometry from school, with constructions
+by compass and ruler. Math teachers may be very interested in
+drawing geometry constructions and explanations. Underlying
+constructions can help us with general drawings where we would
+need intersections and tangents of lines and circles, even if
+it does not look like geometry.
+So, here, we will remember school geometry drawings.
+We will use the tkz-euclide package, which works on top of TikZ.
+We will construct an equilateral triangle.
+Then we extend it to get a Reuleaux triangle, and add annotations.
+The code is fully explained in the LaTeX Cookbook, Chapter 10,
+Advanced Mathematics, Drawing geometry pictures.
+ Stefan Kottwitz
+}} 
+\end{minipage}
+};
+\end{tikzpicture}
+
+\begin{tikzpicture}
+ 
+  \tkzDefPoint(0,0){A} \tkzDefPoint(4,1){B}
+  \tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{D}
+  \tkzInterLC(A,B)(B,A) \tkzGetPoints{F}{E}
+  \tkzDrawCircles[dashed](A,B B,A)
+  \tkzDrawPolygons(A,B,C A,E,D)
+
+  \tkzCompasss[color=red, very thick](A,C B,C A,D B,D)
+  \begin{scope}
+    \tkzSetUpArc[fill=blue!10,thick,delta=0]
+    \tkzDrawArc(A,B)(C)
+    \tkzDrawArc(B,C)(A)
+    \tkzDrawArc(C,A)(B)
+  \end{scope}
+
+  \tkzMarkAngles[fill=yellow,opacity=0.5](D,A,E A,E,D)
+  \tkzMarkRightAngle[size=0.65,fill=red!20,opacity=0.2](A,D,E)
+  
+  \tkzLabelAngle[pos=0.7](D,A,E){$\alpha$}
+  \tkzLabelAngle[pos=0.8](A,E,D){$\beta$}
+  \tkzLabelAngle[pos=0.5,xshift=-1.4mm](A,D,D){$90^\circ$}
+  \begin{scope}[font=\small]
+    \tkzLabelSegment[below=0.6cm,align=center](A,B){Reuleaux\\triangle}
+    \tkzLabelSegment[above right,sloped](A,E){hypotenuse}
+    \tkzLabelSegment[below,sloped](D,E){opposite}
+    \tkzLabelSegment[below,sloped](A,D){adjacent}
+    \tkzLabelSegment[below right=4cm](A,E){Thales circle}
+  \end{scope}
+
+  \tkzLabelPoints[below left](A)
+  \tkzLabelPoints(B,D)
+  \tkzLabelPoint[above](C){$C$}
+  \tkzLabelPoints(E)
+  \tkzDrawPoints(A,...,E)
+
+\end{tikzpicture}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-others.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointby.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointby.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointby.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,4 +1,4 @@
-\section{Definition of points by transformation; \tkzcname{tkzDefPointBy} }
+\section{Definition of points by transformation : \tkzcname{tkzDefPointBy} }
 These transformations are:
 
 \begin{itemize}
@@ -39,6 +39,7 @@
 \TOline{rotation }  {= center \#1 angle \#2}{[rotation=center O angle 30](E)}
 \TOline{rotation in rad}{= center \#1 angle \#2}{[rotation in rad=center O angle pi/3](E)} 
 \TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](E)} 
+\TOline{inversion negative}{= center \#1 through \#2}{...} 
 \bottomrule
 \end{tabular}
 
@@ -46,13 +47,11 @@
 \end{NewMacroBox} 
 
 \subsection{Examples of transformations}
-\subsubsection{Example of translation} 
+\subsubsection{translation} 
 
-\subsection{Example of translation}
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[>=latex] 
- \tkzDefPoint(0,0){A}  \tkzDefPoint(3,1){B}
- \tkzDefPoint(3,0){C}  
+ \tkzDefPoints{0/0/A,3/1/B,3/0/C}
  \tkzDefPointBy[translation= from B to A](C) 
  \tkzGetPoint{D} 
  \tkzDrawPoints[teal](A,B,C,D)
@@ -61,37 +60,36 @@
 \end{tikzpicture} 
 \end{tkzexample}
 
-\subsubsection{Example of reflection (orthogonal symmetry)} 
+\subsubsection{reflection (orthogonal symmetry)} 
 
-\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{1.5/-1.5/C,-4.5/2/D}    
- \tkzDefPoint(-4,-2){O} 
- \tkzDefPoint(-2,-2){A}
- \foreach \i in {0,1,...,4}{%
- \pgfmathparse{0+\i * 72}
- \tkzDefPointBy[rotation=%
- center O angle \pgfmathresult](A)
-  \tkzGetPoint{A\i} 
- \tkzDefPointBy[reflection = over C--D](A\i)
-  \tkzGetPoint{A\i'}}
- \tkzDrawPolygon(A0, A2, A4, A1, A3)    
- \tkzDrawPolygon(A0', A2', A4', A1', A3')
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{-2/-2/A,-1/-1/C,-4/2/D,-4/0/O}    
+ \tkzDrawCircle(O,A)
+ \tkzDefPointBy[reflection = over C--D](A)
+ \tkzGetPoint{A'}
+ \tkzDefPointBy[reflection = over C--D](O)
+ \tkzGetPoint{O'}
+ \tkzDrawCircle(O',A')
  \tkzDrawLine[add= .5 and .5](C,D)
+ \tkzDrawPoints(C,D,O,O')
 \end{tikzpicture}
 \end{tkzexample}
 
 
-\subsubsection{Example of \tkzname{homothety} and \tkzname{projection}}
+\subsubsection{\tkzname{homothety} and \tkzname{projection}}
 
-\begin{tkzexample}[vbox,small] 
-\begin{tikzpicture}[scale=1.2] 
-  \tkzDefPoint(0,1){A}   \tkzDefPoint(5,3){B}   \tkzDefPoint(3,4){C} 
-  \tkzDefLine[bisector](B,A,C)                     \tkzGetPoint{a} 
+\begin{tkzexample}[latex=7cm,small] 
+\begin{tikzpicture}
+  \tkzDefPoints{0/1/A,5/3/B,3/4/C}
+  \tkzDefLine[bisector](B,A,C) \tkzGetPoint{a} 
   \tkzDrawLine[add=0 and 0,color=magenta!50 ](A,a) 
-  \tkzDefPointBy[homothety=center A ratio .5](a)   \tkzGetPoint{a'} 
-  \tkzDefPointBy[projection = onto A--B](a')       \tkzGetPoint{k'}  
-  \tkzDefPointBy[projection = onto A--B](a)       \tkzGetPoint{k} 
+  \tkzDefPointBy[homothety=center A ratio .5](a)   
+  \tkzGetPoint{a'} 
+  \tkzDefPointBy[projection = onto A--B](a') 
+  \tkzGetPoint{k'}  
+  \tkzDefPointBy[projection = onto A--B](a) 
+  \tkzGetPoint{k} 
   \tkzDrawLines[add= 0 and .3](A,k A,C)   
   \tkzDrawSegments[blue](a',k' a,k) 
   \tkzDrawPoints(a,a',k,k',A)
@@ -101,21 +99,21 @@
 \end{tkzexample}  
 
 
-\subsubsection{Example of projection}
-\begin{tkzexample}[vbox,small] 
+\subsubsection{\tkzname{projection}}
+\begin{tkzexample}[latex=7cm,small] 
 \begin{tikzpicture}[scale=1.5]  
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(0,4){B}
+ \tkzDefPoints{0/0/A,0/4/B}
  \tkzDefTriangle[pythagore](B,A) \tkzGetPoint{C}
  \tkzDefLine[bisector](B,C,A) \tkzGetPoint{c}
- \tkzInterLL(C,c)(A,B)        \tkzGetPoint{D}
- \tkzDefPointBy[projection=onto B--C](D) \tkzGetPoint{G}
+ \tkzInterLL(C,c)(A,B)  \tkzGetPoint{D}
+ \tkzDefPointBy[projection=onto B--C](D) 
+ \tkzGetPoint{G}
  \tkzInterLC(C,D)(D,A) \tkzGetPoints{E}{F}
- \tkzDrawPolygon[teal](A,B,C)
+ \tkzDrawPolygon(A,B,C)
  \tkzDrawSegment(C,D)
  \tkzDrawCircle(D,A)
- \tkzDrawSegment[orange](D,G)
- \tkzMarkRightAngle[fill=orange!20](D,G,B)
+ \tkzDrawSegment[new](D,G)
+ \tkzMarkRightAngle[fill=orange!10,opacity=.4](D,G,B)
  \tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
  \tkzDrawPoints(B,D,E,G)   
  \tkzLabelPoints[above right](B,D,E,G)
@@ -122,29 +120,27 @@
  \end{tikzpicture}
  \end{tkzexample} 
 
-\subsubsection{Example of symmetry}
-\begin{tkzexample}[vbox,small] 
+\subsubsection{\tkzname{symmetry} }
+\begin{tkzexample}[latex=6cm,small] 
 \begin{tikzpicture}[scale=1]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-1){A}
-  \tkzDefPoint(2,2){B}
+  \tkzDefPoints{2/-1/A,2/2/B,0/0/O}
   \tkzDefPointsBy[symmetry=center O](B,A){}
   \tkzDrawLine(A,A')
   \tkzDrawLine(B,B')
   \tkzMarkAngle[mark=s,arc=lll,
-      size=2 cm,mkcolor=red](A,O,B) 
-  \tkzLabelAngle[pos=1,circle,draw,
-     fill=blue!10](A,O,B){$60^{\circ}$} 
+      size=1.5,mkcolor=red](A,O,B) 
+  \tkzLabelAngle[pos=2,circle,draw,
+    fill=blue!10,font=\scriptsize](A,O,B){$60^{\circ}$}
   \tkzDrawPoints(A,B,O,A',B') 
-  \tkzLabelPoints(A,B,O,A',B') 
-\end{tikzpicture}  
+  \tkzLabelPoints(B,B')
+  \tkzLabelPoints[below](A,O,A')  
+\end{tikzpicture}   
 \end{tkzexample}
 
-\subsubsection{Example of rotation} 
+\subsubsection{\tkzname{rotation} } 
 \begin{tkzexample}[latex=7cm,small] 
 \begin{tikzpicture}[scale=0.5] 
- \tkzDefPoint(0,0){A} 
- \tkzDefPoint(5,0){B}
+ \tkzDefPoints{0/0/A,5/0/B}
  \tkzDrawSegment(A,B)
  \tkzDefPointBy[rotation=center A angle 60](B) 
  \tkzGetPoint{C} 
@@ -152,70 +148,262 @@
  \tkzGetPoint{D} 
  \tkzDrawSegment(A,tkzPointResult) 
  \tkzDrawLine(B,D)
- \tkzDrawArc[orange,delta=10](A,B)(C) 
- \tkzDrawArc[orange,delta=10](B,C)(A)
- \tkzDrawArc[orange,delta=10](C,D)(D)  
- \tkzMarkRightAngle(D,B,A)  
+ \tkzDrawArc(A,B)(C) 
+ \tkzDrawArc(B,C)(A)
+ \tkzDrawArc(C,D)(D)  
+ \tkzMarkRightAngle(D,B,A) 
+ \tkzDrawPoints(A,B) 
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above](C,D)
 \end{tikzpicture}  
 \end{tkzexample}  
 
-\subsubsection{Example of rotation in radian} 
+\subsubsection{\tkzname{rotation in radian}} 
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}
   \tkzDefPoint["$A$" left](1,5){A}
-  \tkzDefPoint["$B$" right](5,2){B}
+  \tkzDefPoint["$B$" right](4,3){B}
   \tkzDefPointBy[rotation in rad= center A angle pi/3](B)
   \tkzGetPoint{C}  
   \tkzDrawSegment(A,B)
   \tkzDrawPoints(A,B,C) 
-  \tkzCompass[color=red](A,C)
-  \tkzCompass[color=red](B,C) 
+  \tkzCompass(A,C)
+  \tkzCompass(B,C) 
   \tkzLabelPoints(C)
 \end{tikzpicture}
 \end{tkzexample} 
 
-\subsubsection{Inversion of points}
-\begin{tkzexample}[latex=8cm,small]  
+\subsubsection{\tkzname{inversion }}
+
+Inversion is the process of transforming points to a corresponding set of points known as their inverse points. Two points $P$ and $P'$ are said to be inverses with respect to an inversion circle having inversion center $O$ and inversion radius $k$ if $P'$ is the perpendicular foot of the altitude of $OQP$, where  $Q$ is a point on the circle such that $OQ$ is perpendicular to $PQ$.\\
+ The quantity $k^2$ is known as the circle power (Coxeter 1969, p. 81).
+(\url{https://mathworld.wolfram.com/Inversion.html})
+
+Some propositions :
+\begin{itemize}
+\item The inverse of a circle (not through the center of inversion) is a circle.
+\item The inverse of a circle through the center of inversion is a line.
+\item The inverse of a line (not through the center of inversion) is a circle through the center of inversion.
+\item A circle orthogonal to the circle of inversion is its own inverse.
+\item A line through the center of inversion is its own inverse.
+\item Angles are preserved in inversion.
+\end{itemize}
+
+Explanation 
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoints{4/0/A,6/0/P,0/0/O}
+  \tkzDefCircle(O,A)
+  \tkzDefLine[orthogonal=through P](O,P)
+  \tkzGetPoint{L}
+  \tkzDefTangent[from = P](O,A) \tkzGetPoints{Q}{R}
+  \tkzDefPointBy[projection=onto O--A](Q) \tkzGetPoint{P'}
+  \tkzDrawSegments(O,P O,A)
+  \tkzDrawSegments[new](O,P O,Q P,Q Q,P')
+  \tkzDrawCircle(O,A)
+  \tkzDrawLines[add=1 and 0](P,L)
+  \tkzLabelPoints[below,font=\scriptsize](O,P')
+  \tkzLabelPoints[above right,font=\scriptsize](P,Q)
+  \tkzDrawPoints(O,P) \tkzDrawPoints[new](Q,P')
+  \tkzLabelSegment[above](O,Q){$k$}
+  \tkzMarkRightAngles(A,P',Q P,Q,O)
+  \tkzLabelCircle[above=.5cm,
+      font=\scriptsize](O,A)(100){inversion circle}
+  \tkzLabelPoint[left,font=\scriptsize](O){inversion center}
+  \tkzLabelPoint[left,font=\scriptsize](L){polar}
+\end{tikzpicture}
+\end{tkzexample} 
+
+Directly 
+(Center O power=$k^2={OA}^2=OP \times OP'$)
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoints{4/0/A,6/0/P,0/0/O}
+  \tkzDefCircle(O,A)
+  \tkzDefPointBy[inversion = center O through A](P)
+  \tkzGetPoint{P'}
+  \tkzDrawSegments(O,P)
+  \tkzDrawCircle(O,A)
+  \tkzLabelPoints[above right,font=\scriptsize](O,A,P,P')
+  \tkzDrawPoints(O,A,P,P')
+\end{tikzpicture}
+\end{tkzexample} 
+
+
+\subsubsection{Inversion of lines}
+\begin{tkzexample}[latex=6cm,small]  
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/O,3/0/I,4/3/P,6/-3/Q}
+\tkzDrawCircle(O,I)
+\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
+\tkzDefPointBy[inversion = center O through I](A)
+\tkzGetPoint{A'}
+\tkzDefPointBy[inversion = center O through I](P)
+\tkzGetPoint{P'}
+\tkzDrawCircle[new,diameter](O,A')
+\tkzDrawLines[add=.25 and .25,red](P,Q)
+\tkzDrawLines[add=.25 and .25](O,A)
+\tkzDrawSegments(O,P)
+\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
+\end{tikzpicture}
+\end{tkzexample} 
+
+\begin{tkzexample}[latex=6cm,small]  
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/O,3/0/I,3/2/P,3/-2/Q}
+\tkzDrawCircle(O,I)
+\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
+\tkzDefPointBy[inversion = center O through I](A)
+\tkzGetPoint{A'}
+\tkzDefPointBy[inversion = center O through I](P)
+\tkzGetPoint{P'}
+\tkzDrawCircle[new,diameter](O,A')
+\tkzDrawLines[add=.25 and .25,red](P,Q)
+\tkzDrawLines[add=.25 and .25](O,A)
+\tkzDrawSegments(O,P)
+\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
+\end{tikzpicture}
+\end{tkzexample}
+
+\begin{tkzexample}[latex=6cm,small]  
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/O,3/0/I,2/1/P,2/-2/Q}
+\tkzDrawCircle(O,I)
+\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
+\tkzDefPointBy[inversion = center O through I](A)
+\tkzGetPoint{A'}
+\tkzDefPointBy[inversion = center O through I](P)
+\tkzGetPoint{P'}
+\tkzDrawCircle[new,diameter](O,A')
+\tkzDrawLines[add=.25 and .75,red](P,Q)
+\tkzDrawLines[add=.25 and .25](O,A')
+\tkzDrawSegments(O,P')
+\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsubsection{Inversion of circle}
+\begin{tkzexample}[latex=6cm,small] 
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/O,3/2/A,2/1/P}
+\tkzDefTangent[from = O](A,P) \tkzGetPoints{T}{X}
+\tkzDefPointsBy[homothety=center O ratio 1.25](A,P,T){}
+\tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D} 
+\tkzCalcLength(A,P)
+\tkzGetLength{rAP}
+\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP]
+\tkzGetPoint{M}
+\tkzDefPointBy[inversion = center O through C](M)
+\tkzGetPoint{M'}
+\tkzDrawCircles(A,P A',P')
+\tkzDrawCircle(O,C)
+\tkzDrawLines[add=0 and .5](O,T' O,A' O,M' O,P')
+\tkzDrawPoints(A,A',P,P',O,T,T',M,M')
+\tkzLabelPoints(O,T,T')
+\tkzLabelPoints[above left](M,M')
+\tkzLabelPoints[below](P,P')
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Inversion of Triangle  with respect to the Incircle}
+\begin{tkzexample}[latex=6cm,small] 
+\begin{tikzpicture}[scale=1]
+\tkzDefPoints{0/0/A,5/1/B,3/6/C}
+\tkzDefTriangleCenter[in](A,B,C) \tkzGetPoint{O} 
+\tkzDefPointBy[projection= onto A--C](O) \tkzGetPoint{b}
+\tkzDefPointBy[projection= onto A--C](O) \tkzGetPoint{b}
+\tkzDefPointBy[projection= onto B--C](O) \tkzGetPoint{a}
+\tkzDefPointBy[projection= onto A--B](O) \tkzGetPoint{c}
+\tkzDefPointsBy[inversion = center O through b](a,b,c)%
+                                             {Ia,Ib,Ic}
+\tkzDefMidPoint(O,Ia) \tkzGetPoint{Ja}
+\tkzDefMidPoint(O,Ib) \tkzGetPoint{Jb}
+\tkzDefMidPoint(O,Ic) \tkzGetPoint{Jc}
+\tkzInterCC(Ja,O)(Jb,O) \tkzGetPoints{O}{x}
+\tkzInterCC(Ja,O)(Jc,O) \tkzGetPoints{y}{O}
+\tkzInterCC(Jb,O)(Jc,O) \tkzGetPoints{O}{z}
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircle(O,b)\tkzDrawPoints(A,B,C,O)
+\tkzDrawCircles[dashed,gray](Ja,y Jb,x Jc,z)
+\tkzDrawArc[line width=1pt,orange](Jb,x)(z)
+\tkzDrawArc[line width=1pt,orange](Jc,z)(y)
+\tkzDrawArc[line width=1pt,orange](Ja,y)(x)
+\tkzLabelPoint[below](A){$A$}\tkzLabelPoint[above](C){$C$}
+\tkzLabelPoint[right](B){$B$}\tkzLabelPoint[below](O){$O$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Inversion: orthogonal circle with inversion circle} 
+The inversion circle itself, circles orthogonal to it, and lines through the inversion center are invariant under inversion. If the circle meets the reference circle, these invariant points of intersection are also on the inverse circle. See I and J in the next figure.
+
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}[scale=1]
+\tkzDefPoint(0,0){O}\tkzDefPoint(1,0){A}
+\tkzDefPoint(-1.5,-1.5){z1} 
+\tkzDefPoint(1.5,-1.25){z2} 
+\tkzDefCircleBy[orthogonal through=z1 and z2](O,A)
+\tkzGetPoint{c} 
+\tkzDrawCircle[new](c,z1) 
+\tkzDefPointBy[inversion =  center O through A](z1)
+\tkzGetPoint{Z1} 
+\tkzInterCC(O,A)(c,z1) \tkzGetPoints{I}{J}
+\tkzDefPointBy[inversion =  center O through A](I)
+\tkzGetPoint{I'}
+\tkzDrawCircle(O,A)
+\tkzDrawPoints(O,A,z1,z2) 
+\tkzDrawPoints[new](c,Z1,I,J) 
+\tkzLabelPoints(O,A,z1,z2,c,Z1,I,J)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{\tkzname{Inversion} and \tkzname{homothety} }
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+\tkzDefPoints{0/0/O,3/2/A,2/1/P}
+\tkzDefTangent[from = O](A,P) \tkzGetPoints{T}{X}
+\tkzDefPointsBy[homothety = center O%
+                ratio 1.25](A,P,T){}
+\tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D}
+\tkzCalcLength(A,P)
+\tkzGetLength{rAP}
+\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP]
+\tkzGetPoint{M}
+\tkzDefPointBy[inversion = center O through C](M)
+\tkzGetPoint{M'}
+\tkzDrawCircles[new](A,P A',P')
+\tkzDrawCircle(O,C)
+\tkzDrawLines[add=0 and .5](O,T' O,A' O,M' O,P')
+\tkzDrawPoints(A,A',P,P',O,T,T',M,M')
+\tkzLabelPoints(O,T,T',M,M')
+\tkzLabelPoints[below](P,P')
+\end{tikzpicture}
+\end{tkzexample}
+
+
+For a more complex example see \tkzname{Pappus} \ref{pappus}
+
+\subsubsection{\tkzname{inversion negative}}
+It's an inversion followed by a symmetry of center $O$
+\begin{tkzexample}[latex=5cm,small]  
 \begin{tikzpicture}[scale=1.5]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(1,0){A}
+  \tkzDefPoints{1/0/A,0/0/O}
   \tkzDefPoint(-1.5,-1.5){z1}
-  \tkzDefPoint(0.35,0){z2} 
-  \tkzDefPointBy[inversion =%
-      center O through A](z1)
+  \tkzDefPoint(0.35,-2){z2} 
+  \tkzDefPointBy[inversion negative = center O through A](z1)
   \tkzGetPoint{Z1} 
-  \tkzDefPointBy[inversion =%
-      center O through A](z2)
+  \tkzDefPointBy[inversion negative = center O through A](z2)
   \tkzGetPoint{Z2}
   \tkzDrawCircle(O,A)  
-  \tkzDrawPoints[color=black,
-      fill=red,size=4](Z1,Z2)    
+  \tkzDrawPoints[color=black, fill=red,size=4](Z1,Z2)    
   \tkzDrawSegments(z1,Z1 z2,Z2)
-  \tkzDrawPoints[color=black,
-      fill=red,size=4](O,z1,z2)
-  \tkzLabelPoints(O,A,z1,z2,Z1,Z2)  
+  \tkzDrawPoints[color=black, fill=red,size=4](O,z1,z2)
+  \tkzLabelPoints[font=\scriptsize](O,A,z1,z2,Z1,Z2)  
 \end{tikzpicture}
 \end{tkzexample} 
 
 
-\subsubsection{Point Inversion: Orthogonal Circles} 
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=1.5]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(1,0){A}
-  \tkzDrawCircle(O,A) 
-  \tkzDefPoint(0.5,-0.25){z1}
-  \tkzDefPoint(-0.5,-0.5){z2}
-  \tkzDefPointBy[inversion = %
-     center O through A](z1)
-  \tkzGetPoint{Z1} 
-  \tkzCircumCenter(z1,z2,Z1)
-  \tkzGetPoint{c}
-  \tkzDrawCircle(c,Z1)
-  \tkzDrawPoints[color=black,
-     fill=red,size=4](O,z1,z2,Z1,O,A) 
-\end{tikzpicture}
-\end{tkzexample}
 
 \subsection{Transformation of multiple points; \tkzcname{tkzDefPointsBy} }
 Variant of the previous macro for defining multiple images.
@@ -239,7 +427,7 @@
 \begin{tabular}{lll}%
 arguments &  examples  &                  \\ 
 \midrule
-\TAline{\parg{list of points}\marg{list of pts}}{(A,B)\{E,F\}}{$E$ is the image of $A$ and $F$ is the image of $B$.}   \\
+\TAline{\parg{list of points}\marg{list of pts}}{(A,B)\{E,F\}}{$E$,$F$ images of $A$, $B$}   \\
 \bottomrule
 \end{tabular}
 
@@ -268,13 +456,12 @@
 \subsubsection{Example of translation}
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[>=latex] 
- \tkzDefPoint(0,0){A}  \tkzDefPoint(3,1){A'}
- \tkzDefPoint(3,0){B}  \tkzDefPoint(1,2){C} 
+ \tkzDefPoints{0/0/A,3/0/B,3/1/A',1/2/C}
  \tkzDefPointsBy[translation= from A to A'](B,C){} 
- \tkzDrawPolygon[color=blue](A,B,C)
- \tkzDrawPolygon[color=red](A',B',C')
- \tkzDrawPoints[color=blue](A,B,C)
- \tkzDrawPoints[color=red](A',B',C') 
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[new](A',B',C')
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[new](A',B',C') 
  \tkzLabelPoints(A,B,A',B')  
  \tkzLabelPoints[above](C,C')
  \tkzDrawSegments[color = gray,->,
@@ -282,4 +469,32 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-\endinput
+\subsubsection{Example of symmetry}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.4]
+  \tkzDefPoint(-4,0){I}
+  \tkzDefPoint(4,0){J}
+  \tkzDefPoint(0,0){O} 
+  \tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H}
+  \tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G} 
+  \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L) 
+  \tkzDrawLines[add=.5 and .5](I,J) 
+  \tkzInterLL(I,K)(J,H) \tkzGetPoint{M}
+  \tkzInterLL(I,G)(J,L) \tkzGetPoint{N}
+  \tkzDefPointsBy[symmetry=center J](L,H){D,E} 
+  \tkzDefPointsBy[symmetry=center I](G,K){C,F}
+  \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N)
+  \tkzDrawCircle[R](O,4)
+  \tkzDrawCircle[R](I,4)
+  \tkzDrawCircle[R](J,4)  
+  \tkzDrawArc(N,D)(C) 
+  \tkzDrawArc(M,F)(E) 
+  \tkzDrawArc(J,E)(D) 
+  \tkzDrawArc(I,C)(F) 
+  \tkzLabelPoints[font=\scriptsize](H,L,K,G,I,J,%
+                                    D,E,C,F,M,N)      
+\end{tikzpicture}  
+\end{tkzexample}  
+
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-points.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-points.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-points.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,16 @@
-\section{Definition of a point}
+\section{First step: fixed points}
 
+The first step in a geometric construction is to define the fixed points from which the figure will be constructed.
+
+The general idea is to avoid manipulating coordinates and to prefer to use the references of the points fixed in the first step or obtained using the tools provided by the package. Even if it's possible, I think it's a bad idea to work directly with coordinates. Preferable is to use named points.
+
+\tkzname{\tkznameofpack} uses macros and vocabulary specific to geometric construction. It is of course possible to use the tools of \TIKZ\ but it seems more logical to me not to mix the different syntaxes.
+
+A point in \tkzname{\tkznameofpack} is a particular "node" for \TIKZ. In the next section we will see how to define points using coordinates. The style of the points (color and shape) will not be discussed. You will find some indications in some examples; for more information you can read the following section \ref{custom}.
+
+
+\section{Definition of a point : \tkzcname{tkzDefPoint} or \tkzcname{tkzDefPoints}}
+
  Points can be specified in any of the following ways:
 \begin{itemize}
 \item Cartesian coordinates;
@@ -8,32 +19,11 @@
 \item Relative points.
 \end{itemize}
 
-Even if it's possible, I think it's a bad idea to work directly with coordinates. Preferable is to use named points.
+
 A point is defined if it has a name linked to a unique pair of decimal numbers. 
  Let $(x,y)$ or $(a:d)$  i.e. ($x$ abscissa, $y$ ordinate) or  ($a$ angle: $d$ distance).
- This is possible because the plan has been provided with an orthonormed Cartesian coordinate system.   The working axes are supposed to be (ortho)normed with unity equal to $1$~cm or something equivalent like $0.39370$~in.
- Now by default if you use a grid or axes, the rectangle used is defined by the coordinate points: $(0,0)$ and $(10,10)$. It's the macro \tkzcname{tkzInit} of the package \tkzNamePack{tkz-base} that creates this rectangle. Look at the following two codes and the result of their compilation:
+ This is possible because the plan has been provided with an orthonormed Cartesian coordinate system.   The working axes are  (ortho)normed with unity equal to $1$~cm.
  
-\begin{tkzexample}[latex=10cm,small]
-\begin{tikzpicture}
-\tkzGrid
-\tkzDefPoint(0,0){O}
-\tkzDrawPoint[red](O)
-\tkzShowBB[line width=2pt,teal]
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(5,5){A}
- \tkzDrawSegment[blue](O,A)
- \tkzDrawPoints[red](O,A)
- \tkzShowBB[line width=2pt,teal]
-\end{tikzpicture}
-\end{tkzexample}
- 
  The Cartesian coordinate $(a,b)$ refers to the
  point $a$ centimeters in the $x$-direction and $b$ centimeters in the
  $y$-direction.
@@ -42,14 +32,20 @@
  and a distance  $d$ from the origin with a dimensional
  unit by default it's the \texttt{cm}.
  
-
-\begin{minipage}[b]{0.5\textwidth}
+ The \tkzNameMacro{tkzDefPoint} macro is used to define a point by assigning coordinates to it. This macro is based on 
+ 
+ \tkzNameMacro{coordinate}, a macro of \TIKZ. It can use \TIKZ-specific options such as \tkzname{shift}. If calculations are required then the \tkzNamePack{xfp} package is chosen. We can use Cartesian or polar coordinates.
+ 
+\begin{minipage}[t]{0.45\textwidth}
  Cartesian coordinates 
-\begin{tkzexample}[vbox,small]
+\begin{tkzexample}[code only,small]
 \begin{tikzpicture}[scale=1] 
-  \tkzInit[xmax=5,ymax=5] 
+  \tkzInit[xmax=5,ymax=5]
+  % necessary to limit
+  % the size of the axes
+  \tkzDrawX[>=latex]
+  \tkzDrawY[>=latex]
   \tkzDefPoints{0/0/O,1/0/I,0/1/J}
-  \tkzDrawXY[noticks,>=latex]
   \tkzDefPoint(3,4){A} 
   \tkzDrawPoints(O,A) 
   \tkzLabelPoint(A){$A_1 (x_1,y_1)$} 
@@ -61,21 +57,22 @@
 \end{tikzpicture}
 \end{tkzexample}%
 \end{minipage}
-\begin{minipage}[b]{0.5\textwidth}
+\begin{minipage}[t]{0.45\textwidth}
  Polar coordinates
-\begin{tkzexample}[vbox,small]
+\begin{tkzexample}[code only,small]
 \begin{tikzpicture}[,scale=1]
   \tkzInit[xmax=5,ymax=5]
+  \tkzDrawX[>=latex]
+  \tkzDrawY[>=latex]  
   \tkzDefPoints{0/0/O,1/0/I,0/1/J}
-  \tkzDefPoint(40:4){P}
-  \tkzDrawXY[noticks,>=triangle 45]    
+  \tkzDefPoint(40:4){P} 
   \tkzDrawSegment[dim={$d$,
                  16pt,above=6pt}](O,P)
   \tkzDrawPoints(O,P) 
   \tkzMarkAngle[mark=none,->](I,O,P) 
-  \tkzFillAngle[fill=blue!20,
-                opacity=.5](I,O,P) 
-  \tkzLabelAngle[pos=1.25](I,O,P){$\alpha$}  
+  \tkzFillAngle[opacity=.5](I,O,P) 
+  \tkzLabelAngle[pos=1.25](I,O,P){%
+                              $\alpha$}  
   \tkzLabelPoint(P){$P  (\alpha : d )$} 
   \tkzDrawPoints[shape=cross](I,J) 
   \tkzLabelPoints(O,I)
@@ -84,22 +81,55 @@
 \end{tkzexample}
 \end{minipage}%
 
-The \tkzNameMacro{tkzDefPoint} macro is used to define a point by assigning coordinates to it. This macro is based on \tkzNameMacro{coordinate}, a macro of \TIKZ. It can use \TIKZ-specific options such as \tkzname{shift}. If calculations are required then the \tkzNamePack{xfp} package is chosen. We can use Cartesian or polar coordinates.
+\begin{minipage}[b]{0.45\textwidth}
+\begin{tikzpicture}[scale=1] 
+  \tkzInit[xmax=5,ymax=5]
+  \tkzDrawX[>=latex]
+  \tkzDrawY[>=latex]
+  \tkzDefPoints{0/0/O,1/0/I,0/1/J}
+  \tkzDefPoint(3,4){A} 
+  \tkzDrawPoints(O,A) 
+  \tkzLabelPoint(A){$A_1 (x_1,y_1)$} 
+  \tkzShowPointCoord[xlabel=$x_1$,ylabel=$y_1$](A) 
+  \tkzLabelPoints(O,I)
+  \tkzLabelPoints[left](J)
+  \tkzDrawPoints[shape=cross](I,J) 
+\end{tikzpicture}
+\end{minipage}
+\begin{minipage}[b]{0.45\textwidth}
+\begin{tikzpicture}[,scale=1]
+  \tkzInit[xmax=5,ymax=5]
+  \tkzDrawX[>=latex]
+  \tkzDrawY[>=latex]  
+  \tkzDefPoints{0/0/O,1/0/I,0/1/J}
+  \tkzDefPoint(40:4){P} 
+  \tkzDrawSegment[dim={$d$,
+                 16pt,above=6pt}](O,P)
+  \tkzDrawPoints(O,P) 
+  \tkzMarkAngle[mark=none,->](I,O,P) 
+  \tkzFillAngle[opacity=.5](I,O,P) 
+  \tkzLabelAngle[pos=1.25](I,O,P){$\alpha$}  
+  \tkzLabelPoint(P){$P  (\alpha : d )$} 
+  \tkzDrawPoints[shape=cross](I,J) 
+  \tkzLabelPoints(O,I)
+  \tkzLabelPoints[left](J) 
+\end{tikzpicture}
+\end{minipage}%
 
 \subsection{Defining a named point  \tkzcname{tkzDefPoint}}
 
-\begin{NewMacroBox}{tkzDefPoint}{\oarg{local options}\parg{$x,y$}\marg{name} or \parg{$\alpha$:$d$}\marg{name}}%
+\begin{NewMacroBox}{tkzDefPoint}{\oarg{local options}\parg{$x,y$}\marg{ref} or \parg{$\alpha$:$d$}\marg{ref}}%
 \begin{tabular}{lll}%
 arguments &  default & definition  \\ 
 \midrule
 \TAline{($x,y$)}{no default}{$x$ and $y$ are two dimensions, by default in cm.}
 \TAline{($\alpha$:$d$)}{no default}{$\alpha$ is an angle in degrees, $d$ is a dimension}
-\TAline{\{name\}}{no default}{Name assigned to the point: $A$, $T_a$ ,$P1$ etc ...}
+\TAline{\{ref\}}{no default}{Reference assigned to the point: $A$, $T\_a$ ,$P1$ or $P_1$}
 \bottomrule
 \end{tabular}
 
 \medskip
-The obligatory arguments of this macro are two dimensions expressed with decimals, in the first case they are two measures of length, in the second case they are a measure of length and the measure of an angle in degrees.
+The obligatory arguments of this macro are two dimensions expressed with decimals, in the first case they are two measures of length, in the second case they are a measure of length and the measure of an angle in degrees. Do not confuse the reference with the name of a point. The reference is used by calculations, but frequently, the name is identical to the reference.
 
 \medskip
 \begin{tabular}{lll}%
@@ -113,9 +143,11 @@
 
 \subsubsection{Cartesian coordinates }
  
-\begin{tkzexample}[latex=7cm,small]
+\begin{tkzexample}[latex=5cm,small]
   \begin{tikzpicture}
-  \tkzInit[xmax=5,ymax=5]
+  \tkzInit[xmax=5,ymax=5] % limits the size of the axes
+  \tkzDrawX[>=latex]
+  \tkzDrawY[>=latex]  
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(4,0){B}
   \tkzDefPoint(0,3){C} 
@@ -129,15 +161,14 @@
  \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1]
   \tkzInit[xmax=4,ymax=4]
-  \tkzGrid
+  \tkzDrawX\tkzDrawY
   \tkzDefPoint(-1+2,sqrt(4)){O}
   \tkzDefPoint({3*ln(exp(1))},{exp(1)}){A}
   \tkzDefPoint({4*sin(pi/6)},{4*cos(pi/6)}){B}
-  \tkzDrawPoints[color=blue](O,B,A)
+  \tkzDrawPoints(O,B,A)
 \end{tikzpicture}
 \end{tkzexample}
 
-
 \subsubsection{Polar coordinates }
 
 \begin{tkzexample}[latex=7cm,small]
@@ -149,18 +180,6 @@
   \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Calculations and coordinates}
-You must follow the syntax of \tkzNamePack{xfp} here. It is always possible to go through \tkzNamePack{pgfmath} but in this case, the coordinates must be calculated before using the macro \tkzcname{tkzDefPoint}.
-
-\begin{tkzexample}[latex=6cm,small]
-  \begin{tikzpicture}[scale=.5]
-  \foreach \an [count=\i] in {0,2,...,358}
-   { \tkzDefPoint(\an:sqrt(sqrt(\an mm))){A_\i}}
-   \tkzDrawPoints(A_1,A_...,A_180)
-  \end{tikzpicture}
-\end{tkzexample}
-
-
 \subsubsection{Relative points}
 First, we can use the \tkzNameEnv{scope} environment from \TIKZ.
 In the following example, we have a way to define an equilateral triangle.
@@ -167,7 +186,6 @@
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1]
-  \tkzSetUpLine[color=blue!60]
  \begin{scope}[rotate=30]
   \tkzDefPoint(2,3){A}
   \begin{scope}[shift=(A)]
@@ -182,14 +200,14 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-%<--------------------------------------------------------------------------->
 \subsection{Point relative to another: \tkzcname{tkzDefShiftPoint}}
-\begin{NewMacroBox}{tkzDefShiftPoint}{\oarg{Point}\parg{$x,y$}\marg{name} or \parg{$\alpha$:$d$}\marg{name}}%
+\begin{NewMacroBox}{tkzDefShiftPoint}{\oarg{Point}\parg{$x,y$}\marg{ref} or \parg{$\alpha$:$d$}\marg{ref}}%
 \begin{tabular}{lll}%
 arguments &  default & definition \\
 \midrule
 \TAline{($x,y$)}{no default}{$x$ and $y$ are two dimensions, by default in cm.}
 \TAline{($\alpha$:$d$)}{no default}{$\alpha$ is an angle in degrees, $d$ is a dimension}
+\TAline{\{ref\}}{no default}{Reference assigned to the point: $A$, $T\_a$ ,$P1$ or $P_1$}
 
 \midrule
 options &  default & definition \\
@@ -199,7 +217,7 @@
 \end{tabular}
 \end{NewMacroBox}
 
-\subsubsection{Isosceles triangle with  \tkzcname{tkzDefShiftPoint}}
+\subsubsection{Isosceles triangle}
 This macro allows you to place one point relative to another. This is equivalent to a translation. Here is how to construct an isosceles triangle with main vertex $A$ and angle at vertex of $30^{\circ} $.
 
 \begin{tkzexample}[latex=7cm,small]
@@ -208,7 +226,7 @@
  \tkzDefShiftPoint[A](0:4){B}
  \tkzDefShiftPoint[A](30:4){C}
  \tkzDrawSegments(A,B B,C C,A)
- \tkzMarkSegments[mark=|,color=red](A,B A,C)
+ \tkzMarkSegments[mark=|](A,B A,C)
  \tkzDrawPoints(A,B,C)
  \tkzLabelPoints(B,C)
  \tkzLabelPoints[above left](A)
@@ -227,7 +245,7 @@
  \tkzDrawPoints(A,B,C)
  \tkzLabelPoints(B,C)
  \tkzLabelPoints[above left](A)
- \tkzMarkSegments[mark=|,color=red](A,B A,C B,C)
+ \tkzMarkSegments[mark=|](A,B A,C B,C)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -244,17 +262,16 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-%<--------------------------------------------------------------------------->
 \subsection{Definition of multiple points: \tkzcname{tkzDefPoints}}
 
-\begin{NewMacroBox}{tkzDefPoints}{\oarg{local options}\marg{$x_1/y_1/n_1,x_2/y_2/n_2$, ...}}%
-$x_i$ and $y_i$ are the coordinates of a referenced point $n_i$
+\begin{NewMacroBox}{tkzDefPoints}{\oarg{local options}\marg{$x_1/y_1/n_1,x_2/y_2/r_2$, ...}}%
+$x_i$ and $y_i$ are the coordinates of a referenced point $r_i$
 
 \begin{tabular}{lll}%
 \toprule
 arguments &  default  & example  \\
 \midrule
-\TAline{$x_i/y_i/n_i$}{}{\tkzcname{tkzDefPoints\{0/0/O,2/2/A\}}}
+\TAline{$x_i/y_i/r_i$}{}{\tkzcname{tkzDefPoints\{0/0/O,2/2/A\}}}
 \end{tabular}
 
 \medskip
@@ -267,7 +284,7 @@
 
 \subsection{Create a triangle}
 \begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=1]
+\begin{tikzpicture}[scale=.75]
  \tkzDefPoints{0/0/A,4/0/B,4/3/C}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawPoints(A,B,C)
@@ -280,132 +297,8 @@
 \begin{tikzpicture}[scale=1]
  \tkzDefPoints{0/0/A,2/0/B,2/2/C,0/2/D}
  \tkzDrawPolygon(A,...,D)
- \tkzDrawPoints(A,B,C,D)
+ \tkzDrawPoints(A,...,D)
 \end{tikzpicture}
 \end{tkzexample}
 
-\section{Special points}
-The introduction of the dots was done in \tkzname{tkz-base}, the most important macro being \tkzcname{tkzDefPoint}. Here are some special points.
-%<--------------------------------------------------------------------------->
-\subsection{Middle of a segment \tkzcname{tkzDefMidPoint}}
-It is a question of determining the middle of a segment.
-
-\begin{NewMacroBox}{tkzDefMidPoint}{\parg{pt1,pt2}}%
-The result is in \tkzname{tkzPointResult}. We can access it with \tkzcname{tkzGetPoint}.
-
- \medskip
-\begin{tabular}{lll}%
-\toprule
-arguments & default & definition \\
-\midrule
-\TAline{(pt1,pt2)}{no default}{pt1 and pt2 are two points}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Use of \tkzcname{tkzDefMidPoint}}
-Review the use of \tkzcname{tkzDefPoint} in \tkzNamePack{tkz-base}.
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoint(2,3){A}
- \tkzDefPoint(4,0){B}
- \tkzDefMidPoint(A,B) \tkzGetPoint{C}
- \tkzDrawSegment(A,B)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints[right](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Barycentric coordinates }
-
-$pt_1$, $pt_2$, \dots, $pt_n$ being $n$ points, they define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin of the referential as the common endpoint. $\alpha_1$, $\alpha_2$,
-\dots $\alpha_n$ are $n$ numbers, the vector obtained by:
-\begin{align*}
-  \frac{\alpha_1 \overrightarrow{v_1} + \alpha_2 \overrightarrow{v_2} + \cdots + \alpha_n \overrightarrow{v_n}}{\alpha_1
-    + \alpha_2 + \cdots + \alpha_n}
-\end{align*}
-defines a single point.
-
-\begin{NewMacroBox}{tkzDefBarycentricPoint}{\parg{pt1=$\alpha_1$,pt2=$\alpha_2$,\dots}}%
-\begin{tabular}{lll}%
-arguments & default & definition \\
-\midrule
-\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight}
-\bottomrule
-\end{tabular}
-
-\medskip
-You need at least two points.
-\end{NewMacroBox}
-
-
-\subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with two points}
-In the following example, we obtain the barycentre of points $A$ and $B$ with coefficients $1$ and $2$, in other words:
-\[
-  \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB}
-\]
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(2,3){A}
-  \tkzDefShiftPointCoord[2,3](30:4){B}
-  \tkzDefBarycentricPoint(A=1,B=2)
-  \tkzGetPoint{I}
-  \tkzDrawPoints(A,B,I)
-  \tkzDrawLine(A,B)
-  \tkzLabelPoints(A,B,I)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with three points}
-This time $M$ is simply the centre of gravity of the triangle. For reasons of simplification and homogeneity, there is also \tkzcname{tkzCentroid}.
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.8]
-  \tkzDefPoint(2,1){A}
-  \tkzDefPoint(5,3){B}
-  \tkzDefPoint(0,6){C}
-  \tkzDefBarycentricPoint(A=1,B=1,C=1)
-  \tkzGetPoint{M}
-  \tkzDefMidPoint(A,B)  \tkzGetPoint{C'}
-  \tkzDefMidPoint(A,C)  \tkzGetPoint{B'}
-  \tkzDefMidPoint(C,B)  \tkzGetPoint{A'}
-  \tkzDrawPolygon(A,B,C)
-  \tkzDrawPoints(A',B',C')
-  \tkzDrawPoints(A,B,C,M)
-  \tkzDrawLines[add=0 and 1](A,M B,M C,M)
-  \tkzLabelPoint(M){$M$}
-  \tkzAutoLabelPoints[center=M](A,B,C)
-  \tkzAutoLabelPoints[center=M,above right](A',B',C')
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Internal Similitude Center}
-The centres of the two homotheties in which two circles correspond are called external and internal centres of similitude.
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.75,rotate=-30]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(4,-5){A}
- \tkzDefIntSimilitudeCenter(O,3)(A,1) 
- \tkzGetPoint{I}
- \tkzExtSimilitudeCenter(O,3)(A,1) 
- \tkzGetPoint{J}
- \tkzDefTangent[from with R= I](O,3 cm)  
- \tkzGetPoints{D}{E}
- \tkzDefTangent[from with R= I](A,1 cm)  
- \tkzGetPoints{D'}{E'}
- \tkzDefTangent[from  with R= J](O,3 cm) 
- \tkzGetPoints{F}{G}
- \tkzDefTangent[from with R= J](A,1 cm)   
- \tkzGetPoints{F'}{G'}
- \tkzDrawCircle[R,fill=red!50,opacity=.3](O,3 cm)
- \tkzDrawCircle[R,fill=blue!50,opacity=.3](A,1 cm)
- \tkzDrawSegments[add = .5 and .5,color=red](D,D' E,E')
- \tkzDrawSegments[add= 0 and 0.25,color=blue](J,F J,G)
- \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
- \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
-\end{tikzpicture}
-\end{tkzexample}
-
-\endinput
-
-
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointsSpc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointsSpc.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointsSpc.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,33 +1,323 @@
-\section{Special points relating to a triangle}
+Now that the fixed points are defined, we can with their references using macros from the package or macros that you will create get new points. The calculations may not be apparent but they are usually done by the package.
+Vous aurez peut-être besoin d'utiliser certains constantes mathématiques, voici la liste des constantes définies par le package.
 
-\subsection{Triangle center: \tkzcname{tkzDefTriangleCenter}}
+\section{Auxiliary tools}
+\subsection{Constants}
 
-This macro allows you to define the center of a triangle.
+\tkzname{\tkznameofpack} knows some constants, here is the list:
+\begin{tkzltxexample}[]
+  \def\tkzPhi{1.618034}
+  \def\tkzInvPhi{0.618034}
+  \def\tkzSqrtPhi{1.27202}
+  \def\tkzSqrTwo{1.414213}
+  \def\tkzSqrThree{1.7320508}
+  \def\tkzSqrFive{2.2360679}
+  \def\tkzSqrTwobyTwo{0.7071065}
+  \def\tkzPi{3.1415926}
+  \def\tkzEuler{2.71828182}
+\end{tkzltxexample}
 
+\subsection{New  point by calculation }
 
-\begin{NewMacroBox}{tkzDefTriangleCenter}{\oarg{local options}\parg{A,B,C}}%
-\tkzHandBomb\ Be careful, the arguments are lists of three points. This macro is used in conjunction with \tkzcname{tkzGetPoint} to get the center you are looking for. You can use \tkzname{tkzPointResult} if it is not necessary to keep the results.
+When a macro of \tkzname{tkznameofpack} creates a new point, it is stored internally with the reference \tkzname{tkzPointResult}. You can assign your own reference to it. This is done with the macro \tkzcname{tkzGetPoint}. A new reference is created, your choice of reference must be placed between braces.
 
-\medskip
+\begin{NewMacroBox}{tkzGetPoint}{\marg{ref}}%
+If the result is in \tkzname{tkzPointResult}, you can access it with \tkzcname{tkzGetPoint}.
+
+ \medskip
 \begin{tabular}{lll}%
 \toprule
+arguments & default & example \\
+\midrule
+\TAline{ref}{no default}{ \tkzcname{tkzGetPoint\{M\} } see the next example}
+\end{tabular}
+\end{NewMacroBox}
+
+Sometimes you need to get two points. It's possible with 
+
+\begin{NewMacroBox}{tkzGetPoints}{\marg{ref1}\marg{ref2}}%
+The result is in \tkzname{tkzPointFirstResult} and \tkzname{tkzPointSecondResult}. 
+
+ \medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & default & example \\
+\midrule
+\TAline{\{ref1,ref2\}}{no default}{ \tkzcname{tkzGetPoints\{M,N\} } It's the case with \tkzcname{tkzInterCC}}
+\end{tabular}
+\end{NewMacroBox}
+
+If you need only the first or the second point you can also use :
+
+\begin{NewMacroBox}{tkzGetFirstPoint}{\marg{ref1}}%
+  
+ \medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & default & example \\
+\midrule
+\TAline{ref1}{no default}{ \tkzcname{tkzGetFirstPoint\{M\} }}
+\end{tabular}
+\end{NewMacroBox}
+
+\begin{NewMacroBox}{tkzGetSecondPoint}{\marg{ref2}}%
+
+ \medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & default & example \\
+\midrule
+\TAline{ref2}{no default}{ \tkzcname{tkzGetSecondPoint\{M\} }}
+\end{tabular}
+\end{NewMacroBox}
+
+Parfois les résultats consistent en un point et une dimension. Vous obtenez le point avec \tkzcname{tkzGetPoint} et la dimension avec \tkzcname{tkzGetLength}.
+
+\begin{NewMacroBox}{tkzGetLength}{\marg{name of a macro}}%
+  
+ \medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & default & example \\
+\midrule
+\TAline{name of a macro}{no default}{ \tkzcname{tkzGetLength\{rAB\} \tkzcname{rAB} gives the length in cm}}
+\end{tabular}
+\end{NewMacroBox}
+
+%\tkzcname{tkzCalcLength}(A,B) After \tkzcname{tkzGetLength\{dAB\}} \tkzcname{dAB} gives $AB$ in cm}
+
+
+\section{Special points}
+Here are some special points.
+%<--------------------------------------------------------------------------->
+\subsection{Middle of a segment \tkzcname{tkzDefMidPoint}}
+It is a question of determining the middle of a segment.
+
+\begin{NewMacroBox}{tkzDefMidPoint}{\parg{pt1,pt2}}%
+The result is in \tkzname{tkzPointResult}. We can access it with \tkzcname{tkzGetPoint}.
+
+ \medskip
+\begin{tabular}{lll}%
+\toprule
 arguments & default & definition \\
+\midrule
+\TAline{(pt1,pt2)}{no default}{pt1 and pt2 are two points}
+\end{tabular}
+\end{NewMacroBox}
 
+\subsubsection{Use of \tkzcname{tkzDefMidPoint}}
+Review the use of \tkzcname{tkzDefPoint}.
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(2,3){A}
+ \tkzDefPoint(6,2){B}
+ \tkzDefMidPoint(A,B) 
+ \tkzGetPoint{M}
+ \tkzDrawSegment(A,B)
+ \tkzDrawPoints(A,B,M)
+ \tkzLabelPoints[below](A,B,M)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Barycentric coordinates }
+
+$pt_1$, $pt_2$, \dots, $pt_n$ being $n$ points, they define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin of the referential as the common endpoint. $\alpha_1$, $\alpha_2$,
+\dots $\alpha_n$ are $n$ numbers, the vector obtained by:
+\begin{align*}
+  \frac{\alpha_1 \overrightarrow{v_1} + \alpha_2 \overrightarrow{v_2} + \cdots + \alpha_n \overrightarrow{v_n}}{\alpha_1
+    + \alpha_2 + \cdots + \alpha_n}
+\end{align*}
+defines a single point.
+
+\begin{NewMacroBox}{tkzDefBarycentricPoint}{\parg{pt1=$\alpha_1$,pt2=$\alpha_2$,\dots}}%
+\begin{tabular}{lll}%
+arguments & default & definition \\
 \midrule
-\TAline{(pt1,pt2,pt3)}{no default}{three points}
+\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight}
+\bottomrule
+\end{tabular}
+
+\medskip
+You need at least two points. Result in \tkzname{tkzPointResult}.
+\end{NewMacroBox}
+
+
+\subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with two points}
+In the following example, we obtain the barycentre of points $A$ and $B$ with coefficients $1$ and $2$, in other words:
+\[
+  \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB}
+\]
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(2,3){A}
+  \tkzDefShiftPointCoord[2,3](30:4){B}
+  \tkzDefBarycentricPoint(A=1,B=2)
+  \tkzGetPoint{G}
+  \tkzDrawLine(A,B)
+  \tkzDrawPoints(A,B,G)
+  \tkzLabelPoints(A,B,G)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with three points}
+This time $M$ is simply the center of gravity of the triangle.
+
+ For reasons of simplification and homogeneity, there is also \tkzcname{tkzCentroid}.
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.8]
+  \tkzDefPoints{2/1/A,5/3/B,0/6/C}
+  \tkzDefBarycentricPoint(A=1,B=1,C=1)
+  \tkzGetPoint{G}
+  \tkzDefMidPoint(A,B)  \tkzGetPoint{C'}
+  \tkzDefMidPoint(A,C)  \tkzGetPoint{B'}
+  \tkzDefMidPoint(C,B)  \tkzGetPoint{A'}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawLines[add=0 and 1,new](A,G B,G C,G)
+  \tkzLabelPoint(G){$G$}
+  \tkzDrawPoints[new](A',B',C',G)
+  \tkzDrawPoints(A,B,C)
+  \tkzAutoLabelPoints[center=G](A,B,C)
+  \tkzAutoLabelPoints[center=G,above right](A',B',C')
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Golden ration}
+From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ $a > b > 0$ $a+b$ is to $a$ as $a$ is to $b$.
+
+$ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$
+
+
+One of the two solutions to the equation $x^2 - x - 1 = 0$
+is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$.
+
+\begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}%
+\begin{tabular}{lll}%
+arguments & default & example \\
 \midrule
+\TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}}
+\bottomrule
+\end{tabular}
+
+\medskip
+$AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$
+\end{NewMacroBox}
+
+\subsection{Use the golden ratio to divide a line segment}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/C}
+ \tkzDefMidPoint(A,C) \tkzGetPoint{I}
+ %\tkzDefPointWith[linear,K=\tkzInvPhi](A,C) 
+ \tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
+ \tkzDrawSegments(A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Internal Similitude Center}
+The centres of the two homotheties in which two circles correspond are called external and internal centres of similitude.
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[rotate=30]
+ \tkzDefPoints{0/0/O,4/-5/A}
+ \tkzDefPoints{3/0/x,5/-5/y}
+ \pgfmathsetmacro\R{3}\pgfmathsetmacro\r{1}
+ \tkzDefIntSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{I}
+ \tkzDefExtSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{J}
+ \tkzDefTangent[from  with R= I](O,3)   \tkzGetPoints{D}{E}
+ \tkzDefTangent[from with R= I](A,1)    \tkzGetPoints{D'}{E'}
+ \tkzDefTangent[from  with R= J](O,3)   \tkzGetPoints{F}{G}
+ \tkzDefTangent[from with R= J](A,1)    \tkzGetPoints{F'}{G'}
+ \tkzDrawCircles(O,x A,y)               \tkzDrawCircles[R](O,3 A,1)
+ \tkzDrawSegments[add = .5 and .5,new](D,D' E,E')
+ \tkzDrawSegments[add= 0 and 0.25,new](J,F J,G)
+ \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
+ \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
+\end{tikzpicture}
+\end{tkzexample}
+
+You can \tkzcname{tkzDefBarycentricPoint} to find a homothetic center
+
+|\tkzDefBarycentricPoint(O=\r,A=\R)     \tkzGetPoint{I}| \\
+|\tkzDefBarycentricPoint(O={-\r},A=\R)  \tkzGetPoint{J}|
+ 
+%<---------------------------------------------------------------------->
+\subsection{ Equidistant points}
+%<---------------------------------------------------------------------->
+\subsubsection{\tkzcname{tkzDefEquiPoints}}
+\begin{NewMacroBox}{tkzDefEquiPoints}{\oarg{local options}\parg{pt1,pt2}}%
+\begin{tabular}{lll}%
+arguments &  default & definition \\
+\midrule
+\TAline{(pt1,pt2)}{no default}{unordered list of two items}
+\end{tabular}
+
+\begin{tabular}{lll}%
+options             & default & definition  \\
+\midrule
+\TOline{dist} {2 (cm)} {half the distance between the two points}
+\TOline{from=pt} {no default} {reference point}
+\TOline{show} {false} {if true displays compass traces}
+\TOline{/compass/delta} {0} {compass trace size }
+\end{tabular}
+\end{NewMacroBox}
+
+This macro makes it possible to obtain two points on a straight line equidistant from a given point.
+\subsubsection{Using \tkzcname{tkzDefEquiPoints} with options}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzSetUpCompass[color=purple,line width=1pt]
+  \tkzDefPoints{0/1/A,5/2/B,3/4/C}
+  \tkzDefEquiPoints[from=C,dist=1,show,
+      /tkzcompass/delta=20](A,B)
+   \tkzGetPoints{E}{H}
+   \tkzDrawLines[color=blue](C,E C,H A,B)
+   \tkzDrawPoints[color=blue](A,B,C)
+   \tkzDrawPoints[color=red](E,H)
+   \tkzLabelPoints(E,H)
+   \tkzLabelPoints[color=blue](A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\newpage
+\section{Special points relating to a triangle}
+
+\subsection{Triangle center: \tkzcname{tkzDefTriangleCenter}}
+
+\begin{NewMacroBox}{tkzDefTriangleCenter}{\oarg{local options}\parg{A,B,C}}%
+\tkzHandBomb\ This macro allows you to define the center of a triangle.. Be careful, the arguments are lists of three points. This macro is used in conjunction with \tkzcname{tkzGetPoint} to get the center you are looking for.
+
+ You can use \tkzname{tkzPointResult} if it is not necessary to keep the results.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & default & example \\
+\midrule
+\TAline{(pt1,pt2,pt3)}{no default}{ \tkzcname{tkzDefTriangleCenter[ortho](B,C,A)}}
+\midrule
 options             & default & definition                         \\
 \midrule
-\TOline{ortho}  {circum}{intersection of the altitudes of a triangle}
-\TOline{centroid} {circum}{centre of gravity. Intersection of the medians }
+\TOline{ortho}  {circum}{intersection of the altitudes}
+\TOline{orthic}  {circum}{\dots}
+\TOline{centroid} {circum}{intersection of the medians}
+\TOline{median} {circum}{ \dots }
 \TOline{circum}{circum}{circle center circumscribed}
 \TOline{in}    {circum}{center of the circle inscribed in a triangle }
+\TOline{in}    {circum}{intersection of the bisectors}
 \TOline{ex}    {circum}{center of a circle exinscribed to a triangle }
 \TOline{euler}{circum}{center of Euler's circle }
-\TOline{symmedian} {circum}{Lemoine's point or symmedian centre or Grebe's point }
-\TOline{spieker} {circum}{Spieker Circle Center}
+\TOline{gergonne}{circum}{defined with the Contact triangle}
+\TOline{symmedian} {circum}{Lemoine's point or symmedian center or Grebe's point }
+\TOline{lemoine} {circum}{ \dots}
+\TOline{grebe} {circum}{ \dots}
+\TOline{spieker} {circum}{Spieker circle center}
 \TOline{nagel}{circum}{Nagel Center}
-\TOline{mittenpunkt} {circum}{also called the middlespoint}
+\TOline{mittenpunkt} {circum}{Or middlespoint}
 \TOline{feuerbach}{circum}{Feuerbach Point}
 
 \end{tabular}
@@ -36,35 +326,33 @@
 \subsubsection{Option \tkzname{ortho} or \tkzname{orthic}}
  The intersection $H$ of the three altitudes  of a triangle is called the orthocenter.
 
-\begin{tkzexample}[latex=5cm,small]
+\begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(5,1){B}
   \tkzDefPoint(1,4){C}
-  \tkzClipPolygon(A,B,C)
   \tkzDefTriangleCenter[ortho](B,C,A)
-    \tkzGetPoint{H}
+  \tkzGetPoint{H}
   \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
-  \tkzDrawPolygon[color=blue](A,B,C)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawSegments[new](A,Ha B,Hb C,Hc)  
   \tkzDrawPoints(A,B,C,H)
-  \tkzDrawLines[add=0 and 1](A,Ha B,Hb C,Hc)
   \tkzLabelPoint(H){$H$}
   \tkzAutoLabelPoints[center=H](A,B,C)
-  \tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A)
+ \tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A)
 \end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Option \tkzname{centroid}}
-\begin{tkzexample}[latex=5cm,small]
+\begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[scale=.75]
-  \tkzDefPoints{-1/1/A,5/1/B}
-  \tkzDefEquilateral(A,B)
-  \tkzGetPoint{C}
+  \tkzDefPoints{0/0/A,5/0/B,1/4/C}
   \tkzDefTriangleCenter[centroid](A,B,C)
-      \tkzGetPoint{G}
-  \tkzDrawPolygon[color=brown](A,B,C)
+  \tkzGetPoint{G}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawLines[add = 0 and 2/3,new](A,G B,G C,G)
   \tkzDrawPoints(A,B,C,G)
-  \tkzDrawLines[add = 0 and 2/3](A,G B,G C,G)
+  \tkzLabelPoint(G){$G$}
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -73,91 +361,83 @@
  \begin{tikzpicture}
   \tkzDefPoints{0/1/A,3/2/B,1/4/C}
   \tkzDefTriangleCenter[circum](A,B,C)
-  \tkzGetPoint{G}
-  \tkzDrawPolygon[color=brown](A,B,C)
-  \tkzDrawCircle(G,A)
-  \tkzDrawPoints(A,B,C,G)
- \end{tikzpicture}
+  \tkzGetPoint{O}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawCircle(O,A)
+  \tkzDrawPoints(A,B,C,O)
+  \tkzLabelPoint(O){$O$}
+\end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Option \tkzname{in}}
 In geometry, the incircle or inscribed circle of a triangle is the largest circle contained in the triangle; it touches (is tangent to) the three sides. The center of the incircle is a triangle center called the triangle's incenter.
-The center of the incircle, called the incenter, can be found as the intersection of the three internal angle bisectors. The center of an excircle is the intersection of the internal bisector of one angle (at vertex $A$, for example) and the external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex $A$, or the excenter of $A$. Because the internal bisector of an angle is perpendicular to its external bisector, it follows that the center of the incircle together with the three excircle centers form an orthocentric system.(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle})
+The center of the incircle, called the incenter, can be found as the intersection of the three internal angle bisectors. The center of an excircle is the intersection of the internal bisector of one angle (at vertex $A$, for example) and the external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex $A$, or the excenter of $A$. Because the internal bisector of an angle is perpendicular to its external bisector, it follows that the center of the incircle together with the three excircle centers form an orthocentric system.\\
+(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle})
  
  \medskip
  We get the centre of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
 
-\begin{tkzexample}[latex=6cm,small]
+\begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}
-  \tkzDefPoints{0/1/A,3/2/B,1/4/C}
-  \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
-  \tkzDefPointBy[projection=onto A--C](I)
-  \tkzGetPoint{Ib}
-  \tkzDrawPolygon[color=blue](A,B,C)
-  \tkzDrawPoints(A,B,C,I)
-  \tkzDrawLines[add = 0 and 2/3](A,I B,I C,I)
-  \tkzDrawCircle(I,Ib)
+\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+\tkzDefTriangleCenter[in](A,B,C)  
+   \tkzGetPoint{I}
+\tkzDrawLines(A,B B,C C,A)   
+\tkzDrawCircle[in](A,B,C)
+\tkzDrawPoint[red](I)
+\tkzDrawPoints(A,B,C)
+\tkzLabelPoint(I){$I$}
 \end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Option \tkzname{ex}}
-An excircle or escribed circle of the triangle is a circle lying outside the triangle, tangent to one of its sides and tangent to the extensions of the other two. Every triangle has three distinct excircles, each tangent to one of the triangle's sides.
+An excircle or escribed circle of the triangle is a circle lying outside the triangle, tangent to one of its sides and tangent to the extensions of the other two. Every triangle has three distinct excircles, each tangent to one of the triangle's sides.\\
 (\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle})
 
 
  We get the centre of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
 
-\begin{tkzexample}[latex=8cm,small]
-  \begin{tikzpicture}[scale=.5]
-    \tkzDefPoints{0/1/A,3/2/B,1/4/C}
-    \tkzDefTriangleCenter[ex](B,C,A)
-    \tkzGetPoint{J_c}
-    \tkzDefPointBy[projection=onto A--B](J_c)
-    \tkzGetPoint{Tc}
-    %or
-    % \tkzDefCircle[ex](B,C,A)
-    % \tkzGetFirstPoint{J_c}
-    % \tkzGetSecondPoint{Tc}
-    \tkzDrawPolygon[color=blue](A,B,C)
-    \tkzDrawPoints(A,B,C,J_c)
-    \tkzDrawCircle[red](J_c,Tc)
-    \tkzDrawLines[add=1.5 and 0](A,C B,C)
-    \tkzLabelPoints(J_c)
-  \end{tikzpicture}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+  \tkzDefPoints{0/1/A,3/2/B,1/4/C}
+  \tkzDefTriangleCenter[ex](B,C,A)
+  \tkzGetPoint{J_c}
+  \tkzDefPointBy[projection=onto A--B](J_c)
+  \tkzGetPoint{Tc}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawCircle[new](J_c,Tc)
+  \tkzDrawLines[add=1.5 and 0](A,C B,C)
+  \tkzDrawPoints(A,B,C,J_c)
+  \tkzLabelPoints(J_c)
+\end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Option \tkzname{euler}}
-This macro allows to obtain the center of the circle of the nine points or euler's circle or Feuerbach's circle.
-The nine-point circle, also called Euler's circle or the Feuerbach circle, is the circle that passes through the perpendicular feet $H_A$, $H_B$, and $H_C$ dropped from the vertices of any reference triangle $ABC$ on the sides opposite them. Euler showed in 1765 that it also passes through the midpoints $M_A$, $M_B$, $M_C$ of the sides of $ABC$. By Feuerbach's theorem, the nine-point circle also passes through the midpoints $E_A$, $E_B$, and $E_C$ of the segments that join the vertices and the orthocenter $H$. These points are commonly referred to as the Euler points. (\url{http://mathworld.wolfram.com/Nine-PointCircle.html})
+This macro allows to obtain the center of the circle of the nine points or euler's circle or Feuerbach's circle. The nine-point circle, also called Euler's circle or the Feuerbach circle, is the circle that passes through the perpendicular feet $H_A$, $H_B$, and $H_C$ dropped from the vertices of any reference triangle $ABC$ on the sides opposite them. Euler showed in 1765 that it also passes through the midpoints $M_A$, $M_B$, $M_C$ of the sides of $ABC$. By Feuerbach's theorem, the nine-point circle also passes through the midpoints $E_A$, $E_B$, and $E_C$ of the segments that join the vertices and the orthocenter $H$. These points are commonly referred to as the Euler points.\\ (\url{https://mathworld.wolfram.com/Nine-PointCircle.html})
 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1]
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}[scale=1,rotate=90]
  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
- \tkzDefSpcTriangle[medial,
-     name=M](A,B,C){_A,_B,_C}
- \tkzDefTriangleCenter[euler](A,B,C)
-    \tkzGetPoint{N} % I= N nine points
- \tkzDefTriangleCenter[ortho](A,B,C)
-    \tkzGetPoint{H}
+ \tkzDefSpcTriangle[medial,name=M](A,B,C){_A,_B,_C}
+ \tkzDefTriangleCenter[euler](A,B,C)\tkzGetPoint{N} 
+ % I= N nine points
+ \tkzDefTriangleCenter[ortho](A,B,C)\tkzGetPoint{H}
  \tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
  \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
  \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
  \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
- \tkzDrawPolygon[color=blue](A,B,C)
- \tkzDrawCircle(N,E_A)
- \tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawCircle[new](N,E_A)
+ \tkzDrawSegments[new](A,H_A B,H_B C,H_C)
  \tkzDrawPoints(A,B,C,N,H)
- \tkzDrawPoints[red](M_A,M_B,M_C)
- \tkzDrawPoints[blue]( H_A,H_B,H_C)
+ \tkzDrawPoints[new](M_A,M_B,M_C)
+ \tkzDrawPoints( H_A,H_B,H_C)
  \tkzDrawPoints[green](E_A,E_B,E_C)
  \tkzAutoLabelPoints[center=N,
-  font=\scriptsize](A,B,C,%
-   M_A,M_B,M_C,%
-   H_A,H_B,H_C,%
-   E_A,E_B,E_C)
+ font=\scriptsize](A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,E_A,E_B,E_C)
  \tkzLabelPoints[font=\scriptsize](H,N)
  \tkzMarkSegments[mark=s|,size=3pt,
-     color=blue,line width=1pt](B,E_B E_B,H)
+ color=blue,line width=1pt](B,E_B E_B,H)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -164,6 +444,9 @@
 
 \subsubsection{Option \tkzname{symmedian}}
 
+The point of concurrence $K$ of the symmedians, sometimes also called the Lemoine point (in England and France) or the Grebe point (in Germany).\\
+\href{https://mathworld.wolfram.com/SymmedianPoint.html}{Weisstein, Eric W. "Symmedian Point." From MathWorld--A Wolfram Web Resource.} 
+
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}
   \tkzDefPoint(0,0){A}
@@ -174,39 +457,83 @@
   \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
   \tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
   \tkzDefSpcTriangle[incentral,name=I](A,B,C){a,b,c}
-  \tkzDrawPolygon[color=blue](A,B,C)
-  \tkzDrawLines[add = 0 and 2/3,blue](A,K B,K C,K)
-  \tkzDrawSegments[red,dashed](A,Ma B,Mb C,Mc)
-  \tkzDrawSegments[orange,dashed](A,Ia B,Ib C,Ic)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawLines[add = 0 and 2/3,new](A,K B,K C,K)
+  \tkzDrawSegments[color=cyan](A,Ma B,Mb C,Mc)
+  \tkzDrawSegments[color=green](A,Ia B,Ib C,Ic)
   \tkzDrawLine[add=2 and 2](G,I)
   \tkzDrawPoints(A,B,C,K,G,I)
+  \tkzLabelPoints[font=\scriptsize](A,B,K,G,I)
+  \tkzLabelPoints[above,font=\scriptsize](C)
 \end{tikzpicture}
 \end{tkzexample}
 
+\subsubsection{Option \tkzname{spieker}}
+The Spieker center is the center $Sp$ of the Spieker circle, i.e., the incenter of the medial triangle of a reference triangle.\\
+\href{https://mathworld.wolfram.com/SpiekerCenter.html}{Weisstein, Eric W. "Spieker Center." From MathWorld--A Wolfram Web Resource. }
 
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/B,5/5/C}
+ \tkzDefSpcTriangle[medial](A,B,C){Ma,Mb,Mc}
+ \tkzDefTriangleCenter[centroid](A,B,C) 
+ \tkzGetPoint{G}
+ \tkzDefTriangleCenter[spieker](A,B,C) 
+ \tkzGetPoint{Sp}
+ \tkzDrawPolygon[](A,B,C)
+ \tkzDrawPolygon[new](Ma,Mb,Mc)
+ \tkzDrawCircle[in](Ma,Mb,Mc)
+ \tkzDrawPoints(B,C,A,Sp,Ma,Mb,Mc)
+ \tkzAutoLabelPoints[center=G,dist=.3](Ma,Mb,Mc)
+ \tkzLabelPoints[right](Sp)
+ \tkzAutoLabelPoints[center=G](A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Option \tkzname{gergonne}}
+
+The Gergonne Point is the point of concurrency which results from connecting the vertices of a triangle to the opposite points of tangency of the triangle's incircle. 
+(Joseph Gergonne French mathematician )
+
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/B,3.6/0/C,2.8/4/A}
+\tkzDefTriangleCenter[gergonne](A,B,C) 
+\tkzGetPoint{Ge}
+\tkzDefSpcTriangle[intouch](A,B,C){C_1,C_2,C_3}
+\tkzDrawCircle[in](A,B,C)
+\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
+\tkzDrawSegments[new](A,C_1 B,C_2 C,C_3)
+\tkzDrawPoints(A,...,C,C_1,C_2,C_3)
+\tkzDrawPoints[red](Ge)
+\tkzLabelPoints(A,...,C,C_1,C_2,C_3,Ge)
+\end{tikzpicture}
+\end{tkzexample}
+
 \subsubsection{Option \tkzname{nagel}}
-Let $Ta$ be the point at which the excircle with center $Ja$ meets the side $BC$ of a triangle $ABC$, and define $Tb$ and $Tc$ similarly. Then the lines $ATa$, $BTb$, and $CTc$ concur in the Nagel point $Na$.
-\href{http://mathworld.wolfram.com/NagelPoint.html}{Weisstein, Eric W. "Nagel point." From MathWorld--A Wolfram Web Resource. }
+Let $Ta$ be the point at which the excircle with center $Ja$ meets the side $BC$ of a triangle $ABC$, and define $Tb$ and $Tc$ similarly. Then the lines $ATa$, $BTb$, and $CTc$ concur in the Nagel point $Na$.\\
+\href{https://mathworld.wolfram.com/NagelPoint.html}{Weisstein, Eric W. "Nagel point." From MathWorld--A Wolfram Web Resource. }
 
 
-\begin{tkzexample}[latex=8cm,small]
+\begin{tkzexample}[latex=7cm,small]
   \begin{tikzpicture}[scale=.5]
   \tkzDefPoints{0/0/A,6/0/B,4/6/C}
   \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
   \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
-  \tkzDrawPoints(Ja,Jb,Jc,Ta,Tb,Tc)
-  \tkzLabelPoints(Ja,Jb,Jc,Ta,Tb,Tc)
+  \tkzDefTriangleCenter[nagel](A,B,C) 
+  \tkzGetPoint{Na}
   \tkzDrawPolygon[blue](A,B,C)
-  \tkzDefTriangleCenter[nagel](A,B,C) \tkzGetPoint{Na}
-  \tkzDrawPoints[blue](B,C,A)
-  \tkzDrawPoints[red](Na)
-  \tkzLabelPoints[blue](B,C,A)
-  \tkzLabelPoints[red](Na)
   \tkzDrawLines[add=0 and 1](A,Ta B,Tb C,Tc)
-  \tkzShowBB\tkzClipBB
+  \tkzDrawPoints[new](Ja,Jb,Jc,Ta,Tb,Tc)
+  \tkzClipBB
   \tkzDrawLines[add=1 and 1,dashed](A,B B,C C,A)
-  \tkzDrawCircles[ex,gray](A,B,C C,A,B B,C,A)
-  \tkzDrawSegments[dashed](Ja,Ta Jb,Tb Jc,Tc)
+  \tkzDrawCircles[ex,new](A,B,C C,A,B B,C,A)
+  \tkzDrawSegments[new,dashed](Ja,Ta Jb,Tb Jc,Tc)
+  \tkzDrawPoints(B,C,A)
+  \tkzDrawPoints[new](Na)
+  \tkzLabelPoints(B,C,A)
+  \tkzLabelPoints[new](Na)
+  \tkzLabelPoints[new](Ja,Jb,Jc,Ta,Tb,Tc)
   \tkzMarkRightAngles[fill=gray!20](Ja,Ta,C
               Jb,Tb,A Jc,Tc,B)
   \end{tikzpicture}
@@ -214,6 +541,11 @@
 
 
 \subsubsection{Option   \tkzname{mittenpunkt}} 
+
+The mittenpunkt (also called the middlespoint) of a triangle $ABC$ is the symmedian point of the excentral triangle, i.e., the point of concurrence M of the lines from the excenters  through the corresponding triangle side midpoints.\\
+\href{https://mathworld.wolfram.com/Mittenpunkt.html}{Weisstein, Eric W. "Mittenpunkt." From MathWorld--A Wolfram Web Resource.}
+
+
 \begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}[scale=.5]
  \tkzDefPoints{0/0/A,6/0/B,4/6/C}
@@ -222,123 +554,141 @@
  \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
  \tkzDefTriangleCenter[mittenpunkt](A,B,C) 
  \tkzGetPoint{Mi}
- \tkzDrawPoints(Ma,Mb,Mc,Ja,Jb,Jc)
+ \tkzDrawPoints[new](Ma,Mb,Mc,Ja,Jb,Jc)
  \tkzClipBB
  \tkzDrawPolygon[blue](A,B,C)
  \tkzDrawLines[add=0 and 1](Ja,Ma 
                Jb,Mb Jc,Mc)
  \tkzDrawLines[add=1 and 1](A,B A,C B,C)
- \tkzDrawCircles[gray](Ja,Ta Jb,Tb Jc,Tc)
- \tkzDrawPoints[blue](B,C,A)
- \tkzDrawPoints[red](Mi)
- \tkzLabelPoints[red](Mi)
+ \tkzDrawCircles[new](Ja,Ta Jb,Tb Jc,Tc)
+ \tkzDrawPoints(B,C,A)
+ \tkzDrawPoints[new](Mi)
+ \tkzLabelPoints(Mi)
  \tkzLabelPoints[left](Mb)
- \tkzLabelPoints(Ma,Mc,Jb,Jc)
+ \tkzLabelPoints[new](Ma,Mc,Jb,Jc)
  \tkzLabelPoints[above left](Ja,Jc)
- \tkzShowBB
 \end{tikzpicture}
 \end{tkzexample}
-%<---------------------------------------------------------------------->
-%<---------------------------------------------------------------------->
-\section{Draw a point}
-\subsubsection{Drawing points \tkzcname{tkzDrawPoint}} \hypertarget{tdrp}{}
 
-\begin{NewMacroBox}{tkzDrawPoint}{\oarg{local options}\parg{name}}%
-\begin{tabular}{lll}%
-arguments &  default & definition                 \\
-\midrule
-\TAline{name of point} {no default}  {Only one point name is accepted}
-\bottomrule
-\end{tabular}
+\subsubsection{Example : relation between  \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}}
 
-\medskip
-The argument is required. The disc takes the color of the circle, but  lighter. It is possible to change everything. The point is a node and therefore it is invariant if the drawing is modified by scaling.
+The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinear, with  GeG/GM=2.
 
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition \\
-\midrule
-\TOline{shape}  {circle}{Possible \tkzname{cross} or \tkzname{cross out}}
-\TOline{size}  {6}{$6 \times$ \tkzcname{pgflinewidth}}
-\TOline{color}  {black}{the default color can be changed }
-\bottomrule
-\end{tabular}
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,2/2/B,8/0/C}
+\tkzDefTriangleCenter[gergonne](A,B,C) \tkzGetPoint{Ge}
+\tkzDefTriangleCenter[centroid](A,B,C)       
+\tkzGetPoint{G}
+\tkzDefTriangleCenter[mittenpunkt](A,B,C) 
+\tkzGetPoint{M}
+\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
+\tkzDrawLines[add=.25 and .25,new](Ge,M)
+\tkzDrawPoints(A,...,C)
+\tkzDrawPoints[red,size=2](G,M,Ge)
+\tkzLabelPoints(A,...,C,M,G,Ge)
+\tkzMarkSegment[mark=s||](Ge,G)
+\tkzMarkSegment[mark=s|](G,M)
+\end{tikzpicture}
+\end{tkzexample}
 
-\medskip
-{We can create other forms such as \tkzname{cross}}
-\end{NewMacroBox}
+\newpage
+\section{Projection of excenters}
 
-\subsubsection{Example of point drawings}
-Note that \tkzname{scale} does not affect the shape of the dots. Which is normal.  Most of the time, we are satisfied with a single point shape that we can define from the beginning, either with a macro or by modifying a configuration file.
+\begin{NewMacroBox}{tkzDefProjExcenter}{\oarg{local options}\parg{A,B,C}\parg{a,b,c}\marg{X,Y,Z}}%
+Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro\\ \tkzcname{tkzDefProjExcenter[name=J](A,B,C)(a,b,c)\{Y,Z,X\}}.
 
-
-\begin{tkzexample}[latex=5cm,small]
-  \begin{tikzpicture}[scale=.5]
-   \tkzDefPoint(1,3){A}
-   \tkzDefPoint(4,1){B}
-   \tkzDefPoint(0,0){O}
-   \tkzDrawPoint[color=red](A)
-   \tkzDrawPoint[fill=blue!20,draw=blue](B)
-   \tkzDrawPoint[color=green](O)
-  \end{tikzpicture}
-\end{tkzexample}
-
-It is possible to draw several points at once but this macro is a little slower than the previous one. Moreover, we have to make do with the same options for all the points.
-
-\hypertarget{tdrps}{}
-\begin{NewMacroBox}{tkzDrawPoints}{\oarg{local options}\parg{liste}}%
+\medskip
 \begin{tabular}{lll}%
-arguments &  default  & definition \\
+\toprule
+options             & default & definition                        \\
 \midrule
-\TAline{points list}{no default}{example \tkzcname{tkzDrawPoints(A,B,C)}}
+\TOline{name} {no defaut}{used to name the vertices}
 \bottomrule
 \end{tabular}
 
-\medskip
 \begin{tabular}{lll}%
-options             & default & definition \\
+arguments & default & definition \\
 \midrule
-\TOline{shape}  {circle}{Possible \tkzname{cross} or \tkzname{cross out}}
-\TOline{size}  {6}{$6 \times$ \tkzcname{pgflinewidth}}
-\TOline{color}  {black}{the default color can be changed }
+\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight}
 \bottomrule
 \end{tabular}
 
 \medskip
-\tkzHandBomb\ Beware of the final "s", an oversight leads to cascading errors if you try to draw multiple points. The options are the same as for the previous macro.
 \end{NewMacroBox}
 
-\subsubsection{First example}
+\subsubsection{Excircles}
 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(1,3){A} 
-  \tkzDefPoint(4,1){B} 
-  \tkzDefPoint(0,0){C} 
-  \tkzDrawPoints[size=6,color=red,
-               fill=red!50](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
+\begin{tikzpicture}[scale=.5]
+\tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
+\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} 
+\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
+\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
 
-\subsubsection{Second example}
+\tkzDefCircle[in](A,B,C)   \tkzGetPoint{I} \tkzGetSecondPoint{T}  
+\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
+\tkzDrawCircle(I,T) 
+\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
+\tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C)
+\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
+                 Jb,Xb Jb,Yb Jb,Zb
+                 Jc,Xc Jc,Yc Jc,Zc
+                 I,Ia I,Ib I,Ic)
+\tkzMarkRightAngles[size=.2,fill=gray!15](%
+      Ja,Za,B
+      Ja,Xa,B
+      Ja,Ya,C
+      Jb,Yb,C
+      Jb,Zb,B
+      Jb,Xb,C
+      Jc,Yc,A
+      Jc,Zc,B
+      Jc,Xc,C
+      I,Ia,B
+      I,Ib,C
+      I,Ic,A)
+\tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
+\tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I)
+\tkzLabelPoints[above right](Za,Zb,Zc)
+\tkzLabelPoints[below](Ia,Ib,Ic)
+\end{tikzpicture} 
 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(2,3){A}  \tkzDefPoint(5,-1){B}
- \tkzDefPoint[label=below:$\mathcal{C}$,
-               shift={(2,3)}](-30:5.5){E}
- \begin{scope}[shift=(A)]
-    \tkzDefPoint(30:5){C}
- \end{scope}
- \tkzCalcLength[cm](A,B)\tkzGetLength{rAB}
- \tkzDrawCircle[R](A,\rAB cm)
- \tkzDrawSegment(A,B)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(B,C)
- \tkzLabelPoints[above](A)
-\end{tikzpicture}
+\begin{tkzexample}[code only,small]
+  \begin{tikzpicture}[scale=.5]
+  \tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
+  \tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c} 
+  \tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
+  \tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
+
+  \tkzDefCircle[in](A,B,C)   \tkzGetPoint{I} \tkzGetSecondPoint{T}  
+  \tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
+  \tkzDrawCircle(I,T) 
+  \tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
+  \tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C)
+  \tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
+                   Jb,Xb Jb,Yb Jb,Zb
+                   Jc,Xc Jc,Yc Jc,Zc
+                   I,Ia I,Ib I,Ic)
+  \tkzMarkRightAngles[size=.2,fill=gray!15](%
+        Ja,Za,B
+        Ja,Xa,B
+        Ja,Ya,C
+        Jb,Yb,C
+        Jb,Zb,B
+        Jb,Xb,C
+        Jc,Yc,A
+        Jc,Zc,B
+        Jc,Xc,C
+        I,Ia,B
+        I,Ib,C
+        I,Ic,A)
+  \tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
+  \tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I)
+  \tkzLabelPoints[above right](Za,Zb,Zc)
+  \tkzLabelPoints[below](Ia,Ib,Ic)
+  \end{tikzpicture}
 \end{tkzexample}
+ 
 
 \section{Point on line or circle}
 \subsection{Point on a line}
@@ -363,13 +713,13 @@
 \begin{tkzexample}[latex=9cm,small]
   \begin{tikzpicture}
   \tkzDefPoints{0/0/A,4/0/B}
-  \tkzDrawLine[red](A,B)
-  \tkzDefPointOnLine[pos=1.2](A,B) 
+  \tkzDefPointOnLine[pos=1.2](A,B)
   \tkzGetPoint{P}
-  \tkzDefPointOnLine[pos=-0.2](A,B) 
+  \tkzDefPointOnLine[pos=-0.2](A,B)
   \tkzGetPoint{R}
   \tkzDefPointOnLine[pos=0.5](A,B) 
   \tkzGetPoint{S}
+  \tkzDrawLine[new](A,B)
   \tkzDrawPoints(A,B,P)
   \tkzLabelPoints(A,B)
   \tkzLabelPoint[above](P){pos=$1.2$}
@@ -394,20 +744,20 @@
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
- \tkzDefPoints{0/0/A,4/0/B,0.8/3/C}  
- \tkzDefPointOnCircle[angle=90,center=B,radius=1 cm]
- \tkzGetPoint{I}    
- \tkzDefCircle[circum](A,B,C)
- \tkzGetPoint{G} \tkzGetLength{rG}
- \tkzDefPointOnCircle[angle=30,center=G,radius=\rG pt]
- \tkzGetPoint{J}
- \tkzDrawCircle[R,teal](B,1cm) 
- \tkzDrawPoint[teal](I)
- \tkzDrawPoints(A,B,C)
- \tkzDrawCircle(G,J)
- \tkzDrawPoints(G,J)
- \tkzDrawPoint[red](J)
- \tkzLabelPoints(G,J)
+\tkzDefPoints{0/0/A,4/0/B,0.8/3/C} 
+\tkzDefPointOnCircle[angle=90,center=B,radius=1]
+\tkzGetPoint{I}
+\tkzDefCircle[circum](A,B,C)
+\tkzGetPoint{G} \tkzGetLength{rG} 
+\tkzDefPointOnCircle[angle=30,center=G,radius=\rG] 
+\tkzGetPoint{J}
+\tkzDrawCircle[R,teal](B,1)
+\tkzDrawPoint[teal](I)
+\tkzDrawPoints(A,B,C)
+\tkzDrawCircle(G,J)
+\tkzDrawPoints(G,J)
+\tkzDrawPoint[red](J)
+\tkzLabelPoints(G,J)
 \end{tikzpicture}
 \end{tkzexample}
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointwith.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointwith.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-pointwith.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -2,8 +2,10 @@
 
 \subsection{\tkzcname{tkzDefPointWith}}
 There are several possibilities to create points that meet certain vector conditions.
-This can be done with \tkzcname{tkzDefPointWith}. The general principle is as follows, two points are passed as arguments, i.e. a vector. The different options allow to obtain a new point forming with the first point (with some exceptions) a collinear vector or a vector orthogonal to the first vector. Then the length is either proportional to that of the first one, or proportional to the unit. Since this point is only used temporarily, it does not have to be named immediately. The result is in \tkzname{tkzPointResult}. The macro \tkzNameMacro{tkzGetPoint} allows you to retrieve the point and name it differently.
+This can be done with 
 
+\tkzcname{tkzDefPointWith}. The general principle is as follows, two points are passed as arguments, i.e. a vector. The different options allow to obtain a new point forming with the first point (with some exceptions) a collinear vector or a vector orthogonal to the first vector. Then the length is either proportional to that of the first one, or proportional to the unit. Since this point is only used temporarily, it does not have to be named immediately. The result is in \tkzname{tkzPointResult}. The macro \tkzNameMacro{tkzGetPoint} allows you to retrieve the point and name it differently.
+
  There are options to define the distance between the given point and the obtained point.
 In the general case this distance is the distance between the 2 points given as arguments if the option is of the "normed" type then the distance between the given point and the obtained point is 1 cm. Then the $K$ option allows to obtain multiples.
 
@@ -38,47 +40,68 @@
 \end{tabular}
 \end{NewMacroBox}
 
-\subsubsection{Option \tkzname{colinear at}}
+\subsubsection{Option \tkzname{colinear at}, simple example}
  $(\overrightarrow{AB}=\overrightarrow{CD})$
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[scale=1.2,
-   vect/.style={->,shorten >=3pt,>=latex'}]
+   vect/.style={->,shorten >=1pt,>=latex'}]
   \tkzDefPoint(2,3){A}   \tkzDefPoint(4,2){B}
   \tkzDefPoint(0,1){C}
   \tkzDefPointWith[colinear=at C](A,B)
   \tkzGetPoint{D}
-  \tkzDrawPoints[color=red](A,B,C,D)
+  \tkzDrawPoints[new](A,B,C,D)
   \tkzLabelPoints[above right=3pt](A,B,C,D)
   \tkzDrawSegments[vect](A,B C,D)
 \end{tikzpicture}
 \end{tkzexample}
 
+\subsubsection{Option \tkzname{colinear at}, complex example}
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}[scale=.75]
+\tkzDefPoints{0/0/B,3.6/0/C,1.5/4/A}
+\tkzDefSpcTriangle[ortho](A,B,C){Ha,Hb,Hc}
+\tkzDefTriangleCenter[ortho](A,B,C) \tkzGetPoint{H}
+\tkzDefSquare(A,C) \tkzGetPoints{R}{S}
+\tkzDefSquare(B,A) \tkzGetPoints{M}{N}
+\tkzDefSquare(C,B) \tkzGetPoints{P}{Q}
+\tkzDefPointWith[colinear= at M](A,S) \tkzGetPoint{A'}
+\tkzDefPointWith[colinear= at P](B,N) \tkzGetPoint{B'}
+\tkzDefPointWith[colinear= at Q](C,R) \tkzGetPoint{C'}
+\tkzDefPointBy[projection=onto P--Q](Ha) \tkzGetPoint{Pa}
+\tkzDrawPolygon[teal,thick](A,C,R,S)\tkzDrawPolygon[teal,thick](A,B,N,M)
+\tkzDrawPolygon[teal,thick](C,B,P,Q)
+\tkzDrawPoints[teal,size=2](A,B,C,Ha,Hb,Hc,A',B',C')
+\tkzDrawSegments[ultra thin,red](M,A' A',S P,B' B',N Q,C' C',R B,S C,M C,N B,R A,P A,Q)
+\tkzDrawSegments[ultra thin,teal, dashed](A,Ha B,Hb C,Hc)
+\tkzDefPointBy[rotation=center A angle 90](S) \tkzGetPoint{S'}
+\tkzDrawSegments[ultra thin,teal,dashed](B,S' A,S' A,A' M,S' B',Q P,C' M,S Ha,Pa)
+\tkzDrawArc(A,S)(S')
+\end{tikzpicture}
+\end{tkzexample}
 
-\subsubsection{Option \tkzname{colinear at} with $K$}
-
+\subsubsection{Option \tkzname{colinear at}}
+How to use $K$
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[vect/.style={->,
-	             shorten >=3pt,>=latex'}]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(5,0){B}
-  \tkzDefPoint(1,2){C}
+               shorten >=1pt,>=latex'}]
+  \tkzDefPoints{0/0/A,5/0/B,1/2/C}
   \tkzDefPointWith[colinear=at C](A,B)
   \tkzGetPoint{G}
-  \tkzDefPointWith[colinear=at C,K=0.5](A,B)
+  \tkzDefPointWith[colinear=at C, K=0.5](A,B)
   \tkzGetPoint{H}
   \tkzLabelPoints(A,B,C,G,H)
   \tkzDrawPoints(A,B,C,G,H)
-	\tkzDrawSegments[vect](A,B C,H)
+  \tkzDrawSegments[vect](A,B C,H)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{colinear at} with $K=\frac{\sqrt{2}}{2}$}
+\subsubsection{Option \tkzname{colinear at} } 
+With $K=\frac{\sqrt{2}}{2}$
+
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[vect/.style={->,
-	          shorten >=3pt,>=latex'}]
- \tkzDefPoint(1,1){A}
- \tkzDefPoint(4,2){B}
- \tkzDefPoint(2,2){CU}
+            shorten >=1pt,>=latex'}]
+ \tkzDefPoints{1/1/A,4/2/B,2/2/C}
  \tkzDefPointWith[colinear=at C,K=sqrt(2)/2](A,B)
  \tkzGetPoint{D}
  \tkzDrawPoints[color=red](A,B,C,D)
@@ -90,9 +113,8 @@
 AB=AC since $K=1$.
 \begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}[scale=1.2,
-  vect/.style={->,shorten >=3pt,>=latex'}]
-   \tkzDefPoint(2,3){A}   
-	   \tkzDefPoint(4,2){B}
+  vect/.style={->,shorten >=1pt,>=latex'}]
+  \tkzDefPoints{2/3/A,4/2/B}
    \tkzDefPointWith[orthogonal,K=1](A,B)
      \tkzGetPoint{C}
    \tkzDrawPoints[color=red](A,B,C)
@@ -105,14 +127,14 @@
 
 
 
-\subsubsection{Option \tkzname{orthogonal} with $K=-1$}
+\subsubsection{Option \tkzname{orthogonal}}
+ With $K=-1$
 OK=OI since $\lvert K \rvert=1$ then OI=OJ=OK.
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=.75]
-  \tkzDefPoint(1,2){O}
-  \tkzDefPoint(2,5){I}
-  \tkzDefPointWith[orthogonal](O,I) 
+  \tkzDefPoints{1/2/O,2/5/I}
+  \tkzDefPointWith[orthogonal](O,I)
   \tkzGetPoint{J}
   \tkzDefPointWith[orthogonal,K=-1](O,I)
   \tkzGetPoint{K}
@@ -129,16 +151,16 @@
 \begin{tikzpicture}[scale=.75]
   \tkzDefPoints{0/0/A,6/0/B}
   \tkzDefMidPoint(A,B)
-	  \tkzGetPoint{I}
-  \tkzDefPointWith[orthogonal,K=-.75](B,A) 
+    \tkzGetPoint{I}
+  \tkzDefPointWith[orthogonal,K=-.75](B,A)
   \tkzGetPoint{C}
   \tkzInterLC(B,C)(B,I)
-	   \tkzGetPoints{D}{F}
+     \tkzGetPoints{D}{F}
   \tkzDuplicateSegment(B,F)(A,F)
   \tkzGetPoint{E}
   \tkzDrawArc[delta=10](F,E)(B)
   \tkzInterLC(A,B)(A,E)
-	  \tkzGetPoints{N}{M}
+    \tkzGetPoints{N}{M}
   \tkzDrawArc[delta=10](A,M)(E)
   \tkzDrawLines(A,B B,C A,F)
   \tkzCompass(B,F)
@@ -150,26 +172,25 @@
 \subsubsection{Options \tkzname{colinear} and \tkzname{orthogonal}}
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.2,
-  vect/.style={->,shorten >=3pt,>=latex'}]
-   \tkzDefPoint(2,1){A}
-   \tkzDefPoint(6,2){B}
-   \tkzDefPointWith[orthogonal,K=.5](A,B) 
-   \tkzGetPoint{C}
-   \tkzDefPointWith[colinear=at C,K=.5](A,B) 
-   \tkzGetPoint{D}
-   \tkzMarkRightAngle[fill=gray!20](B,A,C)
-   \tkzDrawSegments[vect](A,B A,C C,D)
-   \tkzDrawPoints(A,...,D)
+  vect/.style={->,shorten >=1pt,>=latex'}]
+  \tkzDefPoints{2/1/A,6/2/B}
+  \tkzDefPointWith[orthogonal,K=.5](A,B)
+  \tkzGetPoint{C}
+  \tkzDefPointWith[colinear=at C,K=.5](A,B)
+  \tkzGetPoint{D}
+  \tkzMarkRightAngle[fill=gray!20](B,A,C)
+  \tkzDrawSegments[vect](A,B A,C C,D)
+  \tkzDrawPoints(A,...,D)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option  \tkzname{orthogonal normed}, $K=1$}
-$AC=1$.
+\subsubsection{Option  \tkzname{orthogonal normed}}
+ $K=1$ $AC=1$.
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.2,
-  vect/.style={->,shorten >=3pt,>=latex'}]
-  \tkzDefPoint(2,3){A}   \tkzDefPoint(4,2){B}
+  vect/.style={->,shorten >=1pt,>=latex'}]
+  \tkzDefPoints{2/3/A,4/2/B}
   \tkzDefPointWith[orthogonal normed](A,B)
   \tkzGetPoint{C}
   \tkzDrawPoints[color=red](A,B,C)
@@ -178,36 +199,36 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{orthogonal normed} and $K=2$}
+\subsubsection{Option \tkzname{orthogonal normed} and K=2}
 $K=2$ therefore $AC=2$.
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.2,
-   vect/.style={->,shorten >=3pt,>=latex'}]
-   \tkzDefPoint(2,3){A}   \tkzDefPoint(5,1){B}
-   \tkzDefPointWith[orthogonal normed,K=2](A,B)
-   \tkzGetPoint{C}
-   \tkzDrawPoints[color=red](A,B,C)
-   \tkzDrawCircle[R](A,2cm)
-   \tkzDrawSegments[vect](A,B A,C)
-   \tkzMarkRightAngle[fill=gray!20](B,A,C)
-   \tkzLabelPoints[above=3pt](A,B,C)
+   vect/.style={->,shorten >=1pt,>=latex'}]
+  \tkzDefPoints{2/3/A,5/1/B}
+  \tkzDefPointWith[orthogonal normed,K=2](A,B)
+  \tkzGetPoint{C}
+  \tkzDrawPoints[color=red](A,B,C)
+  \tkzDrawCircle[R](A,2)
+  \tkzDrawSegments[vect](A,B A,C)
+  \tkzMarkRightAngle[fill=gray!20](B,A,C)
+  \tkzLabelPoints[above=3pt](A,B,C)
 \end{tikzpicture}
 \end{tkzexample}
 
 \subsubsection{Option \tkzname{linear}}
 Here $K=0.5$.
- 
+
 This amounts to applying a homothety or a multiplication of a vector by a real. Here is the middle of $[AB]$.
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.2]
-   \tkzDefPoint(1,3){A}   \tkzDefPoint(4,2){B}
-   \tkzDefPointWith[linear,K=0.5](A,B)
-   \tkzGetPoint{C}
-   \tkzDrawPoints[color=red](A,B,C)
-   \tkzDrawSegment(A,B)
-   \tkzLabelPoints[above right=3pt](A,B,C)
+  \tkzDefPoints{1/3/A,4/2/B}
+  \tkzDefPointWith[linear,K=0.5](A,B)
+  \tkzGetPoint{C}
+  \tkzDrawPoints[color=red](A,B,C)
+  \tkzDrawSegment(A,B)
+  \tkzLabelPoints[above right=3pt](A,B,C)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -216,7 +237,7 @@
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1.2]
- \tkzDefPoint(1,3){A}   \tkzDefPoint(4,2){B}
+ \tkzDefPoints{1/3/A,4/2/B}
  \tkzDefPointWith[linear normed](A,B)
  \tkzGetPoint{C}
  \tkzDrawPoints[color=red](A,B,C)
@@ -225,15 +246,10 @@
  \tkzLabelPoints[above right=3pt](A,B,C)
 \end{tikzpicture}
 \end{tkzexample}
-
-
-
 %<--------------------------------------------------------------------------–>
-%         tkzGetVectxy  
+%         tkzGetVectxy
 %<--------------------------------------------------------------------------–>
-
-
-\subsection{\tkzcname{tkzGetVectxy} } 
+\subsection{\tkzcname{tkzGetVectxy} }
 Retrieving the coordinates of a vector.
 
 \begin{NewMacroBox}{tkzGetVectxy}{\parg{$A,B$}\var{text}}%
@@ -254,9 +270,7 @@
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(1,1){A}
- \tkzDefPoint(4,2){B}
+ \tkzDefPoints{0/0/O,1/1/A,4/2/B}
  \tkzGetVectxy(A,B){v}
  \tkzDefPoint(\vx,\vy){V}
  \tkzDrawSegment[->,color=red](O,V)
@@ -265,7 +279,4 @@
  \tkzLabelPoints(A,B,O,V)
 \end{tikzpicture}
 \end{tkzexample}
-
-
-
-\endinput  
\ No newline at end of file
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-polygons.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-polygons.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-polygons.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -3,7 +3,7 @@
 We have seen the definitions of some triangles. Let us look at the definitions of some quadrilaterals and regular polygons.
 
 \begin{NewMacroBox}{tkzDefSquare}{\parg{pt1,pt2}}%
-The square is defined in the forward direction. From two points, two more points are obtained such that the four taken in order form a square. The square is defined in the forward direction.    The results are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}.\\
+The square is defined in the forward direction. From two points, two more points are obtained such that the four taken in order form a square. The square is defined in the forward direction. \\The results are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}.\\
 We can rename them with \tkzcname{tkzGetPoints}.
 
 \medskip
@@ -22,15 +22,15 @@
 \begin{tikzpicture}[scale=.5]
   \tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B}
   \tkzDefSquare(A,B)
-  \tkzDrawPolygon[color=red](A,B,tkzFirstPointResult,%
+  \tkzDrawPolygon[new](A,B,tkzFirstPointResult,%
                tkzSecondPointResult)
   \tkzDefSquare(B,A)
-  \tkzDrawPolygon[color=blue](B,A,tkzFirstPointResult,%
+  \tkzDrawPolygon(B,A,tkzFirstPointResult,%
                tkzSecondPointResult) 
 \end{tikzpicture} 
 \end{tkzexample}
 
- We may only need one point to draw an isosceles right-angled triangle so we use \tkzcname{tkzGetFirstPoint} or \tkzcname{tkzGetSecondPoint}.
+ We may only need one point to draw an isosceles right-angled triangle so we use \\ \tkzcname{tkzGetFirstPoint} or \tkzcname{tkzGetSecondPoint}.
 
 \subsubsection{Use of \tkzcname{tkzDefSquare} to obtain an isosceles right-angled triangle}
 \begin{tkzexample}[latex=7cm,small]
@@ -38,7 +38,12 @@
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(3,0){B}
   \tkzDefSquare(A,B) \tkzGetFirstPoint{C}
-  \tkzDrawPolygon[color=blue,fill=blue!30](A,B,C)
+  \tkzDrawSegment(A,B)
+  \tkzDrawSegments[new](A,C B,C)
+  \tkzMarkRightAngles(A,B,C)
+  \tkzDrawPoints(A,B) \tkzDrawPoint[new](C)
+  \tkzLabelPoints(A,B)
+  \tkzLabelPoints[new](C)
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -45,7 +50,6 @@
 \subsubsection{Pythagorean Theorem and \tkzcname{tkzDefSquare} }
 \begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}[scale=.5]
-\tkzInit
 \tkzDefPoint(0,0){C}
 \tkzDefPoint(4,0){A}
 \tkzDefPoint(0,3){B} 
@@ -52,28 +56,46 @@
 \tkzDefSquare(B,A)\tkzGetPoints{E}{F} 
 \tkzDefSquare(A,C)\tkzGetPoints{G}{H} 
 \tkzDefSquare(C,B)\tkzGetPoints{I}{J} 
-\tkzFillPolygon[fill = red!50 ](A,C,G,H) 
-\tkzFillPolygon[fill = blue!50 ](C,B,I,J) 
-\tkzFillPolygon[fill = purple!50](B,A,E,F) 
-\tkzFillPolygon[fill = orange,opacity=.5](A,B,C) 
-\tkzDrawPolygon[line width = 1pt](A,B,C) 
-\tkzDrawPolygon[line width = 1pt](A,C,G,H) 
-\tkzDrawPolygon[line width = 1pt](C,B,I,J) 
-\tkzDrawPolygon[line width = 1pt](B,A,E,F) 
-\tkzLabelSegment[](A,C){$a$} 
-\tkzLabelSegment[](C,B){$b$} 
+\tkzDrawPolygon(A,B,C) 
+\tkzDrawPolygon(A,C,G,H) 
+\tkzDrawPolygon(C,B,I,J) 
+\tkzDrawPolygon(B,A,E,F) 
+\tkzLabelSegment(A,C){$a$} 
+\tkzLabelSegment(C,B){$b$} 
 \tkzLabelSegment[swap](A,B){$c$} 
 \end{tikzpicture}
 \end{tkzexample}
 
+\subsection{Defining the points of a rectangle}
+.
+
+\begin{NewMacroBox}{tkzDefRectangle}{\parg{pt1,pt2}}%
+The rectangle is defined in the forward direction. From two points, two more points are obtained such that the four taken in order form a rectangle. The two points passed in arguments are the ends of a diagonal of the rectangle. The sides are parallel to the axes.\\
+ The results are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}.\\
+We can rename them with \tkzcname{tkzGetPoints}.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+Arguments             & example & explication                         \\ 
+\midrule
+\TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefRectangle}\parg{A,B}}{The rectangle is defined in the direct direction.}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Example of a rectangle definition}
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,5/2/C}
+\tkzDefRectangle(A,C) \tkzGetPoints{B}{D}
+\tkzDrawPolygon[fill=teal!15](A,...,D)
+\end{tikzpicture}
+\end{tkzexample}
+
 \subsection{Definition of parallelogram} 
 
-\subsection{Defining the points of a parallelogram} 
-It is a matter of completing three points in order to obtain a parallelogram.
+Defining the points of a parallelogram. It is a matter of completing three points in order to obtain a parallelogram.
 \begin{NewMacroBox}{tkzDefParallelogram}{\parg{pt1,pt2,pt3}}%
-From three points, another point is obtained such that the four taken in order form a parallelogram.  The result is in \tkzname{tkzPointResult}. \\
-We can rename it with the name \tkzcname{tkzGetPoint}...
-
 \begin{tabular}{lll}%
 \toprule
 arguments &  default & definition  \\ 
@@ -83,6 +105,11 @@
 \end{tabular}
 \end{NewMacroBox}
 
+From three points, another point is obtained such that the four taken in order form a parallelogram. 
+\\ The result is in \tkzname{tkzPointResult}. \\
+We can rename it with the name \tkzcname{tkzGetPoint}...
+
+
 \subsubsection{Example of a parallelogram definition}
 
 \begin{tkzexample}[latex=7 cm,small]
@@ -89,6 +116,7 @@
 \begin{tikzpicture}[scale=1]
  \tkzDefPoints{0/0/A,3/0/B,4/2/C} 
  \tkzDefParallelogram(A,B,C) 
+ % or   \tkzDefPointWith[colinear= at C](B,A) 
  \tkzGetPoint{D}
  \tkzDrawPolygon(A,B,C,D)
  \tkzLabelPoints(A,B) 
@@ -98,92 +126,11 @@
 \end{tkzexample}
 
 
-
-\subsubsection{Simple example}
-Explanation of the definition of a parallelogram
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1]
-  \tkzDefPoints{0/0/A,3/0/B,4/2/C} 
-  \tkzDefPointWith[colinear= at C](B,A) 
-  \tkzGetPoint{D}
-  \tkzDrawPolygon(A,B,C,D)
-  \tkzLabelPoints(A,B) 
-  \tkzLabelPoints[above right](C,D)
-  \tkzDrawPoints(A,...,D)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Construction of the golden rectangle }
-
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=.5]
-  \tkzInit[xmax=14,ymax=10]
-  \tkzClip[space=1]
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(8,0){B}
-  \tkzDefMidPoint(A,B)\tkzGetPoint{I}
-  \tkzDefSquare(A,B)\tkzGetPoints{C}{D}
-  \tkzDrawSquare(A,B)
-  \tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E}
-  \tkzDrawArc[style=dashed,color=gray](I,E)(D)
-  \tkzDefPointWith[colinear= at C](E,B)
-  \tkzGetPoint{F}
-  \tkzDrawPoints(C,D,E,F)
-  \tkzLabelPoints(A,B,C,D,E,F)
-  \tkzDrawSegments[style=dashed,color=gray]%
-(E,F C,F B,E)  
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-
-\subsection{Drawing a square} 
-\begin{NewMacroBox}{tkzDrawSquare}{\oarg{local options}\parg{pt1,pt2}}%
-The macro draws a square but not the vertices. It is possible to color the inside. The order of the points is that of the direct direction of the trigonometric circle.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments             & example & explication                         \\ 
-\midrule
-\TAline{\parg{pt1,pt2}}{|\tkzcname{tkzDrawSquare}|\parg{A,B}}{|\tkzcname{tkzGetPoints\{C\}\{D\}}|}
-\bottomrule
-\end{tabular}
-
-\medskip 
-\begin{tabular}{lll}%
-options             & example & explication                         \\ 
-\midrule
-\TOline{Options TikZ}{|red,line width=1pt|}{}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{The idea is to inscribe two squares in a semi-circle.}
-
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=.75] 
-   \tkzInit[ymax=8,xmax=8]
- \tkzClip[space=.25]    \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}  \tkzDefPoint(4,0){I}
- \tkzDefSquare(A,B)    \tkzGetPoints{C}{D}
- \tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E}
- \tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F} 
- \tkzDefPointsBy[projection=onto A--B](E,F){H,G}
- \tkzDefPointsBy[symmetry   = center H](I){J}
- \tkzDefSquare(H,J)    \tkzGetPoints{K}{L}
- \tkzDrawSector[fill=yellow](I,B)(A)
- \tkzFillPolygon[color=red!40](H,E,F,G)
- \tkzFillPolygon[color=blue!40](H,J,K,L)
- \tkzDrawPolySeg[color=red](H,E,F,G) 
- \tkzDrawPolySeg[color=red](J,K,L)
- \tkzDrawPoints(E,G,H,F,J,K,L)
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsection{The golden rectangle} 
- \begin{NewMacroBox}{tkzDefGoldRectangle}{\parg{point,point}}%
-The macro determines a rectangle whose size ratio is the number $\Phi$. The created points are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}. They can be obtained with the macro \tkzcname{tkzGetPoints}. The following macro is used to draw the rectangle.
+ \begin{NewMacroBox}{tkzDefGoldenRectangle}{\parg{point,point}}%
+The macro determines a rectangle whose size ratio is the number $\Phi$.\\
+ The created points are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}. \\
+ They can be obtained with the macro \tkzcname{tkzGetPoints}. The following macro is used to draw the rectangle.
 
 \begin{tabular}{lll}%
 \toprule
@@ -191,23 +138,11 @@
 \midrule
 \TAline{\parg{pt1,pt2}}{\parg{A,B}}{If C and D are created then $AB/BC=\Phi$.}
  \end{tabular}
+ 
+ \tkzcname{tkzDefGoldenRectangle} or  \tkzcname{tkzDefGoldRectangle}
 \end{NewMacroBox}
 
- \begin{NewMacroBox}{tkzDrawGoldRectangle}{\oarg{local options}\parg{point,point}}
-\begin{tabular}{lll}%
-arguments             & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{Draws the golden rectangle based on the segment $[AB]$}
-\end{tabular}
 
-\medskip 
-\begin{tabular}{lll}%
-options     & example & explication     \\ 
-\midrule
-\TOline{Options TikZ}{|red,line width=1pt|}{}
-\end{tabular} 
-\end{NewMacroBox}
-
 \subsubsection{Golden Rectangles}
 \begin{tkzexample}[latex=6 cm,small]
 \begin{tikzpicture}[scale=.6]
@@ -214,171 +149,39 @@
  \tkzDefPoint(0,0){A}      \tkzDefPoint(8,0){B}
  \tkzDefGoldRectangle(A,B) \tkzGetPoints{C}{D}
  \tkzDefGoldRectangle(B,C) \tkzGetPoints{E}{F}
- \tkzDrawPolygon[color=red,fill=red!20](A,B,C,D)
- \tkzDrawPolygon[color=blue,fill=blue!20](B,C,E,F)
+ \tkzDefGoldRectangle(C,E) \tkzGetPoints{G}{H}
+ \tkzDrawPolygon(A,B,C,D)
+ \tkzDrawSegments(E,F G,H)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsection{Drawing a polygon} 
- \begin{NewMacroBox}{tkzDrawPolygon}{\oarg{local options}\parg{points list}}%
-Just give a list of points and the macro plots the polygon using the \TIKZ\ options present. You can  replace $(A,B,C,D,E)$ by $(A,...,E)$ and $(P_1,P_2,P_3,P_4,P_5)$ by $(P_1,P...,P_5)$
+\subsubsection{Construction of the golden rectangle }
+Without the previous macro here is how to get the golden rectangle.
 
-\begin{tabular}{lll}%
-\toprule
-arguments             & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolygon[gray,dashed](A,B,C)|}{Drawing a triangle}
- \end{tabular}
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & example                         \\
-\midrule
-\TOline{Options TikZ}{...}{|\BS tkzDrawPolygon[red,line width=2pt](A,B,C)|}
- \end{tabular} 
-\end{NewMacroBox}
-
-\subsubsection{\tkzcname{tkzDrawPolygon}}
-
-\begin{tkzexample}[latex=7cm, small]  
-\begin{tikzpicture} [rotate=18,scale=1.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2.25,0.2){B}
- \tkzDefPoint(2.5,2.75){C}
- \tkzDefPoint(-0.75,2){D}
- \tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D)
- \tkzDrawSegments[style=dashed](A,C B,D) 
-\end{tikzpicture}\end{tkzexample}
-
-\subsection{Drawing a polygonal chain} 
- \begin{NewMacroBox}{tkzDrawPolySeg}{\oarg{local options}\parg{points list}}%
-Just give a list of points and the macro plots the polygonal chain using the \TIKZ\ options present.
-
-\begin{tabular}{lll}%
-\toprule
-arguments             & example & explication                         \\
-\midrule
-\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolySeg[gray,dashed](A,B,C)|}{Drawing a triangle}
- \end{tabular}
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & example                         \\
-\midrule
-\TOline{Options TikZ}{...}{|\BS tkzDrawPolySeg[red,line width=2pt](A,B,C)|}
- \end{tabular} 
-\end{NewMacroBox}
-
-\subsubsection{Polygonal chain}
-
-\begin{tkzexample}[latex=7cm, small]  
-\begin{tikzpicture}
- \tkzDefPoints{0/0/A,6/0/B,3/4/C,2/2/D}					 
- \tkzDrawPolySeg(A,...,D)
- \tkzDrawPoints(A,...,D)
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}[scale=.5] 
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(8,0){B} 
+\tkzDefMidPoint(A,B)
+\tkzGetPoint{I} 
+\tkzDefSquare(A,B)\tkzGetPoints{C}{D} 
+\tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E} 
+\tkzDefPointWith[colinear= at C](E,B) 
+ \tkzGetPoint{F}
+\tkzDefPointBy[projection=onto D--C ](E) 
+ \tkzGetPoint{H}
+\tkzDrawArc[style=dashed](I,E)(D)
+\tkzDrawSquare(A,B) 
+\tkzDrawPoints(C,D,E,F,H) 
+\tkzLabelPoints(A,B,C,D,E,F,H) 
+\tkzDrawSegments[style=dashed,color=gray]%
+(E,F C,F B,E F,H H,C E,H) 
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Polygonal chain: index notation}
 
-\begin{tkzexample}[latex=7cm, small]  
-\begin{tikzpicture}
-\foreach \pt in {1,2,...,8}	{%
-\tkzDefPoint(\pt*20:3){P_\pt}}		 
-\tkzDrawPolySeg(P_1,P_...,P_8)
-\tkzDrawPoints(P_1,P_...,P_8)
-\end{tikzpicture}
-\end{tkzexample}
 
-\subsection{Clip a polygon} 
- \begin{NewMacroBox}{tkzClipPolygon}{\oarg{local options}\parg{points list}}%
-This macro makes it possible to contain the different plots in the designated polygon.
 
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments       & example & explication     \\ 
-\midrule
-\TAline{\parg{pt1,pt2}}{\parg{A,B}}{}
-%\bottomrule
- \end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{\tkzcname{tkzClipPolygon}} 
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] 
- \tkzClip[space=.5] 
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
- \tkzDefPoint(0,2){D}  \tkzDefPoint(2,0){E}
- \tkzDrawPoints(D,E) \tkzLabelPoints(D,E) 
- \tkzClipPolygon(A,B,C)
- \tkzDrawLine[color=red](D,E)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example: use of "Clip" for Sangaku in a square} 
-\begin{tkzexample}[latex=7cm, small]  
-\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
- \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
- \tkzDrawPolygon(B,C,D,A)
- \tkzClipPolygon(B,C,D,A)
- \tkzDefPoint(4,8){F}
- \tkzDefTriangle[equilateral](C,D) 
- \tkzGetPoint{I}
- \tkzDrawPoint(I)
- \tkzDefPointBy[projection=onto B--C](I) 
- \tkzGetPoint{J}
- \tkzInterLL(D,B)(I,J)  \tkzGetPoint{K}
- \tkzDefPointBy[symmetry=center K](B) 
- \tkzGetPoint{M}
- \tkzDrawCircle(M,I)
- \tkzCalcLength(M,I)   \tkzGetLength{dMI}
- \tkzFillPolygon[color = orange](A,B,C,D)
- \tkzFillCircle[R,color = yellow](M,\dMI pt)
- \tkzFillCircle[R,color = blue!50!black](F,4 cm)%
-\end{tikzpicture}
-\end{tkzexample}
- 
-\subsection{Color a polygon} 
- \begin{NewMacroBox}{tkzFillPolygon}{\oarg{local options}\parg{points list}}%
-You can color by drawing the polygon, but in this case you color the inside of the polygon without drawing it.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-arguments                & example & explication                         \\ 
-\midrule
-\TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{}
-%\bottomrule
- \end{tabular}
-\end{NewMacroBox} 
-
-\subsubsection{\tkzcname{tkzFillPolygon}} 
-\begin{tkzexample}[latex=7cm, small]  
-\begin{tikzpicture}[scale=0.7]
-\tkzInit[xmin=-3,xmax=6,ymin=-1,ymax=6]
-\tkzDrawX[noticks]
-\tkzDrawY[noticks]    
-\tkzDefPoint(0,0){O}  \tkzDefPoint(4,2){A}
-\tkzDefPoint(-2,6){B}
-\tkzPointShowCoord[xlabel=$x$,ylabel=$y$](A)
-\tkzPointShowCoord[xlabel=$x'$,ylabel=$y'$,%
-                   ystyle={right=2pt}](B) 
-\tkzDrawSegments[->](O,A O,B)
-\tkzLabelSegment[above=3pt](O,A){$\vec{u}$}
-\tkzLabelSegment[above=3pt](O,B){$\vec{v}$}
-\tkzMarkAngle[fill= yellow,size=1.8cm,%
-              opacity=.5](A,O,B)
-\tkzFillPolygon[red!30,opacity=0.25](A,B,O)
-\tkzLabelAngle[pos = 1.5](A,O,B){$\alpha$} 
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsection{Regular polygon} 
  \begin{NewMacroBox}{tkzDefRegPolygon}{\oarg{local options}\parg{pt1,pt2}}%
 From the number of sides, depending on the options, this macro determines a regular polygon according to its center or one side.
@@ -407,14 +210,15 @@
 \subsubsection{Option \tkzname{center}}
 \begin{tkzexample}[latex=7cm, small]   
 \begin{tikzpicture}
-	\tkzDefPoints{0/0/P0,0/0/Q0,2/0/P1}
-	\tkzDefMidPoint(P0,P1) \tkzGetPoint{Q1}
+  \tkzDefPoints{0/0/P0,0/0/Q0,2/0/P1}
+  \tkzDefMidPoint(P0,P1) \tkzGetPoint{Q1}
   \tkzDefRegPolygon[center,sides=7](P0,P1)
-	\tkzDefMidPoint(P1,P2) \tkzGetPoint{Q1}
+  \tkzDefMidPoint(P1,P2) \tkzGetPoint{Q1}
   \tkzDefRegPolygon[center,sides=7,name=Q](P0,Q1)
-	\tkzDrawPolygon(P1,P...,P7)
-	\tkzFillPolygon[gray!20](Q0,Q1,P2,Q2)
-	\foreach \j in {1,...,7} {\tkzDrawSegment[black](P0,Q\j)}
+  \tkzFillPolygon[teal!20](Q0,Q1,P2,Q2)
+  \tkzDrawPolygon(P1,P...,P7)
+  \foreach \j in {1,...,7} {%
+  \tkzDrawSegment[black](P0,Q\j)}
 \end{tikzpicture}
 \end{tkzexample}
 

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-presentation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-presentation.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-presentation.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -2,7 +2,7 @@
 
 \begin{tkzexample}[latex=5cm,small]
   \begin{tikzpicture}[scale=.25]
-  \tkzDefPoints{00/0/A,12/0/B,6/12*sind(60)/C}
+  \tkzDefPoints{0/0/A,12/0/B,6/12*sind(60)/C}
   \foreach \density in {20,30,...,240}{%
     \tkzDrawPolygon[fill=teal!\density](A,B,C)
     \pgfnodealias{X}{A}
@@ -25,7 +25,7 @@
 The syntax is perhaps too verbose but it is, I believe, easily accessible.
 As a result, the students like teachers were able to easily access this tool.
 
-\subsection{\tkzname{\tkznameofpack}  vs \tkzname{\TIKZ } }
+\subsection{ \tkzname{\TIKZ } vs \tkzname{\tkznameofpack} }
 
 I love programming with  \TIKZ,  and without  \TIKZ\  I would never have had the idea to create \tkzname{\tkznameofpack}  but never forget that behind it there is  \TIKZ\  and that it is always possible to insert code from  \TIKZ. \tkzname{\tkznameofpack}  doesn't prevent you from using  \TIKZ.
 That said, I don't think mixing syntax is a good thing. 
@@ -32,9 +32,317 @@
 
 There is no need to compare \TIKZ\  and \tkzname{\tkznameofpack}.  The latter is not addressed to the same audience as  \TIKZ. The first one allows you to do a lot of things, the second one only does geometry drawings. The first one can do everything the second one does, but the second one will more easily do what you want.
 
-\subsection{How it works}
+The main purpose is to define points to create geometrical figures. \tkzname{\tkznameofpack} allows you to draw the essential objects of Euclidean geometry from these points but it may be insufficient for some actions like coloring surfaces. In this case you will have to use \TIKZ\   which is always possible.
 
-\subsubsection{Example Part I: gold triangle}
+Here are some comparisons between \tkzname{\TIKZ } and \tkzname{\tkznameofpack} 4. For this I will use the geometry examples from the PGFManual.
+  The two most important Euclidean tools used by early Greeks to construct different geometrical shapes and angles were a compass and a straightedge. My idea is to allow you to follow step by step a construction that would be done by hand (with compass and straightedge) as naturally as possible.
+
+\subsubsection{Book I, proposition I  \_Euclid's Elements\_ }
+
+\begin{tikzpicture}
+\node [mybox,title={Book I, proposition I  \_Euclid's Elements\_}] (box){%
+    \begin{minipage}{0.90\textwidth}
+{\emph{To construct an equilateral triangle on a given finite straight line.}
+} 
+    \end{minipage}
+};
+\end{tikzpicture}% 
+
+
+Explanation :
+
+The fourth tutorial of the \emph{PgfManual} is about geometric constructions. \emph{T. Tantau} proposes to get the drawing with its beautiful tool Ti\emph{k}Z. Here I propose the same construction with \emph{tkz-elements}. The color of the Ti\emph{k}Z code is green and that of \emph{tkz-elements} is red.
+
+\medskip
+
+\hspace*{1cm}\vbox{\orange |\usepackage{tikz}|\\
+|\usetikzlibrary{calc,intersections,through,backgrounds}|}
+
+\medskip
+\hspace*{1cm}\vbox{\red |\usepackage{tkz-euclide}|}
+
+\medskip
+How to get the line AB ? To get this line, we use two fixed points.\\
+
+\medskip
+\hspace*{1cm}\vbox{\orange 
+|\coordinate [label=left:$A$] (A) at (0,0);|\\
+|\coordinate [label=right:$B$] (B) at (1.25,0.25);|\\
+|\draw (A) -- (B);|}
+
+\medskip
+\hspace*{1cm}\vbox{\red 
+|\tkzDefPoint(0,0){A}|\\
+|\tkzDefPoint(1.25,0.25){B}|\\
+|\tkzDrawSegment(A,B)|\\
+|\tkzLabelPoint[left](A){$A$}|\\
+|\tkzLabelPoint[right](B){$B$}|}
+
+We want to draw a circle around the points $A$ and $B$ whose radius is given by the length of the line AB. 
+\medskip
+
+\hspace*{1cm}\vbox{\orange
+|\draw let \p1 = ($ (B) - (A) $),|\\
+|\n2 = {veclen(\x1,\y1)} in|\\
+|          (A) circle (\n2)|\\
+|          (B) circle (\n2);|}
+
+\medskip
+\hspace*{1cm}\vbox{\red 
+|\tkzDrawCircles(A,B B,A)|
+}
+
+The intersection of the circles
+
+\medskip
+
+\hspace*{1cm}\vbox{\orange 
+|draw [name path=A--B] (A) -- (B);|\\
+|node (D) [name path=D,draw,circle through=(B),label=left:$D$] at (A) {}; |\\
+|node (E) [name path=E,draw,circle through=(A),label=right:$E$] at (B) {};|\\
+|path [name intersections={of=D and E, by={[label=above:$C$]C, [label=below:$C'$]C'}}]; |\\
+|draw [name path=C--C',red] (C) -- (C');|\\
+|path [name intersections={of=A--B and C--C',by=F}];|\\
+|node [fill=red,inner sep=1pt,label=-45:$F$] at (F) {};|\\}
+
+\medskip
+\hspace*{1cm}\vbox{\red |\tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{X}|\\}
+
+
+How to draw points :
+
+\medskip
+\hspace*{1cm}\vbox{\orange |\foreach \point in {A,B,C}|\\
+|\fill [black,opacity=.5] (\point) circle (2pt);|\\}
+
+\medskip
+\hspace*{1cm}\vbox{\red| \tkzDrawPoints[fill=gray,opacity=.5](A,B,C)|\\}
+
+\subsubsection{Complete code with \pkg{tkz-euclide}}
+
+\colorlet{input}{red!80!black} 
+\colorlet{output}{red!70!black}
+\colorlet{triangle}{orange!40}  
+
+
+
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[scale=1.25,thick,help lines/.style={thin,draw=black!50}]
+  \tkzDefPoint(0,0){A}     
+  \tkzDefPoint(1.25+rand(),0.25+rand()){B}      
+  \tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{X}
+
+  \tkzFillPolygon[triangle,opacity=.5](A,B,C)
+  \tkzDrawSegment[input](A,B) 
+  \tkzDrawSegments[red](A,C B,C)  
+  \tkzDrawCircles[help lines](A,B B,A)
+
+  \tkzLabelPoints(A,B)
+  \tkzLabelCircle[below=12pt](A,B)(180){$D$}
+  \tkzLabelCircle[above=12pt](B,A)(180){$E$}
+  \tkzLabelPoint[above,red](C){$C$}
+  \tkzDrawPoints[fill=gray,opacity=.5](A,B,C)
+     
+  \end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection*{Book I, Proposition II  \_Euclid's Elements\_}
+
+\begin{tikzpicture}
+\node [mybox,title={Book I, Proposition II  \_Euclid's Elements\_}] (box){%
+\begin{minipage}{0.90\textwidth}
+  {\emph{To place a straight line equal to a given straight line with one end at a given point.}} 
+\end{minipage}
+};
+\end{tikzpicture}% 
+
+Explanation
+
+In the first part, we need to find the midpoint of the straight line $AB$. With TikZ we can use the calc library
+
+\medskip
+\hspace*{1cm}\vbox{\orange |\coordinate [label=left:$A$] (A) at (0,0);|\\
+|\coordinate [label=right:$B$] (B) at (1.25,0.25);|\\
+|\draw (A) -- (B);|\\
+|\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($ (A)!.5!(B) $) {};|\\}
+
+With \pkg{tkz-euclide} we have a macro \tkzcname{tkzDefMidPoint}, we get the point X with \tkzcname{tkzGetPoint} but we don't need this point to get the next step.
+
+
+\medskip
+\hspace*{1cm}\vbox{\red |\tkzDefPoints{0/0/A,0.75/0.25/B,1/1.5/C}|\\  
+|\tkzDefMidPoint(A,B) \tkzGetPoint{X}|}\\
+
+\medskip
+Then we need to construct a triangle equilateral. It's easy with \pkg{tkz-euclide} . With TikZ you need some effort because you need to use the midpoint $X$ to get the point $D$ with trigonometry calculation.
+
+\medskip
+\hspace*{1cm}\vbox{\orange
+|\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($ (A)!.5!(B) $) {}; | \\
+|\node [fill=red,inner sep=1pt,label=above:$D$] (D) at                      |  \\
+|($ (X) ! {sin(60)*2} ! 90:(B) $) {};                                       |  \\
+|\draw (A) -- (D) -- (B);                                                   |  \\
+}                                                                           \\
+
+\medskip
+\hspace*{1cm}\vbox{\red |\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D}|}\\
+
+We can draw the triangle at the end of the picture with
+
+\medskip
+\hspace*{1cm}\vbox{\red |\tkzDrawPolygon{A,B,C}|}
+
+\medskip
+We know how to draw the circle around $B$ through $C$ and how to place the points $E$ and $F$
+
+\medskip
+\hspace*{1cm}\vbox{\orange 
+|\node (H) [label=135:$H$,draw,circle through=(C)] at (B) {};|          \\
+|\draw (D) -- ($ (D) ! 3.5 ! (B) $) coordinate [label=below:$F$] (F);|  \\
+|\draw (D) -- ($ (D) ! 2.5 ! (A) $) coordinate [label=below:$E$] (E);|} \\
+
+\medskip
+
+\hspace*{1cm}\vbox{\red |\tkzDrawCircle(B,C)|\\
+|\tkzDrawLines[add=0 and 2](D,A D,B)|}
+
+\medskip
+We can place the points $E$ and $F$ at the end of the picture. We don't need them now.
+
+Intersecting a Line and a Circle : here we search the intersection of the circle around B through C and the line DB.
+The infinite straight line DB intercepts the circle but with TikZ we need to extend the lines  DB  and that can be done using partway calculations. We get the point F and BF or DF intercepts the circle
+
+\medskip
+\hspace*{1cm}\vbox{\orange| \node (H) [label=135:$H$,draw,circle through=(C)] at (B) {}; |  \\
+|\path let \p1 = ($ (B) - (C) $) in|                                     \\
+|  coordinate [label=left:$G$] (G) at ($ (B) ! veclen(\x1,\y1) ! (F) $); |  \\
+|\fill[red,opacity=.5] (G) circle (2pt);|}                                \\
+
+\medskip
+Like the intersection of two circles, it's easy to find the intersection of a line and a circle with \pkg{elements}. We don't need $F$ 
+
+\medskip
+\hspace*{1cm}\vbox{\red | \tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G}|}
+
+\medskip
+there are no more difficulties. Here the final code with some simplications.
+
+
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[scale=2]
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(0.75,0.25){B}  
+  \tkzDefPoint(1,1.5){C} 
+  \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D}
+  \tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G}
+  \tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}
+  \tkzDrawCircles(B,C D,G)
+  \tkzDrawLines[add=0 and 2](D,A D,B)
+  \tkzDrawSegment(A,B) 
+  \tkzDrawSegments[red](A,L B,C) 
+  \tkzDrawPoints[red](D,L)
+  \tkzDrawPoints[fill=gray](A,B,C)
+  \tkzLabelPoints[left,red](A)
+  \tkzLabelPoints[below right,red](L)
+  \tkzLabelCircle[above left=6pt](B,G)(180){$H$}
+  \tkzLabelPoints[above left](D,G)
+  \tkzLabelPoints[above,red](C)
+  \tkzLabelPoints[right,red](B)
+  \tkzLabelCircle[above left=6pt](D,G)(180){$K$}
+  \end{tikzpicture}
+\end{tkzexample}
+
+\subsection{\tkzname{\tkznameofpack 4}   vs \tkzname{\tkznameofpack 3}}
+
+Now I am no longer a Mathematics teacher, and I only spend a few hours studying geometry. I wanted to avoid multiple complications by trying to make \tkzname{tkz-euclide} independent of \tkzname{tkz-base}. Thus was born \tkzname{\tkznameofpack} 4. The latter is a simplified version of its predecessor. The macros of \tkzname{tkz-euclide 3} have been retained. The unit is now  \tkzname{cm}.  Si vous avez besoin de certaines macros de  \tkzname{tkz-base}, il vous faudra sans doute utiliser la macro \tkzcname{tkzInit}.
+
+\subsection{How to use the \tkzname{\tkznameofpack} package ?}
+\subsubsection{Let's look at a classic example}
+In order to show the right way, we will see how to build an equilateral triangle. Several possibilities are open to us, we are going to follow the steps of Euclid.
+
+\begin{itemize}
+\item   First of all, you have to use a document class. The best choice to test your code is to create a single figure with the class \tkzname{standalone}\index{standalone}.
+\begin{verbatim}  
+\documentclass{standalone}
+\end{verbatim}
+\item Then load the \tkzname{\tkznameofpack} package:
+\begin{verbatim}  
+\usepackage{tkz-euclide}
+\end{verbatim}
+
+ You don't need to load \TIKZ\ because the \tkzname{\tkznameofpack} package works on top of TikZ and loads it.
+
+ \item Start the document and open a TikZ picture environment:
+\begin{verbatim}
+\begin{document}
+\begin{tikzpicture}
+\end{verbatim}
+
+\item Now we define two fixed points:
+\begin{verbatim}
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(5,2){B}
+\end{verbatim}
+
+\item Two points define two circles, let's use these circles:
+
+ circle with center $A$ through $B$ and circle with center $B$ through $A$. These two circles have two points in common.
+\begin{verbatim}
+\tkzInterCC(A,B)(B,A)
+\end{verbatim}
+We can get the points of intersection with
+\begin{verbatim}
+\tkzGetPoints{C}{D}
+\end{verbatim}
+
+\item All the necessary points are obtained, we can move on to the final steps including the plots.
+\begin{verbatim}
+\tkzDrawCircles[gray,dashed](A,B B,A)
+\tkzDrawPolygon(A,B,C)% The triangle
+\end{verbatim}
+\item Draw all points $A$, $B$, $C$ and $D$:
+\begin{verbatim}
+\tkzDrawPoints(A,...,D)
+\end{verbatim}
+
+\item The final step, we print labels to the points and use options for positioning:\\
+\begin{verbatim}
+\tkzLabelSegments[swap](A,B){$c$}
+\tkzLabelPoints(A,B,D)
+\tkzLabelPoints[above](C)
+\end{verbatim}
+\item We finally close both environments
+\begin{verbatim}
+\end{tikzpicture}
+\end{document}
+\end{verbatim}
+
+\item The complete code
+
+\begin{tkzexample}[latex=8cm,small]
+ \begin{tikzpicture}[scale=.5]
+   % fixed points
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(5,2){B}
+  % calculus
+  \tkzInterCC(A,B)(B,A)
+  \tkzGetPoints{C}{D}
+  % drawings
+  \tkzDrawCircles(A,B B,A)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,...,D)
+  % marking
+  \tkzMarkSegments[mark=s||](A,B B,C C,A)
+  % labelling
+  \tkzLabelSegments[swap](A,B){$c$}
+  \tkzLabelPoints(A,B,D)
+  \tkzLabelPoints[above](C)
+\end{tikzpicture}
+\end{tkzexample}
+
+ \end{itemize}
+
+\subsubsection{ Part I: golden triangle}
 \begin{center}
 \begin{tikzpicture}
   
@@ -46,15 +354,18 @@
 % Toget A we use an intersection of lines
 \tkzInterLL(B,E)(C,D) \tkzGetPoint{A}
 \tkzInterLL(C,E)(B,D) \tkzGetPoint{H}
+
+% angles 
+\tkzMarkAngles[size=2](C,B,D E,A,D) %this is to draw the arcs
+\tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
+\tkzMarkRightAngle(B,H,C)
+\tkzDrawPoints(A,...,E)
+
 % drawing
 \tkzDrawArc[delta=10](B,C)(E)
 \tkzDrawPolygon(C,B,D)
 \tkzDrawSegments(D,A B,A C,E)
-% angles 
-\tkzMarkAngles(C,B,D E,A,D) %this is to draw the arcs
-\tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
-\tkzMarkRightAngle(B,H,C)
-\tkzDrawPoints(A,...,E)
+
 % Label only now
 \tkzLabelPoints[below left](C,A)
 \tkzLabelPoints[below right](D)
@@ -106,14 +417,15 @@
   \tkzInterCC[with nodes](C,C,n)(D,C,n) 
   \tkzGetFirstPoint{B}
   \tkzDrawSegment[brown,dashed](f,n)
-  \pgfinterruptboundingbox 
+  \pgfinterruptboundingbox% from tikz
   \tkzDrawPolygon[brown,dashed](C,D,e,f)
   \tkzDrawArc[brown,dashed](m,e)(n)
   \tkzCompass[brown,dashed,delta=20](C,B)
   \tkzCompass[brown,dashed,delta=20](D,B)
   \endpgfinterruptboundingbox 
-  \tkzDrawPoints(C,D,B)
   \tkzDrawPolygon(B,...,D)
+  \tkzDrawPoints(B,C,D,e,f,m,n)
+  \tkzLabelPoints(B,C,D,e,f,m,n)
   \end{tikzpicture}
 \end{minipage}
 \begin{minipage}{.6\textwidth}
@@ -130,12 +442,10 @@
   \tkzInterCC[with nodes](C,C,n)(D,C,n) 
   \tkzGetFirstPoint{B}
   \tkzDrawSegment[brown,dashed](f,n)
-  \pgfinterruptboundingbox 
   \tkzDrawPolygon[brown,dashed](C,D,e,f)
   \tkzDrawArc[brown,dashed](m,e)(n)
   \tkzCompass[brown,dashed,delta=20](C,B)
   \tkzCompass[brown,dashed,delta=20](D,B)
-  \endpgfinterruptboundingbox 
   \tkzDrawPoints(C,D,B)
   \tkzDrawPolygon(B,...,D)
   \end{tikzpicture}
@@ -144,40 +454,7 @@
 
 
 After building the golden triangle $BCD$, we build the point $A$ by noticing that $BD=DA$. Then we get the point $E$ and finally the point $F$. This is done with already intersections of defined objects  (line and circle).
- 
 
-\begin{center}
-  \begin{tikzpicture}
-    \tkzDefPoint(0,0){C}
-    \tkzDefPoint(4,0){D}
-    \tkzDefSquare(C,D)                     
-    \tkzGetPoints{e}{f}
-    \tkzDefMidPoint(C,f)                   
-    \tkzGetPoint{m}
-    \tkzInterLC(C,f)(m,e)                  
-    \tkzGetSecondPoint{n}
-    \tkzInterCC[with nodes](C,C,n)(D,C,n) 
-    \tkzGetFirstPoint{B}
-    \tkzInterLC(C,D)(D,B) \tkzGetSecondPoint{A}
-    \tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E}
-    \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
-    \tkzDrawPoints(C,D,B)
-    \tkzDrawPolygon(B,...,D)  
-    \tkzDrawPolygon(B,C,D)
-    \tkzDrawSegments(D,A A,B C,E)
-    \tkzDrawArc[delta=10](B,C)(E)
-    \tkzMarkRightAngle[fill=blue!20](B,F,C)  
-    \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
-    \tkzMarkAngles(C,B,D E,A,D)
-    \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
-    \tkzLabelPoints[below](A,C,D,E)
-    \tkzLabelPoints[above right](B,F)
-    \tkzDrawPoints(A,...,F) 
-  \end{tikzpicture} 
-\end{center}
-
-
-
 \begin{tkzexample}[code only,small]
   \begin{tikzpicture}
     \tkzDefPoint(0,0){C}
@@ -199,8 +476,7 @@
     \tkzDrawSegments(D,A A,B C,E)
     \tkzDrawArc[delta=10](B,C)(E)
     \tkzDrawPoints(A,...,F) 
-    \tkzMarkRightAngle[fill=blue!20](B,F,C)  
-    \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
+    \tkzMarkRightAngle(B,F,C)  
     \tkzMarkAngles(C,B,D E,A,D)
     \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
     \tkzLabelPoints[below](A,C,D,E)
@@ -208,9 +484,9 @@
   \end{tikzpicture} 
 \end{tkzexample}
 
-\subsubsection{Example Part II: two others methods gold and euclide triangle}
+\subsubsection{Part II: two others methods with golden and euclid triangle}
 
-\tkzname{\tkznameofpack} knows how to define a "gold" or "euclide" triangle. We can define $BCD$ and $BCA$ like gold triangles.
+\tkzname{\tkznameofpack} knows how to define a "golden" or "euclide" triangle. We can define $BCD$ and $BCA$ like gold triangles.
 
 
   \begin{center}
@@ -218,9 +494,9 @@
       \begin{tikzpicture}
         \tkzDefPoint(0,0){C}
         \tkzDefPoint(4,0){D}
-        \tkzDefTriangle[euclide](C,D)
+        \tkzDefTriangle[euclid](C,D)
         \tkzGetPoint{B}
-        \tkzDefTriangle[euclide](B,C)
+        \tkzDefTriangle[euclid](B,C)
         \tkzGetPoint{A}
         \tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E}
         \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
@@ -230,8 +506,7 @@
         \tkzDrawSegments(D,A A,B C,E)
         \tkzDrawArc[delta=10](B,C)(E)
         \tkzDrawPoints(A,...,F) 
-        \tkzMarkRightAngle[fill=blue!20](B,F,C)  
-        \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
+        \tkzMarkRightAngle(B,F,C)  
         \tkzMarkAngles(C,B,D E,A,D)
         \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
         \tkzLabelPoints[below](A,C,D,E)
@@ -342,8 +617,8 @@
       \tkzGetPoint{M}
    \tkzDefPointWith[orthogonal](I,M)
       \tkzGetPoint{H}
-   \tkzInterLC(I,H)(M,A)
-      \tkzGetSecondPoint{B}
+   \tkzInterLC(I,H)(M,B)             
+   \tkzGetSecondPoint{C}
  \end{tkzltxexample}  
      
 
@@ -352,9 +627,9 @@
    \tkzDrawSegment[style=orange](I,H)
    \tkzDrawPoints(O,I,A,B,M)
    \tkzDrawArc(M,A)(O)
-   \tkzDrawSegment[dim={$1$,-16pt,}](O,I)  
+   \tkzDrawSegment[dim={$1$,-16pt,}](A,I)
    \tkzDrawSegment[dim={$a/2$,-10pt,}](I,M)
-   \tkzDrawSegment[dim={$a/2$,-16pt,}](M,A)
+   \tkzDrawSegment[dim={$a/2$,-16pt,}](M,B)
  \end{tkzltxexample}
  
 \item  Marking: the fourth is devoted to marking;
@@ -361,14 +636,14 @@
 
 
 \begin{tkzltxexample}[]
-   \tkzMarkRightAngle(A,I,B)
+ \tkzMarkRightAngle[ra](A,I,C)
  \end{tkzltxexample}
  
  \item Labelling: the latter only deals with the placement of labels.
 \begin{tkzltxexample}[]
-   \tkzLabelPoint[left](O){$A(0,0)$}
-   \tkzLabelPoint[right](A){$B(10,0)$}
-   \tkzLabelSegment[right=4pt](I,B){$\sqrt{a^2}=a \ (a>0)$}
+   \tkzLabelPoint[left](A){$A(0,0)$} 
+   \tkzLabelPoint[right](B){$B(10,0)$}
+   \tkzLabelSegment[right=4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
 \end{tkzltxexample}
 
 
@@ -401,253 +676,4 @@
 \end{tkzexample}
 \end{itemize}
 
-\subsection{The Elements of tkz code}
-In this paragraph, we start looking at the "rules" and "symbols" used to create a figure with \tkzname{\tkznameofpack}.
-
- The primitive objects are points. You can refer to a point at any time using the name given when defining it. (it is possible to assign a different name later on).
-
-\medskip
-In general, \tkzname{\tkznameofpack} macros have a name beginning with tkz. There are four main categories starting with:
-|\tkzDef...| |\tkzDraw...| |\tkzMark...| and |\tkzLabel...|
-
-Among the first category, |\tkzDefPoint| allows you to define fixed points. It will be studied in detail later. Here we will see in detail the macro  |\tkzDefTriangle|.
-
-This macro makes it possible to associate to a pair of points a third point in order to define a certain triangle |\tkzDefTriangle(A,B)|. The obtained point is referenced |tkzPointResult| and it is possible to choose another reference with |\tkzGetPoint{C}| for example.
-Parentheses are used to pass arguments. In |(A,B)| $A$ and $B$ are the points with which a third will be defined.
-
-However, in |{C}| we use braces to retrieve the new point.
-In order to choose a certain type of triangle among the following choices:
-  |equilateral|, |half|, |pythagoras|, |school|, |golden or sublime|, |euclide|, |gold|, |cheops|...
- and |two angles| you just have to choose between hooks, for example:
- 
-|\tkzDefTriangle[euclide](A,B) \tkzGetPoint{C}|
-
-\begin{minipage}{0.5\textwidth}
-  \begin{tikzpicture}[scale=.75]
-  \tkzDefPoints{0/0/A,8/0/B}
-  \foreach \tr in {equilateral,half,pythagore,%
-          school,golden,euclide, gold,cheops}
-  {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
-  \tkzDrawPoint(C)
-  \tkzLabelPoint[right](C){\tr}
-  \tkzDrawSegments(A,C C,B)}
-  \tkzDrawPoints(A,B)
-  \tkzDrawSegments(A,B)
-  \end{tikzpicture}
-\end{minipage}
-\begin{minipage}{0.5\textwidth}
-  \begin{tkzexample}[code only,small]
-    \begin{tikzpicture}[scale=.75]
-    \tkzDefPoints{0/0/A,8/0/B}
-    \foreach \tr in {equilateral,half,pythagore,%
-            school,golden,euclide, gold,cheops}
-    {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
-    \tkzDrawPoint(C)
-    \tkzLabelPoint[right](C){\tr}
-    \tkzDrawSegments(A,C C,B)}
-    \tkzDrawPoints(A,B)
-    \tkzDrawSegments(A,B)
-    \end{tikzpicture}
-  \end{tkzexample}
-
-\end{minipage}
-
-
-\subsection{Notations and conventions}
-
-I deliberately chose to use the geometric French and personal  conventions  to describe the geometric objects represented. The objects defined and represented by \tkzname{\tkznameofpack} are points, lines and circles located in a plane. They are the primary objects of Euclidean geometry from which we will construct figures.
-
-According to \tkzimp{Euclidian} these figures will only illustrate pure ideas produced by our brain.
-Thus a point has no dimension and therefore no real existence. In the same way the line has no width and therefore no existence in the real world. The objects that we are going to consider are only representations of ideal mathematical objects. \tkzname{\tkznameofpack} will follow the steps of the ancient Greeks to obtain geometrical constructions using the ruler and the compass. 
-
-Here are the notations that will be used:
-
-
-\begin{itemize}
-\item The points are represented geometrically either by a small disc or by the intersection of two lines (two straight lines, a straight line and a circle or two circles). In this case, the point is represented by a cross. 
-
-\begin{tkzexample}[latex=6cm, small]     
-  \begin{tikzpicture}       
-    \tkzDefPoints{0/0/A,4/2/B}       
-    \tkzDrawPoints(A,B)       
-    \tkzLabelPoints(A,B)     
-  \end{tikzpicture}    
-\end{tkzexample}
-
-or else
-
-\begin{tkzexample}[latex=6cm, small]     
-  \begin{tikzpicture}       
-    \tkzSetUpPoint[shape=cross, color=red]       
-    \tkzDefPoints{0/0/A,4/2/B}       
-    \tkzDrawPoints(A,B)       
-    \tkzLabelPoints(A,B)     
-    \end{tikzpicture}    
-    \end{tkzexample}  
-
-The existence of a point being established, we can give it a label which will be a capital letter (with some exceptions) of the Latin alphabet such as $A$, $B$ or $C$. For example:
-\begin{itemize}
-\item $O$ is a center for a circle, a rotation, etc.;
-\item $M$ defined a midpoint;
-\item $H$ defined the foot of an altitude;
-\item $P'$ is the image of $P$ by a transformation ;
-\end{itemize}
-
-It is important to note that the reference name of a point in the code may be different from the label to designate it in the text. So we can define a point A and give it as label $P$. In particular the style will be different, point A will be labeled $A$. 
-
-\begin{tkzexample}[latex=6cm, small]     
-  \begin{tikzpicture}       
-    \tkzDefPoints{0/0/A}       
-    \tkzDrawPoints(A)       
-    \tkzLabelPoint(A){$P$}     
-  \end{tikzpicture}    
-\end{tkzexample}
-
-Exceptions: some points such as the middle of the sides of a triangle share a characteristic, so it is normal that their names also share a common character. We will designate these points by $M_a$, $M_b$ and $M_c$ or $M_A$, $M_B$ and $M_C$.
-
-In the code, these points will be referred to as: M\_A, M\_B and M\_C.
-
-Another exception relates to intermediate construction points which will not be labelled. They will often be designated by a lowercase letter in the code.
-
-\item The line segments are designated by two points representing their ends in square brackets: $[AB]$. 
-
-\item The straight lines are in Euclidean geometry defined by two points so $A$ and $B$ define the straight line $(AB)$. We can also designate this stright line using the Greek alphabet and name it $(\delta)$ or $(\Delta)$. It is also possible to designate the straight line with lowercase letters such as $d$ and $d'$.
-
-\item The semi-straight line is designated as follows $[AB)$.
-
-
-\item Relation between the straight lines. Two perpendicular $(AB)$ and $(CD)$ lines will be written $(AB) \perp (CD)$ and if they are parallel we will write $(AB) \parallelslant (CD)$.
-
-\item The lengths of the sides of triangle ABC are $AB$, $AC$ and $BC$. The numbers are also designated by a lowercase letter so we will write: $AB=c$, $AC=b$ and $BC=a$. The letter $a$ is also used to represent an angle, and $r$ is frequently used to represent a radius, $d$ a diameter, $l$ a length, $d$ a distance.
-
-\item Polygons are designated afterwards by their vertices so $ABC$ is a triangle, $EFGH$ a quadrilateral.
-
-\item Angles are generally measured in degrees (ex $60^\circ$) and in an equilateral $ABC$ triangle we will write $\widehat{ABC}=\widehat{B}=60^\circ$.
-
-\item The arcs are designated by their extremities. For example if $A$ and $B$ are two points of the same circle then $\widearc{AB}$.
-
-
-\item Circles are noted either $\mathcal{C}$ if there is no possible confusion or $\mathcal{C}$ $(O~;~A)$ for a circle with center $O$ and passing through the point $A$ or $\mathcal{C}$ $(O~;~1)$ for a circle with center O and radius 1 cm.
-
-\item  Name of the particular lines of a triangle: I used the terms bisector, bisector out, mediator (sometimes called perpendicular bisectors), altitude, median and symmedian.
-
-\item ($x_1$,$y_1$) coordinates of the point $A_1$, ($x_A$,$y_A$) coordinates of the point $A$.
-
-\end{itemize}
-
-
-
-
-\subsection{How to use the \tkzname{\tkznameofpack} package ?}
-\subsubsection{Let's look at a classic example}
-In order to show the right way, we will see how to build an equilateral triangle. Several possibilities are open to us, we are going to follow the steps of Euclid.
-
-\begin{itemize}
-\item   First of all you have to use a document class. The best choice to test your code is to create a single figure with the class \tkzname{standalone}\index{standalone}.
-\begin{verbatim}  
-\documentclass{standalone}
-\end{verbatim}
-\item Then load the \tkzname{\tkznameofpack} package:
-\begin{verbatim}  
-\usepackage{tkz-euclide}
-\end{verbatim}
-
- You don't need to load \TIKZ\ because the \tkzname{\tkznameofpack} package works on top of TikZ and loads it.
- \item  {\color{red} \bomb \sout{|\BS usetkzobj{all}| }}
- With the new version 3.03 you don't need this line anymore. All objects are now loaded.
- \item Start the document and open a TikZ picture environment:
-\begin{verbatim}
-\begin{document}
-\begin{tikzpicture}
-\end{verbatim}
-
-\item Now we define two fixed points:
-\begin{verbatim}
-\tkzDefPoint(O,O){A}
-\tkzDefPoint(5,2){B}
-\end{verbatim}
-
-\item Two points define two circles, let's use these circles:
-
- circle with center $A$ through $B$ and circle with center $B$ through $A$. These two circles have two points in common.
-\begin{verbatim}
-\tkzInterCC(A,B)(B,A)
-\end{verbatim}
-We can get the points of intersection with
-\begin{verbatim}
-\tkzGetPoints{C}{D}
-\end{verbatim}
-
-\item All the necessary points are obtained, we can move on to the final steps including the plots.
-\begin{verbatim}
-\tkzDrawCircles[gray,dashed](A,B B,A)
-\tkzDrawPolygon(A,B,C)% The triangle
-\end{verbatim}
-\item Draw all points $A$, $B$, $C$ and $D$:
-\begin{verbatim}
-\tkzDrawPoints(A,...,D)
-\end{verbatim}
-
-\item The final step, we print labels to the points and use options for positioning:\\
-\begin{verbatim}
-\tkzLabelSegments[swap](A,B){$c$}
-\tkzLabelPoints(A,B,D)
-\tkzLabelPoints[above](C)
-\end{verbatim}
-\item We finally close both environments
-\begin{verbatim}
-\end{tikzpicture}
-\end{document}
-\end{verbatim}
-
-\item The complete code
-
-\begin{tkzexample}[latex=8cm,small]
- \begin{tikzpicture}[scale=.5]
-   % fixed points
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(5,2){B}
-  % calculus
-  \tkzInterCC(A,B)(B,A)
-  \tkzGetPoints{C}{D}
-  % drawings
-  \tkzDrawCircles[gray,dashed](A,B B,A)
-  \tkzDrawPolygon(A,B,C)
-  \tkzDrawPoints(A,...,D)
-  % marking
-  \tkzMarkSegments[mark=s||](A,B B,C C,A)
-  % labelling
-  \tkzLabelSegments[swap](A,B){$c$}
-  \tkzLabelPoints(A,B,D)
-  \tkzLabelPoints[above](C)
-\end{tikzpicture}
-\end{tkzexample}
-
- \end{itemize}
-
-\subsubsection{\tkzname{Set, Calculate, Draw, Mark, Label}}
-The title could have been: \texttt{Separation of Calculus and Drawings}
-
-When a document is prepared using the \LATEX\ system, the source code of the document can be divided into two parts: the document body and the preamble.
-Under this methodology,  publications can be structured, styled and typeset with minimal effort.
-I propose a similar methodology for creating figures with \tkzname{\tkznameofpack}.
-
-The first part defines the fixed points, the second part allows the creation of new points. These are the two main parts. All that is left to do is to draw, mark and label.
-
-
-
-
-\endinput
-
-
-
-
-
-
-
-
-
-
-
-
-
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rapporteur.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rapporteur.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rapporteur.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -12,7 +12,6 @@
 \end{tabular}
 \end{NewMacroBox}
 
-
 \subsection{The circular protractor} 
 Measuring in the forward direction
 
@@ -39,6 +38,4 @@
   \tkzProtractor[return](A,C) 
 \end{tikzpicture}
 \end{tkzexample}
-  
-
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rnd.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rnd.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-rnd.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -23,7 +23,7 @@
 \TOline{rectangle=pt1 and pt2}  {}{[rectangle=A and B]} 
 \TOline{segment= pt1--pt2} {}{[segment=A--B]}
 \TOline{line=pt1--pt2}{}{[line=A--B]} 
-\TOline{circle =center pt1 radius dim}{}{[circle = center A radius 2 cm]} 
+\TOline{circle =center pt1 radius dim}{}{[circle = center A radius 2]} 
 \TOline{circle through=center pt1 through pt2}{}{[circle through= center A through B]}
 \TOline{disk through=center pt1 through pt2}{}{[disk through=center A through B]}
 \end{tabular}
@@ -70,45 +70,27 @@
 \end{tkzexample}
 
 
-\subsubsection{Example of random points}
+
+
+\subsubsection{Random point on a circle}
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}
- \tkzDefPoints{0/0/A,2/2/B,-1/-1/C}
- \tkzDefCircle[through=](A,C) 
- \tkzGetLength{rAC}
- \tkzDrawCircle(A,C)
- \tkzDrawCircle(A,B)
- \tkzDefRandPointOn[rectangle=A and B]
- \tkzGetPoint{a}
- \tkzDefRandPointOn[segment=A--B]
- \tkzGetPoint{b}
- \tkzDefRandPointOn[circle=center A radius \rAC pt]
-    \tkzGetPoint{d}
- \tkzDefRandPointOn[circle through= center A through B]
-     \tkzGetPoint{c}
- \tkzDefRandPointOn[disk through=center A through B]
-     \tkzGetPoint{e}
- \tkzLabelPoints[above right=3pt](A,B,C,a,b,...,e)
- \tkzDrawPoints[](A,B,C,a,b,...,e)
- \tkzDrawRectangle(A,B)
+\tkzInit[ymin=-1,xmax=6,ymax=5] \tkzGrid 
+\tkzDefPoints{3/2/A,1/1/B}
+\tkzCalcLength(A,B) \tkzGetLength{rAB} 
+\tkzDefRandPointOn[circle = center A radius \rAB] 
+\tkzGetPoint{a}
+\tkzDefRandPointOn[circle through= center A through B]
+\tkzGetPoint{b}
+\tkzDefRandPointOn[disk through=center A through B]
+\tkzGetPoint{c}
+\tkzDrawCircle[R](A,\rAB)
+\tkzDrawSegment(A,a)
+\tkzDrawPoints(A,B,a,b,c)
+\tkzLabelPoints(A,B,a,b,c)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsection{Random point on a circle}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture} 
-  \tkzInit[xmax=5,ymax=5]  \tkzGrid   
-  \tkzDefPoints{3/2/A,1/1/B}
-  \tkzCalcLength[cm](A,B) \tkzGetLength{rAB}
-  \tkzDrawCircle[R](A,\rAB cm) 
-  \tkzDefRandPointOn[circle = center A radius
-   \rAB cm]\tkzGetPoint{a}
-  \tkzDrawSegment(A,a)
-  \tkzDrawPoints(A,B,a) 
-  \tkzLabelPoints(A,B,a)  
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsubsection{Random example and circle of Apollonius}
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1]
@@ -118,21 +100,22 @@
  \tkzGetPoint{P}
  \tkzDefApolloniusPoint[K=\coeffK](A,B) 
  \tkzGetPoint{M}
+ \tkzDefRandPointOn[circle through=%
+                center P through M]
+ \tkzGetPoint{N}
  \tkzDefApolloniusRadius[K=\coeffK](A,B)
  \tkzDrawCircle[R,color = blue!50!black,
      fill=blue!20,
-     opacity=.4](tkzPointResult,\tkzLengthResult pt)
- \tkzDefRandPointOn[circle through= center P through M]
- \tkzGetPoint{N}
+     opacity=.4](tkzPointResult,\tkzLengthResult)
+ \tkzLabelCircle[R,draw,fill=green!10,%
+     text width=3cm,%
+     text centered](P,\tkzLengthResult+1)(-120)%
+  { $MA/MB=\coeffK$\\$NA/NB=\coeffK$}
  \tkzDrawPoints(A,B,P,M,N)
  \tkzLabelPoints(A,B,P,M,N)
  \tkzDrawSegments[red](N,A N,B)
  \tkzDrawPoints(A,B)
  \tkzDrawSegments[red](A,B)
- \tkzLabelCircle[R,draw,fill=green!10,%
-     text width=3cm,%
-     text centered](P,\tkzLengthResult pt-20pt)(-120)%
-  { $MA/MB=\coeffK$\\$NA/NB=\coeffK$}
 \end{tikzpicture}
 \end{tkzexample}
 
@@ -141,34 +124,56 @@
 \subsection{Middle of a compass segment}
  To conclude this section, here is a more complex example. It involves determining the middle of a segment, using only a compass. 
 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.75]
+\begin{tikzpicture}
   \tkzDefPoint(0,0){A}
-  \tkzDefRandPointOn[circle= center A radius 4cm]
+  \tkzDefRandPointOn[circle= center A radius 4]
   \tkzGetPoint{B}
-  \tkzDrawPoints(A,B)
   \tkzDefPointBy[rotation= center A angle 180](B) 
   \tkzGetPoint{C}
-  \tkzInterCC[R](A,4 cm)(B,4 cm)
+  \tkzInterCC[R](A,4)(B,4)
   \tkzGetPoints{I}{I'}
-  \tkzInterCC[R](A,4 cm)(I,4 cm)
+  \tkzInterCC[R](A,4)(I,4)
   \tkzGetPoints{J}{B}
   \tkzInterCC(B,A)(C,B)
   \tkzGetPoints{D}{E}
   \tkzInterCC(D,B)(E,B)
   \tkzGetPoints{M}{M'}
-  \tikzset{arc/.style={color=brown,style=dashed,delta=10}}
-  \tkzDrawArc[arc](C,D)(E)
-  \tkzDrawArc[arc](B,E)(D)
-  \tkzDrawCircle[color=brown,line width=.2pt](A,B)
-  \tkzDrawArc[arc](D,B)(M) 
-  \tkzDrawArc[arc](E,M)(B)
-  \tkzCompasss[color=red,style=solid](B,I I,J J,C)
-  \tkzDrawPoints(B,C,D,E,M)
+  \tkzSetUpArc[color=teal,style=dashed,delta=10]
+  \tkzDrawArc(C,D)(E)
+  \tkzDrawArc(B,E)(D)
+  \tkzDrawCircle[color=teal,line width=.2pt](A,B)
+  \tkzDrawArc(D,B)(M) 
+  \tkzDrawArc(E,M)(B)
+  \tkzCompasss[style=solid](B,I I,J J,C)
+  \tkzDrawPoints(A,B,C,D,E,M)
   \tkzLabelPoints(A,B,M)
  \end{tikzpicture}
+ 
+\begin{tkzexample}[code only,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){A}
+  \tkzDefRandPointOn[circle= center A radius 4]
+  \tkzGetPoint{B}
+  \tkzDefPointBy[rotation= center A angle 180](B) 
+  \tkzGetPoint{C}
+  \tkzInterCC[R](A,4)(B,4)
+  \tkzGetPoints{I}{I'}
+  \tkzInterCC[R](A,4)(I,4)
+  \tkzGetPoints{J}{B}
+  \tkzInterCC(B,A)(C,B)
+  \tkzGetPoints{D}{E}
+  \tkzInterCC(D,B)(E,B)
+  \tkzGetPoints{M}{M'}
+  \tkzSetUpArc[ccolor=teal,style=dashed,delta=10]
+  \tkzDrawArc(C,D)(E)
+  \tkzDrawArc(B,E)(D)
+  \tkzDrawCircle[color=teal,line width=.2pt](A,B)
+  \tkzDrawArc(D,B)(M) 
+  \tkzDrawArc(E,M)(B)
+  \tkzCompasss[color=orange,style=solid](B,I I,J J,C)
+  \tkzDrawPoints(A,B,C,D,E,M)
+  \tkzLabelPoints(A,B,M)
+ \end{tikzpicture}
  \end{tkzexample}
    
-\endinput
-
- 
\ No newline at end of file
+\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-sectors.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-sectors.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-sectors.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,224 +0,0 @@
-\section{Sectors}
-\subsection{\tkzcname{tkzDrawSector}} 
-\tkzHandBomb\  Attention the arguments vary according to the options.
-\begin{NewMacroBox}{tkzDrawSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
-\begin{tabular}{lll}%
-options             & default & definition                         \\ 
-\midrule
-\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$}
-\TOline{rotate} {towards}{the arc starts from $A$ and the angle determines its length } 
-\TOline{R}{towards}{We give the radius and two angles}
-\TOline{R with nodes}{towards}{We give the radius and two points}
-\bottomrule
-\end{tabular} 
-
-\medskip
-You have to add, of course, all the styles of \TIKZ\ for tracings...
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & arguments & example                         \\ 
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzDrawSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzDrawSector[rotate,color=red](O,A)(90)}} 
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzDrawSector[R,color=blue](O,2 cm)(30,90)}}
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzDrawSector[R with nodes](O,2 cm)(A,B)}}
-\bottomrule
-\end{tabular}
-\end{NewMacroBox}
-
-Here are a few examples: 
-
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{towards}} 
-There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an option.
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(-30:3){A} 
-  \tkzDefPointBy[rotation = center O angle -60](A) 
-  \tkzDrawSector[fill=red!50](O,A)(tkzPointResult)
- \begin{scope}[shift={(-60:1cm)}]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(-30:3){A} 
-  \tkzDefPointBy[rotation = center O angle -60](A) 
-  \tkzDrawSector[fill=blue!50](O,tkzPointResult)(A)
-  \end{scope}
-\end{tikzpicture}   
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{rotate}}  
-\begin{tkzexample}[latex=7cm,small]  
-\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,2){A}
- \tkzDrawSector[rotate,draw=red!50!black,%
- fill=red!20](O,A)(30)
- \tkzDrawSector[rotate,draw=blue!50!black,%
- fill=blue!20](O,A)(-30)
-\end{tikzpicture} 
-\end{tkzexample}  
-
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}}  
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,-1){A}
- \tkzDrawSector[R,draw=white,%
- fill=red!50](O,2cm)(30,90)
- \tkzDrawSector[R,draw=white,%
- fill=red!60](O,2cm)(90,180)
- \tkzDrawSector[R,draw=white,%
- fill=red!70](O,2cm)(180,270)
- \tkzDrawSector[R,draw=white,%
- fill=red!90](O,2cm)(270,360) 
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}}  
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(4,-2){A}
- \tkzDefPoint(4,1){B}
- \tkzDefPoint(3,3){C}
- \tkzDrawSector[R with nodes,%
-                fill=blue!20](O,1 cm)(B,C)
- \tkzDrawSector[R with nodes,%
-                fill=red!20](O,1.25 cm)(A,B)  
-\tkzDrawSegments(O,A O,B O,C)
-\tkzDrawPoints(O,A,B,C) 
-\tkzLabelPoints(A,B,C) 
-\tkzLabelPoints[left](O) 
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R with nodes}} 
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture} [scale=.5]
- \tkzDefPoint(-1,-2){A}  
- \tkzDefPoint(1,3){B} 
- \tkzDefRegPolygon[side,sides=6](A,B) 
- \tkzGetPoint{O} 
- \tkzDrawPolygon[fill=black!10,
-                 draw=blue](P1,P...,P6) 
- \tkzLabelRegPolygon[sep=1.05](O){A,...,F}
- \tkzDrawCircle[dashed](O,A)
- \tkzLabelSegment[above,sloped,
-                  midway](A,B){\(A B = 16m\)}
- \foreach \i  [count=\xi from 1]  in {2,...,6,1}
-   {%
-    \tkzDefMidPoint(P\xi,P\i)
-    \path (O) to [pos=1.1] node {\xi} (tkzPointResult) ;
-    }
-  \tkzDefRandPointOn[segment = P3--P5] 
-  \tkzGetPoint{S}
-  \tkzDrawSegments[thick,dashed,red](A,S S,B)
-  \tkzDrawPoints(P1,P...,P6,S)
-  \tkzLabelPoint[left,above](S){$S$}
-  \tkzDrawSector[R with nodes,fill=red!20](S,2 cm)(A,B)
-  \tkzLabelAngle[pos=1.5](A,S,B){$\alpha$}
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{\tkzcname{tkzFillSector}}
-\tkzHandBomb\ Attention the arguments vary according to the options. 
-\begin{NewMacroBox}{tkzFillSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
-\begin{tabular}{lll}%
-options          & default & definition      \\ 
-\midrule
-\TOline{towards}{towards}{$O$ is the center and the arc from $A$ to $(OB)$}
-\TOline{rotate} {towards}{the arc starts from A and the angle determines its length } 
-\TOline{R}{towards}{We give the radius and two angles}
-\TOline{R with nodes}{towards}{We give the radius and two points}
-\bottomrule
-\end{tabular} 
-
-\medskip
-Of course, you have to add all the styles of \TIKZ\ for the tracings...
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & arguments & example                         \\ 
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzFillSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{an}}{\tkzcname{tkzFillSector[rotate,color=red](O,A)(90)}}
-\TOline{R}{\parg{pt,$r$}\parg{an,an}}{\tkzcname{tkzFillSector[R,color=blue](O,2 cm)(30,90)}} 
-\TOline{R with nodes}{\parg{pt,$r$}\parg{pt,pt}}{\tkzcname{tkzFillSector[R with nodes](O,2 cm)(A,B)}}
-\end{tabular}   
-\end{NewMacroBox} 
-
-\subsubsection{\tkzcname{tkzFillSector} and \tkzname{towards}} 
-It is useless to put \tkzname{towards} and you will notice that the contours are not drawn, only the surface is colored.
-\begin{tkzexample}[latex=5.75cm,small]
-\begin{tikzpicture}[scale=.6]
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(-30:3){A} 
-  \tkzDefPointBy[rotation = center O angle -60](A) 
-  \tkzFillSector[fill=red!50](O,A)(tkzPointResult)
-  \begin{scope}[shift={(-60:1cm)}]
-   \tkzDefPoint(0,0){O}
-   \tkzDefPoint(-30:3){A} 
-   \tkzDefPointBy[rotation = center O angle -60](A) 
-   \tkzFillSector[color=blue!50](O,tkzPointResult)(A)
-  \end{scope}
-\end{tikzpicture}
-\end{tkzexample}
-
-
-\subsubsection{\tkzcname{tkzFillSector} and \tkzname{rotate}} 
-\begin{tkzexample}[latex=5.75cm,small]
-\begin{tikzpicture}[scale=1.5]
- \tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
- \tkzFillSector[rotate,color=red!20](O,A)(30)
- \tkzFillSector[rotate,color=blue!20](O,A)(-30)
-\end{tikzpicture}    
-\end{tkzexample} 
-
-\subsection{\tkzcname{tkzClipSector}}
-\tkzHandBomb\  Attention the arguments vary according to the options. 
-\begin{NewMacroBox}{tkzClipSector}{\oarg{local options}\parg{O,\dots}\parg{\dots}}%
-\begin{tabular}{lll}%
-options             & default & definition                         \\ 
-\midrule
-\TOline{towards}{towards}{$O$ is the centre and the sector starts from $A$ to $(OB)$}
-\TOline{rotate} {towards}{The sector starts from $A$ and the angle determines its amplitude. } 
-\TOline{R}{towards}{We give the radius and two angles} 
-\bottomrule
-\end{tabular} 
-
-\medskip
-You have to add, of course, all the styles of \TIKZ\ for tracings...
-
-\medskip   
-\begin{tabular}{lll}%
-\toprule
-options             & arguments & example                         \\ 
-\midrule
-\TOline{towards}{\parg{pt,pt}\parg{pt}}{\tkzcname{tkzClipSector(O,A)(B)}}
-\TOline{rotate} {\parg{pt,pt}\parg{angle}}{\tkzcname{tkzClipSector[rotate](O,A)(90)}} 
-\TOline{R}{\parg{pt,$r$}\parg{angle 1,angle 2}}{\tkzcname{tkzClipSector[R](O,2 cm)(30,90)}}
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{\tkzcname{tkzClipSector}} 
-\begin{tkzexample}[latex=7cm,small] 
-\begin{tikzpicture}[scale=1.5] 
-  \tkzDefPoint(0,0){O}
-  \tkzDefPoint(2,-1){A}
-  \tkzDefPoint(1,1){B} 
-  \tkzDrawSector[color=blue,dashed](O,A)(B)
-  \tkzDrawSector[color=blue](O,B)(A)
-  \tkzClipBB
-  \begin{scope}
-    \tkzClipSector(O,B)(A)
-    \draw[fill=gray!20] (-1,0) rectangle (3,3);
-  \end{scope}
-  \tkzDrawPoints(A,B,O)
-\end{tikzpicture} 
-\end{tkzexample}
-
-\endinput
-

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-show.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-show.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-show.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -163,49 +163,4 @@
 \end{tikzpicture} 
 \end{tkzexample} 
 
-%<---------------------------------------------------------------------->
-\section{Different points}
-%<---------------------------------------------------------------------->
-
-\subsection{\tkzcname{tkzDefEquiPoints}}
-This macro makes it possible to obtain two points on a straight line equidistant from a given point.
-
-\begin{NewMacroBox}{tkzDefEquiPoints}{\oarg{local options}\parg{pt1,pt2}}%
-\begin{tabular}{lll}%
-arguments &  default & definition \\
-\midrule
-\TAline{(pt1,pt2)}{no default}{unordered list of two items}
-\bottomrule
-\end{tabular}
-
-\medskip
-\begin{tabular}{lll}%
-\toprule  \\
-options             & default & definition  \\
-\midrule
-\TOline{dist} {2 cm} {half the distance between the two points}
-\TOline{from=pt} {no default} {reference point}
-\TOline{show} {false} {if true displays compass traces}
-\TOline{/compass/delta} {0} {compass trace size }
-
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Using \tkzcname{tkzDefEquiPoints} with options}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-  \tkzSetUpCompass[color=purple,line width=1pt]
-  \tkzDefPoint(0,1){A}
-  \tkzDefPoint(5,2){B}
-  \tkzDefPoint(3,4){C}
-  \tkzDefEquiPoints[from=C,dist=1,show,
-      /tkzcompass/delta=20](A,B)
-   \tkzGetPoints{E}{H}
-   \tkzDrawLines[color=blue](C,E C,H A,B)
-   \tkzDrawPoints[color=blue](A,B,C)
-   \tkzDrawPoints[color=red](E,H)
-   \tkzLabelPoints(E,H)
-   \tkzLabelPoints[color=blue](A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
 \endinput
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-styles.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-styles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-styles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,333 @@
+\section{Predefined styles}\label{custom}
+The way to proceed will depend on your use of the package. A method that seems to me to be correct is to use as much as possible predefined styles in order to separate the content from the form. This method will be the right one if you plan to create a document (like this documentation) with many figures. We will see how to define a global style for a document. We will see how to use a style locally.
+
+The file \tkzname{tkz-euclide.cfg} contains the predefined styles of the main objects. Among these the most important are points, lines, segments, circles, arcs and compass traces.
+ If you always use the same styles and if you create many figures then it is interesting to create your own styles . To do this you need to know what features you can modify. It will be necessary to know some notions of \TIKZ.
+ 
+ The predefined styles are global styles. They exist before the creation of the figures. It is better to avoid changing them between two figures. On the other hand these styles can be modified in a figure temporarily. There the styles are defined locally and do not influence the other figures.
+ 
+ For the document you are reading here is how I defined the different styles.
+
+\begin{tkzltxexample}[]
+  \tkzSetUpColors[background=white,text=black]  
+  \tkzSetUpPoint[size=2,color=teal]
+  \tkzSetUpLine[line width=.4pt,color=teal]
+  \tkzSetUpCompass[color=orange, line width=.4pt,delta=10]
+  \tkzSetUpArc[color=gray,line width=.4pt]
+  \tkzSetUpStyle[orange]{new}
+\end{tkzltxexample}
+
+The macro \tkzcname{tkzSetUpColors} allows you to set the background color as well as the text color. If you don't use it, the colors of your document will be used as well as the fonts. Let's see how to define the styles of the main objects.
+
+\section{Points style}
+This is how the points  are defined :
+\begin{tkzltxexample}[]
+\tikzset{point style/.style = {%
+       draw         = \tkz at euc@pointcolor,
+       inner sep    = 0pt,
+       shape        = \tkz at euc@pointshape,
+       minimum size = \tkz at euc@pointsize,
+       fill         = \tkz at euc@pointcolor}}  
+\end{tkzltxexample}
+
+It is of course possible to use \tkzcname{tikzset} but you can use a macro provided by the package. You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, \\ Let's look at this possibility.
+
+\subsubsection{Use of \tkzcname{tkzSetUpPoint}}
+
+\begin{NewMacroBox}{tkzSetUpPoint}{\oarg{local options}}%
+\begin{tabular}{lll}%
+options &  default & definition                 \\ 
+\midrule
+\TOline{color}{black}{point color} 
+\TOline{size}{3}{point size} 
+\TOline{fill}{black!50}{inside point color} 
+\TOline{shape}{circle}{point shape circle, cross or cross out} 
+\end{tabular}
+\end{NewMacroBox}
+
+
+
+\subsubsection{Global style or local style}
+First of all here is a figure created with the styles of my documentation, then the style of the points is modified within the environment \tkzNameEnv{tikzspicture}. 
+
+You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, If you place this macro in your preamble or before your first figure then the point style will be valid for all figures in your document. Il sera possible d'utiliser un autre style locallement en utilisant cette commande au sein d'un environnement \tkzNameEnv{tikzpicture}.\\ Let's look at this possibility.
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(A,B) 
+  \tkzLabelPoints[above right](C) 
+\end{tikzpicture}
+\end{tkzexample}
+
+The style of the points is modified locally in the second figure 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzSetUpPoint[size=4,color=red,fill=red!20]
+  \tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,B,C)
+  \tkzDrawPoint[shape=cross out,thick](D)
+  \tkzLabelPoints(A,B) 
+  \tkzLabelPoints[above right](C) 
+\end{tikzpicture}
+\end{tkzexample}
+
+The points get back the initial style. Point D has a new style limited by the environment \tkzNameEnv{scope}. It is also possible to use |{...}| orThe points get back the initial style. Point $D$ has a new style limited by the environment \tkzNameEnv{scope}. It is also possible to use |{...}| or |\begingoup  ... \endgroup|.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,B,C)
+  \begin{scope}
+    \tkzSetUpPoint[size=4,color=red,fill=red!20]
+    \tkzDrawPoint(D)
+  \end{scope}
+  \tkzLabelPoints(A,B) 
+  \tkzLabelPoints[above right](C) 
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Simple example with \tkzcname{tkzSetUpPoint}}
+
+\begin{tkzexample}[latex=5cm,small]
+\begin{tikzpicture}
+  \tkzSetUpPoint[shape = cross out,color=blue]
+  \tkzDefPoint(2,1){A}
+  \tkzDefPoint(4,0){B}
+  \tkzDrawLine(A,B)
+  \tkzDrawPoints(A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Use of \tkzcname{tkzSetUpPoint} inside a group}
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,2/4/B,4/0/C,3/2/D}
+  \tkzDrawSegments(A,B A,C A,D)
+  {\tkzSetUpPoint[shape=cross out,
+            fill= teal!50,
+            size=4,color=teal]
+  \tkzDrawPoints(A,B)}
+  \tkzSetUpPoint[fill= teal!50,size=4,
+               color=teal]
+   \tkzDrawPoints(C,D)
+  \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\section{Lines style}
+
+\subsubsection{Use of \tkzcname{tkzSetUpLine}} \label{tkzsetupline}
+It is a macro that allows you to define the style of all the lines.
+
+\begin{NewMacroBox}{tkzSetUpLine}{\oarg{local options}}%
+\begin{tabular}{lll}%
+options &  default & definition                 \\
+\midrule
+\TOline{color}{black}{colour of the construction lines}
+\TOline{line width}{0.4pt}{thickness of the construction lines}
+\TOline{style}{solid}{style of construction lines}
+\TOline{add}{.2 and .2}{changing the length of a line segment}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Change line width}
+\begin{tkzexample}[latex=8cm,small]
+\begin{tikzpicture}[scale=.75]
+\tkzSetUpLine[line width=1pt]
+\begin{scope}[rotate=-90]
+    \tkzDefPoints{0/6/A,10/0/B,10/6/C}
+    \tkzDefPointBy[projection = onto B--A](C)
+    \tkzGetPoint{H}
+    \tkzMarkRightAngle[size=.4,
+                       fill=teal!20](B,C,A)
+    \tkzMarkRightAngle[size=.4,
+                       fill=orange!20](B,H,C)
+    \tkzDrawPolygon(A,B,C)
+    \tkzDrawSegment[new](C,H)
+\end{scope}
+ \tkzLabelSegment[below](C,B){$a$}
+ \tkzLabelSegment[right](A,C){$b$}
+ \tkzLabelSegment[left](A,B){$c$}
+ \tkzLabelSegment[color=red](C,H){$h$}
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints[above left](H)
+ \tkzLabelPoints(B,C)
+ \tkzLabelPoints[above](A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Change style of line}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+\tikzset{line style/.style = {color = gray,
+                             style=dashed}}
+\tkzDefPoints{1/0/A,4/0/B,1/1/C,5/1/D}
+\tkzDefPoints{1/2/E,6/2/F,0/4/A',3/4/B'}
+\tkzCalcLength(C,D)
+\tkzGetLength{rCD}
+\tkzCalcLength(E,F)
+\tkzGetLength{rEF}
+\tkzInterCC[R](A',\rCD)(B',\rEF)
+\tkzGetPoints{I}{J}
+\tkzDrawLine(A',B')
+\tkzCompass(A',B')
+\tkzDrawSegments(A,B C,D E,F)
+\tkzDrawCircles[R](A',{\rCD} B',\rEF)
+\begin{scope}
+  \tkzSetUpLine[color=red]
+  \tkzDrawSegments(A',I B',I)
+\end{scope}
+\tkzDrawPoints(A,B,C,D,E,F,A',B',I,J)
+\tkzLabelPoints(A,B,C,D,E,F,A',B',I,J)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Example 3: extend lines}
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}[scale=.75]
+  \tkzSetUpLine[add=.5 and .5]
+  \tkzDefPoints{0/0/A,4/0/B,1/3/C}
+  \tkzDrawLines(A,B B,C A,C)
+  \tkzDrawPolygon[red,thick](A,B,C)
+  \tkzSetUpPoint[size=4,circle,color=red,fill=red!20]
+  \tkzDrawPoints(A,B,C)
+  \end{tikzpicture}
+\end{tkzexample}
+
+\section{Arc style}
+
+\begin{NewMacroBox}{tkzSetUpArc}{\oarg{local options}}%
+\begin{tabular}{lll}%
+options &  default & definition                 \\
+\midrule
+\TOline{color}{black}{colour of the  lines}
+\TOline{line width}{0.4pt}{thickness of the lines}
+\TOline{style}{solid}{style of construction lines}
+\end{tabular}
+\end{NewMacroBox}
+
+\begin{tkzexample}[latex=7cm,small]
+  \begin{tikzpicture}
+  \def\r{3} \def\angle{200}
+  \tkzSetUpArc[delta=5,color=purple,style=dashed]
+  \tkzSetUpLabel[font=\scriptsize,red]
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(\angle:\r){A}
+  \tkzInterCC(O,A)(A,O) \tkzGetPoints{C'}{C}
+  \tkzInterCC(O,A)(C,O) \tkzGetPoints{D'}{D}
+  \tkzInterCC(O,A)(D,O) \tkzGetPoints{X'}{X}
+  \tkzDrawCircle(O,A)
+  \tkzDrawArc(A,C')(C)
+  \tkzDrawArc(C,O)(D)
+  \tkzDrawArc(D,O)(X)
+  \tkzDrawLine[add=.1 and .1](A,X)
+  \tkzDrawPoints(O,A)
+  \tkzDrawPoints[new](C,C',D,X)
+  \tkzLabelPoints[below left](O,A)
+  \tkzLabelPoints[below](C,C')
+  \tkzLabelPoints[below right](X)
+  \tkzLabelPoints[above](D)
+  \end{tikzpicture}
+\end{tkzexample}
+
+\section{Compass style, configuration macro \tkzcname{tkzSetUpCompass}}
+The following macro will help to understand the construction of a figure by showing the compass traces necessary to obtain certain points. 
+
+\begin{NewMacroBox}{tkzSetUpCompass}{\oarg{local options}}%
+\begin{tabular}{lll}%
+options &  default & definition                 \\
+\midrule
+\TOline{color}{black}{colour of the construction lines}
+\TOline{line width}{0.4pt}{thickness of the construction lines}
+\TOline{style}{solid}{style of  lines : solid, dashed,dotted,...}
+\TOline{delta}{0}{changes the length of the arc }
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Use of \tkzcname{tkzSetUpCompass}}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+  \tkzSetUpCompass[color=red,delta=15]
+  \tkzDefPoint(1,1){A}
+  \tkzDefPoint(6,1){B}
+  \tkzInterCC[R](A,4)(B,4) \tkzGetPoints{C}{D}
+  \tkzCompass(A,C)
+  \tkzCompass(B,C)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,B,C)
+\end{tikzpicture} 
+\end{tkzexample}
+
+\subsubsection{Use of \tkzcname{tkzSetUpCompass} with \tkzcname{tkzShowLine}}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+\tkzSetUpStyle[bisector,size=2,gap=3]{showbi}
+\tkzSetUpCompass[color=teal,line width=.3 pt] 
+\tkzDefPoints{0/1/A, 8/3/B, 3/6/C} 
+\tkzDrawPolygon(A,B,C) 
+\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a} 
+\tkzDefLine[bisector](C,B,A) \tkzGetPoint{b} 
+\tkzShowLine[showbi](B,A,C) 
+\tkzShowLine[showbi](C,B,A) 
+\tkzInterLL(A,a)(B,b) \tkzGetPoint{I} 
+\tkzDefPointBy[projection= onto A--B](I)
+\tkzGetPoint{H} 
+\tkzDrawCircle[radius,new](I,H) 
+\tkzDrawSegments[new](I,H) 
+\tkzDrawLines[add=0 and .2,new](A,I B,I)
+\end{tikzpicture}
+\end{tkzexample} 
+
+
+
+
+
+\section{Label style}
+The macro \tkzcname{tkzSetUpLabel} is used to define the style of the point labels.
+\begin{NewMacroBox}{tkzSetUpStyle}{\oarg{local options}}%
+  The options are the same as those of \TIKZ
+\end{NewMacroBox}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.75]
+  \tkzSetUpLabel[font=\scriptsize,red]
+  \tkzSetUpStyle[line width=1pt,teal,<->]{XY}
+  \tkzInit[xmin=-3,xmax=3,ymin=-3,ymax=3]
+  \tkzDrawX[XY]
+  \tkzDrawY[XY]
+  \tkzDefPoints{1/0/A,0/1/B,-1/0/C,0/-1/D}
+  \tkzDrawPoints[teal,fill=teal!30,size=6](A,...,D)
+  \tkzLabelPoint[above right](A){$(1,0)$}
+  \tkzLabelPoint[above right](B){$(0,1)$}
+  \tkzLabelPoint[above left](C){$(-1,0)$}
+  \tkzLabelPoint[below left](D){$(0,-1)$}
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\section{Own style}
+You can set  your own style with \tkzcname{tkzSetUpStyle}
+
+\begin{NewMacroBox}{tkzSetUpStyle}{\oarg{local options}}%
+  The options are the same as those of \TIKZ
+\end{NewMacroBox}
+
+\begin{tkzexample}[latex=2cm,small]
+\begin{tikzpicture}
+  \tkzSetUpStyle[color=blue!20!black,fill=blue!20]{mystyle}
+  \tkzDefPoint(0,0){O}
+  \tkzDefPoint(0,1){A}
+  \tkzDrawPoints(O) % general style
+  \tkzDrawPoints[mystyle,size=4](A) % my style
+  \tkzLabelPoints(O,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-styles.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -5,6 +5,7 @@
 \begin{NewMacroBox}{tkzDuplicateSegment}{\parg{pt1,pt2}\parg{pt3,pt4}\marg{pt5}}%
 This involves creating a segment on a given half-line of the same length as a given segment . It is in fact the definition of a point.
 \tkzcname{tkzDuplicateSegment} is the new name of \tkzcname{tkzDuplicateLen}.
+
 \medskip  
 \begin{tabular}{lll}%
 \toprule
@@ -20,24 +21,21 @@
 \end{NewMacroBox}
 
 \begin{tkzexample}[latex=6cm,small]
-   \begin{tikzpicture}
-   \tkzDefPoint(0,0){A}
-   \tkzDefPoint(2,-3){B}
-   \tkzDefPoint(2,5){C} 
-   \tkzDrawSegments[red](A,B A,C)
-   \tkzDuplicateSegment(A,B)(A,C)  
-   \tkzGetPoint{D}
-   \tkzDrawSegment[green](A,D)
-   \tkzDrawPoints[color=red](A,B,C,D) 
-   \tkzLabelPoints[above right=3pt](A,B,C,D)
- \end{tikzpicture} 
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/0/A,2/-3/B,2/5/C}
+ \tkzDuplicateSegment(A,B)(A,C)  
+ \tkzGetPoint{D}
+ \tkzDrawSegments[new](A,B A,C)
+ \tkzDrawSegment[teal](A,D)
+ \tkzDrawPoints[new](A,B,C,D) 
+ \tkzLabelPoints[above right=3pt](A,B,C,D)
+\end{tikzpicture} 
 \end{tkzexample} 
 
 \subsubsection{Proportion of gold with \tkzcname{tkzDuplicateSegment}} 
 \begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[rotate=-90,scale=.75]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(10,0){B}
+\begin{tikzpicture}[rotate=-90,scale=.4]
+ \tkzDefPoints{0/0/A,10/0/B}
  \tkzDefMidPoint(A,B)   
  \tkzGetPoint{I}
  \tkzDefPointWith[orthogonal,K=-.75](B,A)
@@ -49,11 +47,36 @@
  \tkzDrawArc[orange,delta=10](A,M)(E)
  \tkzDrawLines(A,B B,C A,D)
  \tkzDrawArc[orange,delta=10](B,D)(I)
- \tkzDrawPoints(A,B,D,C,M,I,N)
- \tkzLabelPoints(A,B,D,C,M,I,N)
+ \tkzDrawPoints(A,B,D,C,M,I)
+ \tkzLabelPoints(A,B,D,C,M,I)
 \end{tikzpicture}
 \end{tkzexample}
 
+\subsubsection{Golden triangle or sublime triangle} 
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75] 
+  \tkzDefPoints{0/0/A,5/0/C,0/5/B} 
+  \tkzDefMidPoint(A,C)\tkzGetPoint{H} 
+  \tkzDuplicateSegment(H,B)(H,A)\tkzGetPoint{D} 
+  \tkzDuplicateSegment(A,D)(A,B)\tkzGetPoint{E} 
+  \tkzDuplicateSegment(A,D)(B,A)\tkzGetPoint{G} 
+  \tkzInterCC(A,C)(B,G)\tkzGetSecondPoint{F}
+  \tkzDrawLine(A,C)
+  \tkzDrawArc(A,C)(B) 
+  \begin{scope}[arc style/.style={color=gray,%
+                               style=dashed}]
+    \tkzDrawArc(H,B)(D) 
+    \tkzDrawArc(A,D)(B) 
+    \tkzDrawArc(B,G)(F) 
+  \end{scope}
+  \tkzDrawSegment[dashed](H,B) 
+  \tkzCompass(B,F) 
+  \tkzDrawPolygon[new](A,B,F)
+  \tkzDrawPoints(A,...,H)
+  \tkzLabelPoints(A,...,H)
+\end{tikzpicture}
+\end{tkzexample}
+
 \subsection{Segment length \tkzcname{tkzCalcLength}}
 There's an option in \TIKZ\  named \tkzname{veclen}. This option
  is used to calculate AB if A and B are two points.
@@ -60,8 +83,9 @@
 
 The only problem for me is that the version of \TIKZ\ is not accurate enough in some cases. My version uses the \tkzNamePack{xfp} package and is slower, but more accurate.
 
-\begin{NewMacroBox}{tkzCalcLength}{\oarg{local options}\parg{pt1,pt2}\marg{name of macro}}%
-The result is stored in a macro.
+\begin{NewMacroBox}{tkzCalcLength}{\oarg{local options}\parg{pt1,pt2}}%
+You can store the result with the macro \tkzcname{tkzGetLength} for example \tkzcname{tkzGetLength\{dAB\}} \\
+defines the macro \tkzcname{dAB}.
 
 \medskip
 \begin{tabular}{lll}%
@@ -68,7 +92,7 @@
 \toprule
 arguments    & example & explication       \\
 \midrule
-\TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzCalcLength}(A,B)\{dAB\}}{\tkzcname{dAB} gives $AB$ in pt}
+\TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzCalcLength}[pt](A,B)}{\tkzcname{dAB} gives $AB$ in pt}
 \bottomrule
 \end{tabular}
 
@@ -80,7 +104,7 @@
 \toprule
  options    & default & example       \\
 \midrule
-\TOline{cm}  {false}{\tkzcname{tkzCalcLength}[cm](A,B)\{dAB\} \tkzcname{dAB} gives $AB$ in cm}
+\TOline{cm}  {true}{\tkzcname{tkzCalcLength}(A,B) After \tkzcname{tkzGetLength\{dAB\}} \tkzcname{dAB} gives $AB$ in cm}
 \end{tabular}
 \end{NewMacroBox}
 
@@ -89,13 +113,16 @@
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=1]
   \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+  \tkzCalcLength(A,B)\tkzGetLength{dAB}
+  \tkzDefLine[perpendicular=through A](A,B)
+  \tkzGetPoint{D}
+  \tkzDefPointWith[orthogonal,K=-1](B,A)    
+    \tkzGetPoint{F}
+  \tkzGetPoint{C}
   \tkzDrawLine[add= .6 and .2](A,B)
-  \tkzCalcLength[cm](A,B)\tkzGetLength{dAB}
-  \tkzDefLine[perpendicular=through A](A,B)
-  \tkzDrawLine(A,tkzPointResult) \tkzGetPoint{D}
+  \tkzDrawLine(A,D) 
   \tkzShowLine[orthogonal=through A,gap=2](A,B)
   \tkzMarkRightAngle(B,A,D)
-  \tkzVecKOrth[-1](B,A)\tkzGetPoint{C}
   \tkzCompasss(A,D D,C)
   \tkzDrawArc[R](B,\dAB)(80,110)
   \tkzDrawPoints(A,B,C,D)
@@ -105,52 +132,61 @@
 \end{tkzexample}
 
 
-\subsection{Transformation from pt to cm}
+\subsubsection{Example}
+The macro \tkzcname{tkzDefCircle[radius](A,B)} defines the radius that we retrieve with \tkzcname{tkzGetLength},  this result is in \tkzname{cm}.
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,-4){B}
+ \tkzDefCircle[through](A,B)
+ \tkzGetLength{rABcm}
+ \tkzDrawCircle(A,B)
+ \tkzDrawPoints(A,B)
+ \tkzLabelPoints(A,B)
+ \tkzDrawSegment[dashed](A,B)
+ \tkzLabelSegment(A,B){$\pgfmathprintnumber{\rABcm}$}
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Transformation from pt to cm or cm to pt}
 Not sure if this is necessary and it is only a division by 28.45274 and a multiplication by the same number. The macros are:
 
 \begin{NewMacroBox}{tkzpttocm}{\parg{nombre}\marg{name of macro}}%
+The result is stored in a macro.
+
+\medskip
 \begin{tabular}{lll}%
-arguments    & example & explication     \\
+\toprule
+arguments             & example & explication                         \\
 \midrule
-\TAline{(number){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} gives a number of \tkzname{cm}}
+\TAline{(nombre){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} donne un nombre de tkzname{cm}}
 \bottomrule
 \end{tabular}
 
 \medskip
-You'll have to use \tkzcname{len} along with \tkzname{cm}. The result is stored in a macro.
+You'll have to use \tkzcname{len} along with \tkzname{cm}.
 \end{NewMacroBox}
 
-\subsection{Transformation from cm to pt}
+\subsection{Change of unit} 
 \begin{NewMacroBox}{tkzcmtopt}{\parg{nombre}\marg{name of macro}}%
-\begin{tabular}{lll}%
+The result is stored in a macro.
+
+\medskip
+\begin{tabular}{lll}
+\toprule
 arguments             & example & explication                         \\
 \midrule
-\TAline{(nombre)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} length in \tkzname{pt}}
+\TAline{(nombre)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} longueur en \tkzname{pts}}
 \bottomrule
 \end{tabular}
 
 \medskip
-The result is stored in a macro. The result can be used with \tkzcname{len} \tkzname{pt}. 
+\noindent{The result can be used with \tkzcname{len}\tkzname{pt}}
 \end{NewMacroBox}
 
-\subsubsection{Example}
-The macro \tkzcname{tkzDefCircle[radius](A,B)} defines the radius that we retrieve with \tkzcname{tkzGetLength}, but this result is in \tkzname{pt}.
 
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(3,-4){B}
- \tkzDefCircle[through](A,B)
- \tkzGetLength{rABpt}
- \tkzpttocm(\rABpt){rABcm}
- \tkzDrawCircle(A,B)
- \tkzDrawPoints(A,B)
- \tkzLabelPoints(A,B)
- \tkzDrawSegment[dashed](A,B)
- \tkzLabelSegment(A,B){$\pgfmathprintnumber{\rABcm}$}
-\end{tikzpicture}
-\end{tkzexample}
-
 \subsection{Get point coordinates}
 %<--------------------------------------------------------------------------–>
 %                    Coordonnées d'un point 
@@ -176,7 +212,7 @@
 \begin{tikzpicture}
  \tkzInit[xmax=5,ymax=3]
  \tkzGrid[sub,orange]
- \tkzAxeXY
+ \tkzDrawX \tkzDrawY
  \tkzDefPoint(1,0){A}
  \tkzDefPoint(4,2){B}
  \tkzGetPointCoord(A){a}
@@ -201,5 +237,4 @@
   \tkzDrawSegment[->,purple](b,c)
 \end{tikzpicture}
 \end{tkzexample}
-
-\endinput  
\ No newline at end of file
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-triangles.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-triangles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-triangles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -7,12 +7,13 @@
  \begin{itemize}
 \item  \tkzname{two angles}  determines a triangle with two angles;
 \item  \tkzname{equilateral}  determines an equilateral triangle;
+\item  \tkzname{isosceles right}  determines an isoxsceles right triangle;
 \item \tkzname{half} determines a right-angled triangle such that the ratio of the measurements of the two adjacent sides to the right angle is equal to $2$;
 \item \tkzname{pythagore} determines a right-angled triangle whose side measurements are proportional to 3, 4 and 5;
 \item \tkzname{school} determines a right-angled triangle whose angles are 30, 60 and 90 degrees;
 \item \tkzname{golden} determines a right-angled triangle such that the ratio of the measurements on the two adjacent sides to the right angle is equal to $\Phi=1.618034$, I chose "golden triangle" as the denomination because it comes from the golden rectangle and I kept the denomination "gold triangle" or "Euclid's triangle" for the isosceles triangle whose angles at the base are 72 degrees;
 
-\item  \tkzname{euclide} or \tkzname{gold} for the gold triangle;
+\item  \tkzname{euclid} or \tkzname{gold} for the gold triangle; in the previous version the option was "euclide" with an "e".
 
 \item \tkzname{cheops} determines a third point such that the triangle is isosceles with side measurements proportional to $2$, $\Phi$ and $\Phi$.
 \end{itemize}
@@ -26,13 +27,14 @@
 options             & default & definition                        \\
 \midrule
 \TOline{two angles= \#1 and \#2}{no defaut}{triangle knowing two angles}
-\TOline{equilateral} {no defaut}{equilateral triangle }
-\TOline{pythagore}{no defaut}{proportional to the pythagorean triangle 3-4-5}
-\TOline{school} {no defaut}{angles of 30, 60 and 90 degrees }
-\TOline{gold}{no defaut}{angles of 72, 72 and 36 degrees, $A$ is the apex}
-\TOline{euclide} {no defaut}{same as above but $[AB]$ is the base}
-\TOline{golden} {no defaut}{B rectangle and $AB/AC = \Phi$}
-\TOline{cheops} {no defaut}{AC=BC, AC and BC are proportional to $2$ and $\Phi$.}
+\TOline{equilateral} {equilateral}{equilateral triangle }
+\TOline{isosceles right} {equilateral}{isosceles right triangle }
+\TOline{pythagore}{equilateral}{proportional to the pythagorean triangle 3-4-5}
+\TOline{school} {equilateral}{angles of 30, 60 and 90 degrees }
+\TOline{gold}{equilateral}{angles of 72, 72 and 36 degrees, $A$ is the apex}
+\TOline{euclid} {equilateral}{same as above but $[AB]$ is the base}
+\TOline{golden} {equilateral}{B rectangle and $AB/AC = \Phi$}
+\TOline{cheops} {equilateral}{AC=BC, AC and BC are proportional to $2$ and $\Phi$.}
 \bottomrule
 \end{tabular}
 
@@ -40,130 +42,134 @@
 \tkzcname{tkzGetPoint} allows you to store the point otherwise \tkzname{tkzPointResult} allows for immediate use.
 \end{NewMacroBox}
 
-\subsubsection{Option \tkzname{golden}}
+\subsubsection{Option \tkzname{two angles}}
 \begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=.8]
-\tkzInit[xmax=5,ymax=3] \tkzClip[space=.5]
-  \tkzDefPoint(0,0){A}      \tkzDefPoint(4,0){B}
-  \tkzDefTriangle[golden](A,B)\tkzGetPoint{C}
-  \tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C)
-  \tkzLabelPoints(A,B) \tkzDrawBisector(A,C,B)
-  \tkzLabelPoints[above](C)
+\begin{tikzpicture}
+\tkzDefPoint(0,0){A} 
+\tkzDefPoint(5,0){B} 
+\tkzDefTriangle[two angles = 50 and 70](A,B)
+\tkzGetPoint{C} 
+\tkzDrawSegment(A,B) 
+\tkzDrawPoints(A,B) 
+\tkzLabelPoints(A,B) 
+\tkzDrawSegments[new](A,C B,C) 
+\tkzDrawPoints[new](C)
+\tkzLabelPoints[above,new](C)
+\tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$}
+\tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$}
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{equilateral}}
-\begin{tkzexample}[latex=7 cm,small]
+\subsubsection{Option \tkzname{school}}
+The angles are 30, 60 and 90 degrees.
+
+\begin{tkzexample}[latex=6 cm,small]
 \begin{tikzpicture}
-  \tkzDefPoint(0,0){A}
-  \tkzDefPoint(4,0){B}
-  \tkzDefTriangle[equilateral](A,B)
+  \tkzDefPoints{0/0/A,4/0/B}
+  \tkzDefTriangle[school](A,B)  
   \tkzGetPoint{C}
-  \tkzDrawPolygon(A,B,C)
-  \tkzDefTriangle[equilateral](B,A)
-  \tkzGetPoint{D}
-  \tkzDrawPolygon(B,A,D)
-  \tkzDrawPoints(A,B,C,D)
-  \tkzLabelPoints(A,B,C,D)
+  \tkzMarkRightAngles(C,B,A)
+  \tkzLabelAngle[pos=0.8](B,A,C){$30^\circ$}
+  \tkzLabelAngle[pos=0.8](C,B,A){$90^\circ$}
+  \tkzLabelAngle[pos=0.8](A,C,B){$60^\circ$} 
+  \tkzDrawSegments(A,B)
+  \tkzDrawSegments[new](A,C B,C)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{gold} or \tkzname{euclide} }
-\begin{tkzexample}[latex=7 cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
- \tkzDefTriangle[euclide](A,B)\tkzGetPoint{C}
- \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B)
- \tkzLabelPoints[above](C)
- \tkzDrawBisector(A,C,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-\newpage
-\subsection{Drawing of triangles}
- \begin{NewMacroBox}{tkzDrawTriangle}{\oarg{local options}\parg{A,B}}%
-Macro similar to the previous macro but the sides are drawn.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options             & default & definition                        \\
-\midrule
-\TOline{two angles= \#1 and \#2}{equilateral}{triangle knowing two angles}
-\TOline{equilateral} {equilateral}{equilateral triangle }
-\TOline{pythagore}{equilateral}{proportional to the pythagorean triangle 3-4-5}
-\TOline{school} {equilateral}{the angles are 30, 60 and 90 degrees }
-\TOline{gold}{equilateral}{the angles are 72, 72 and 36 degrees, $A$ is the vertex }
-\TOline{euclide} {equilateral}{identical to the previous one but $[AB]$ is the base}
-\TOline{golden} {equilateral}{B rectangle and $AB/AC = \Phi$}
-\TOline{cheops} {equilateral}{isosceles in C and $AC/AB = \frac{\Phi}{2}$}
-\bottomrule
- \end{tabular}
-
-\medskip
-In all its definitions, the dimensions of the triangle depend on the two starting points.
-\end{NewMacroBox}
-
 \subsubsection{Option \tkzname{pythagore}}
 This triangle has sides whose lengths are proportional to 3, 4 and 5.
 
 \begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(4,0){B}
- \tkzDrawTriangle[pythagore,fill=blue!30](A,B)
- \tkzMarkRightAngles(A,B,tkzPointResult)
+\begin{tikzpicture} 
+  \tkzDefPoints{0/0/A,4/0/B} 
+  \tkzDefTriangle[pythagore](A,B) 
+  \tkzGetPoint{C} 
+  \tkzDrawSegments(A,B)
+  \tkzDrawSegments[new](A,C B,C)
+  \tkzMarkRightAngles(A,B,C)
+  \tkzLabelPoint[above,new](C){$C$} 
+  \tkzDrawPoints[new](C) 
+  \tkzDrawPoints(A,B) 
+  \tkzLabelPoints(A,B) 
 \end{tikzpicture}
 \end{tkzexample}
 
 
-\subsubsection{Option \tkzname{school}}
-The angles are 30, 60 and 90 degrees.
-
+\subsubsection{Option \tkzname{golden}}
 \begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}
-  \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
-  \tkzDrawTriangle[school,fill=red!30](A,B)
-  \tkzMarkRightAngles(tkzPointResult,B,A)  
+\begin{tikzpicture}[scale=.8]
+\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B} 
+\tkzDefTriangle[golden](A,B)\tkzGetPoint{C} 
+\tkzDefSpcTriangle[in,name=M](A,B,C){a,b,c}
+\tkzDrawPolygon(A,B,C) 
+\tkzDrawPoints(A,B) 
+\tkzDrawSegment(C,Mc) 
+\tkzDrawPoints[new](C)
+\tkzLabelPoints(A,B) 
+\tkzLabelPoints[above,new](C)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{golden}}
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=1]
-	\tkzDefPoint(0,-10){M}
-	\tkzDefPoint(3,-10){N}
-	\tkzDrawTriangle[golden,color=brown](M,N)
+\subsubsection{Option \tkzname{equilateral} and \tkzname{isosceles right}}
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}
+  \tkzDefPoint(0,0){A}
+  \tkzDefPoint(4,0){B}
+  \tkzDefTriangle[equilateral](A,B)
+  \tkzGetPoint{C}
+  \tkzDefTriangle[isosceles right](A,B)
+  \tkzGetPoint{E}
+  \tkzDrawPolygons(A,B,C A,B,E)
+  \tkzDefTriangle[equilateral](B,A)
+  \tkzGetPoint{D}
+  \tkzDrawPolygon(B,A,D)
+    \tkzMarkRightAngles(B,E,A)
+  \tkzDrawPoints(A,B,C,D,E)
+  \tkzLabelPoints(A,B,C,D,E)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{gold}}
-\begin{tkzexample}[latex=6 cm,small]
-\begin{tikzpicture}[scale=1]
- 	\tkzDefPoint(5,-5){I}
- 	\tkzDefPoint(8,-5){J}
- 	\tkzDrawTriangle[gold,color=blue!50](I,J) 
+\subsubsection{Option \tkzname{gold} }
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}
+  \tkzDefPoints{0/0/A,4/0/B} 
+  \tkzDefTriangle[gold](A,B)
+  \tkzGetPoint{C}
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPoints(A,B,C)
+  \tkzLabelPoints(A,B)
+  \tkzLabelPoints[above](C)
+ \tkzLabelAngle[pos=0.8](B,A,C){$36^\circ$}
+ \tkzLabelAngle[pos=0.8](C,B,A){$72^\circ$}
+ \tkzLabelAngle[pos=0.8](A,C,B){$72^\circ$}
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{euclide}}
-\begin{tkzexample}[latex=6 cm,small]
-  \begin{tikzpicture}[scale=1]
-    \tkzDefPoint(10,-5){K}
-    \tkzDefPoint(13,-5){L}
-    \tkzDrawTriangle[euclide,color=blue,fill=blue!10](K,L)
-  \end{tikzpicture}
+
+\subsubsection{Option \tkzname{euclid}}
+\tkzimp{Euclid} and \tkzimp{gold} are identical but the segment AB is a base in one and a side in the other. 
+
+\begin{tkzexample}[latex=7 cm,small]
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDefTriangle[euclid](A,B)\tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above](C)
+ \tkzLabelAngle[pos=0.8](B,A,C){$72^\circ$}
+ \tkzLabelAngle[pos=0.8](C,B,A){$72^\circ$}
+ \tkzLabelAngle[pos=0.8](A,C,B){$36^\circ$}
+\end{tikzpicture}
 \end{tkzexample}
 
-
 \section{Specific triangles with \tkzcname{tkzDefSpcTriangle}}
 
 The centers of some triangles have been defined in the "points" section, here it is a question of determining the three vertices of specific triangles.
 
-\begin{NewMacroBox}{tkzDefSpcTriangle}{\oarg{local options}\parg{A,B,C}}
-The order of the points is important!
+\begin{NewMacroBox}{tkzDefSpcTriangle}{\oarg{local options}\parg{p1,p2,p3}\marg{r1,r2,r3}}
+The order of the points is important! p1p2p3 defines a triangle then the result is a triangle whose vertices have as reference a combination with \tkzname{name} and r1,r2, r3. If \tkzname{name} is empty then the references are  r1,r2 and r3.
 
 
 \medskip
@@ -171,25 +177,36 @@
 \toprule
 options             & default & definition                        \\
 \midrule
-\TOline{in or incentral}{centroid}{two-angled triangle}
-\TOline{ex or excentral} {centroid}{equilateral triangle }
-\TOline{extouch}{centroid}{proportional to the pythagorean triangle 3-4-5}
-\TOline{intouch or contact} {centroid}{ 30, 60 and 90 degree angles }
-\TOline{centroid or medial}{centroid}{ angles of 72, 72 and 36 degrees, $A$ is the vertex }
-\TOline{orthic} {centroid}{same as above but $[AB]$ is the base}
-\TOline{feuerbach} {centroid}{B rectangle and $AB/AC = \Phi$}
-\TOline{euler} {centroid}{AC=BC, AC and BC are proportional to $2$ and $\Phi$.}
-\TOline{tangential} {centroid}{AC=BC, AC and BC are proportional to $2$ and $\Phi$.}
-\TOline{name} {no defaut}{AC=BC, AC and BC are proportional to $2$ and $\Phi$.}
+\TOline{orthic} {centroid}{determined by endpoints of the altitudes ...}
+\TOline{centroid or medial}{centroid}{intersection of the triangle's three triangle medians}
+\TOline{in or incentral}{centroid}{determined with the angle bisectors}
+\TOline{ex or excentral} {centroid}{determined with the excenters}
+\TOline{extouch}{centroid}{formed by the points of tangency  with the excircles}
+\TOline{intouch or contact} {centroid}{formed by the points of tangency of the incircle}
+\TOline{} {}{each of the vertices}
+\TOline{euler} {centroid}{formed by Euler points on the  nine-point circle}
+\TOline{symmedial} {centroid}{intersection points of the symmedians}
+\TOline{tangential}{centroid}{formed by the lines tangent to the circumcircle}
+\TOline{feuerbach} {centroid}{formed by the points of tangency of the nine-point ...}
+\TOline{} {} {circle with the excircles}
+\TOline{name} {empty}{used to name the vertices}
 \midrule
 \end{tabular}
 
-\medskip
-\tkzcname{tkzGetPoint} allows you to store the point otherwise \tkzname{tkzPointResult} allows for immediate use.
 \end{NewMacroBox}
 
-\subsubsection{Option \tkzname{medial} or \tkzname{centroid} }
-The geometric centroid  of the polygon vertices of a triangle is the point $G$ (sometimes also denoted $M$) which is also the intersection of the triangle's three triangle medians. The point is therefore sometimes called the median point. The centroid is always in the interior of the triangle.\\
+\subsection{How to name the vertices}
+
+With \tkzcname{tkzDefSpcTriangle[medial,name=M](A,B,C)\{\_A,\_B,\_C\}} you get three vertices named $M_A$, $M_B$ and $M_C$.
+
+With \tkzcname{tkzDefSpcTriangle[medial](A,B,C)\{a,b,c\}} you get three vertices named and labeled $a$, $b$ and $c$.
+
+Possible \tkzcname{tkzDefSpcTriangle[medial,name=M\_](A,B,C)\{A,B,C\}} you get three vertices named $M_A$, $M_B$ and $M_C$.
+
+\subsection{Option \tkzname{medial} or \tkzname{centroid} }
+The geometric centroid  of the polygon vertices of a triangle is the point $G$ (sometimes also denoted $M$) which is also the intersection of the triangle's three triangle medians. The point is therefore sometimes called the median point. The centroid is always in the interior of the triangle.
+\\
+
 \href{http://mathworld.wolfram.com/TriangleCentroid.html}{Weisstein, Eric W. "Centroid triangle" From MathWorld--A Wolfram Web Resource.}
 
 In the following example, we obtain the Euler circle which passes through the previously defined points.
@@ -198,24 +215,25 @@
 \begin{tikzpicture}[rotate=90,scale=.75]
  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
  \tkzDefTriangleCenter[centroid](A,B,C)
-        \tkzGetPoint{M}
+ \tkzGetPoint{M}
  \tkzDefSpcTriangle[medial,name=M](A,B,C){_A,_B,_C}
- \tkzDrawPolygon[color=blue](A,B,C)
- \tkzDrawSegments[dashed,red](A,M_A B,M_B C,M_C)
- \tkzDrawPolygon[color=red](M_A,M_B,M_C)
- \tkzDrawPoints(A,B,C,M)
- \tkzDrawPoints[red](M_A,M_B,M_C)
-\tkzAutoLabelPoints[center=M,font=\scriptsize]%
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawSegments[dashed,new](A,M_A B,M_B C,M_C)
+ \tkzDrawPolygon[new](M_A,M_B,M_C)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[new](M,M_A,M_B,M_C)
+ \tkzAutoLabelPoints[center=M,font=\scriptsize]%
 (A,B,C,M_A,M_B,M_C)
  \tkzLabelPoints[font=\scriptsize](M)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{in} or \tkzname{incentral} }
+\subsection{Option \tkzname{in} or \tkzname{incentral} }
 
 The incentral triangle is the triangle whose vertices are determined by
 the intersections of the reference triangle’s angle bisectors with the
-respective opposite sides.\\
+respective opposite sides.
+\\
 \href{http://mathworld.wolfram.com/ContactTriangle.html}{Weisstein, Eric W. "Incentral triangle" From MathWorld--A Wolfram Web Resource.}
 
 
@@ -224,19 +242,19 @@
   \tkzDefPoints{ 0/0/A,5/0/B,1/3/C}
   \tkzDefSpcTriangle[in,name=I](A,B,C){_a,_b,_c}
   \tkzInCenter(A,B,C)\tkzGetPoint{I}
-  \tkzDrawPolygon[red](A,B,C)
-  \tkzDrawPolygon[blue](I_a,I_b,I_c)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPolygon[new](I_a,I_b,I_c)
   \tkzDrawPoints(A,B,C,I,I_a,I_b,I_c)
   \tkzDrawCircle[in](A,B,C)
-  \tkzDrawSegments[dashed](A,I_a B,I_b C,I_c)
- \tkzAutoLabelPoints[center=I,
-  blue,font=\scriptsize](I_a,I_b,I_c)
- \tkzAutoLabelPoints[center=I,red,
-  font=\scriptsize](A,B,C,I_a,I_b,I_c)
+  \tkzDrawSegments[dashed,new](A,I_a B,I_b C,I_c)
+  \tkzAutoLabelPoints[center=I,%
+  new,font=\scriptsize](I_a,I_b,I_c)
+  \tkzAutoLabelPoints[center=I,
+    font=\scriptsize](A,B,C)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{ex} or \tkzname{excentral} }
+\subsection{Option \tkzname{ex} or \tkzname{excentral} }
 
 The excentral triangle of a triangle $ABC$ is the triangle $J_aJ_bJ_c$ with vertices corresponding to the excenters of $ABC$.
 
@@ -245,20 +263,20 @@
  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
  \tkzDefSpcTriangle[excentral,name=J](A,B,C){_a,_b,_c}
  \tkzDefSpcTriangle[extouch,name=T](A,B,C){_a,_b,_c}
- \tkzDrawPolygon[blue](A,B,C)
- \tkzDrawPolygon[red](J_a,J_b,J_c)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[new](J_a,J_b,J_c)
+ \tkzClipBB
  \tkzDrawPoints(A,B,C)
- \tkzDrawPoints[red](J_a,J_b,J_c)
+ \tkzDrawPoints[new](J_a,J_b,J_c)
  \tkzLabelPoints(A,B,C)
- \tkzLabelPoints[red](J_b,J_c)
- \tkzLabelPoints[red,above](J_a)
- \tkzClipBB \tkzShowBB 
+ \tkzLabelPoints[new](J_b,J_c)
+ \tkzLabelPoints[new,above](J_a)
  \tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c) 
 \end{tikzpicture}
 \end{tkzexample}
 
 
-\subsubsection{Option \tkzname{intouch}}
+\subsection{Option \tkzname{intouch} or \tkzname{contact}}
 The contact triangle of a triangle $ABC$, also called the intouch triangle, is the triangle  formed by the points of tangency of the incircle of $ABC$ with $ABC$.\\
 \href{http://mathworld.wolfram.com/ContactTriangle.html}{Weisstein, Eric W. "Contact triangle" From MathWorld--A Wolfram Web Resource.}
 
@@ -265,13 +283,13 @@
 We obtain the intersections of the bisectors with the sides.
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=.75]
- \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}					 
+ \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}          
  \tkzDefSpcTriangle[intouch,name=X](A,B,C){_a,_b,_c}
  \tkzInCenter(A,B,C)\tkzGetPoint{I}
- \tkzDrawPolygon[red](A,B,C)
- \tkzDrawPolygon[blue](X_a,X_b,X_c)
- \tkzDrawPoints[red](A,B,C)
- \tkzDrawPoints[blue](X_a,X_b,X_c)
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPolygon[new](X_a,X_b,X_c)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[new](X_a,X_b,X_c)
  \tkzDrawCircle[in](A,B,C)
  \tkzAutoLabelPoints[center=I,blue,font=\scriptsize]%
 (X_a,X_b,X_c)
@@ -280,7 +298,7 @@
 \end{tikzpicture} 
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{extouch}}
+\subsection{Option \tkzname{extouch}}
 The extouch triangle  $T_aT_bT_c$ is the triangle formed by the points of tangency of a triangle $ABC$ with its excircles $J_a$, $J_b$, and $J_c$. The points  $T_a$, $T_b$, and $T_c$ can also be constructed as the points which bisect the perimeter of $A_1A_2A_3$ starting at $A$, $B$, and $C$.\\
 \href{http://mathworld.wolfram.com/ExtouchTriangle.html}{Weisstein, Eric W. "Extouch triangle" From MathWorld--A Wolfram Web Resource.}
 
@@ -297,18 +315,18 @@
 \tkzGetPoint{N_a}
 \tkzDefTriangleCenter[centroid](A,B,C)
 \tkzGetPoint{G}
-\tkzDrawPoints[blue](J_a,J_b,J_c)
+\tkzDrawPoints[new](J_a,J_b,J_c)
 \tkzClipBB \tkzShowBB
 \tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
 \tkzDrawLines[add=1 and 1](A,B B,C C,A)
-\tkzDrawSegments[gray](A,T_a B,T_b C,T_c)
-\tkzDrawSegments[gray](J_a,T_a J_b,T_b J_c,T_c)
-\tkzDrawPolygon[blue](A,B,C)
-\tkzDrawPolygon[red](T_a,T_b,T_c)
+\tkzDrawSegments[new](A,T_a B,T_b C,T_c)
+\tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPolygon[new](T_a,T_b,T_c)
 \tkzDrawPoints(A,B,C,N_a)
 \tkzLabelPoints(N_a)
-\tkzAutoLabelPoints[center=Na,blue](A,B,C)
-\tkzAutoLabelPoints[center=G,red,
+\tkzAutoLabelPoints[center=N_a](A,B,C)
+\tkzAutoLabelPoints[center=G,new,
                          dist=.4](T_a,T_b,T_c)
 \tkzMarkRightAngles[fill=gray!15](J_a,T_a,B
  J_b,T_b,C J_c,T_c,A)
@@ -315,15 +333,44 @@
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option \tkzname{feuerbach}}
+\subsection{Option \tkzname{orthic}}
+
+Given a triangle $ABC$, the triangle $H_AH_BH_C$ whose vertices are endpoints of the altitudes from each of the vertices of ABC is called the orthic triangle, or sometimes the altitude triangle. The three lines $AH_A$, $BH_B$, and $CH_C$ are concurrent at the orthocenter H of ABC.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+\tkzDefPoints{1/5/A,0/0/B,7/0/C}
+ \tkzDefSpcTriangle[orthic](A,B,C){H_A,H_B,H_C}
+ \tkzDefTriangleCenter[ortho](B,C,A)
+ \tkzGetPoint{H}
+ \tkzDefPointWith[orthogonal,normed](H_A,B)
+ \tkzGetPoint{a}
+ \tkzDrawSegments[new](A,H_A B,H_B C,H_C)   
+ \tkzMarkRightAngles[fill=gray!20,
+         opacity=.5](A,H_A,C B,H_B,A C,H_C,A)
+ \tkzDrawPolygon[fill=teal!20,opacity=.3](A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzDrawPoints[new](H_A,H_B,H_C)
+ \tkzDrawPolygon[new,fill=orange!20,
+                opacity=.3](H_A,H_B,H_C)
+ \tkzDrawPoint(a)
+ \tkzLabelPoints(C)
+ \tkzLabelPoints[left](B)
+ \tkzLabelPoints[above](A)
+ \tkzLabelPoints[new](H_A)
+ \tkzLabelPoints[new,above left](H_C)
+ \tkzLabelPoints[new,above right](H_B,H)
+\end{tikzpicture}
+\end{tkzexample}
+    
+\subsection{Option \tkzname{feuerbach}}
 The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles.\\
 \href{http://mathworld.wolfram.com/FeuerbachTriangle.html}{Weisstein, Eric W. "Feuerbach triangle" From MathWorld--A Wolfram Web Resource.}
 
  The points of tangency define the Feuerbach triangle.
 
-
 \begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=1]
+\begin{tikzpicture}[scale=1.25]
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(3,0){B}
   \tkzDefPoint(0.5,2.5){C}
@@ -334,18 +381,20 @@
                        name=J](A,B,C){_a,_b,_c}
   \tkzDefSpcTriangle[extouch,
                         name=T](A,B,C){_a,_b,_c}
-  \tkzDrawPoints[blue](J_a,J_b,J_c,F_a,F_b,F_c,A,B,C)
+  \tkzDrawPoints[blue](J_a,J_b,J_c,%
+          F_a,F_b,F_c,A,B,C)
   \tkzClipBB \tkzShowBB
   \tkzDrawCircle[purple](N,F_a)
   \tkzDrawPolygon(A,B,C)
-  \tkzDrawPolygon[blue](F_a,F_b,F_c)
+  \tkzDrawPolygon[new](F_a,F_b,F_c)
   \tkzDrawCircles[gray](J_a,F_a J_b,F_b J_c,F_c)
   \tkzAutoLabelPoints[center=N,dist=.3,
-   font=\scriptsize](A,B,C,F_a,F_b,F_c,J_a,J_b,J_c)
+   font=\scriptsize](A,B,C,F_a,F_b,%
+                   F_c,J_a,J_b,J_c)
 \end{tikzpicture}
 \end{tkzexample}
 
-\subsubsection{Option   \tkzname{tangential}} 
+\subsection{Option   \tkzname{tangential}} 
 The tangential triangle is the triangle $T_aT_bT_c$ formed by the lines tangent to the circumcircle of a given triangle $ABC$ at its vertices. It is therefore antipedal triangle of $ABC$ with respect to the circumcenter $O$.\\ 
 \href{http://mathworld.wolfram.com/TangentialTriangle.html}{Weisstein, Eric W. "Tangential Triangle." From MathWorld--A Wolfram Web Resource. }
 
@@ -355,20 +404,22 @@
   \tkzDefPoints{0/0/A,6/0/B,1.8/4/C}           
   \tkzDefSpcTriangle[tangential,
     name=T](A,B,C){_a,_b,_c}
-  \tkzDrawPolygon[red](A,B,C)
-  \tkzDrawPolygon[blue](T_a,T_b,T_c)
-  \tkzDrawPoints[red](A,B,C)
-  \tkzDrawPoints[blue](T_a,T_b,T_c)
+  \tkzDrawPolygon(A,B,C)
+  \tkzDrawPolygon[new](T_a,T_b,T_c)
+  \tkzDrawPoints(A,B,C)
+  \tkzDrawPoints[new](T_a,T_b,T_c)
   \tkzDefCircle[circum](A,B,C)  
   \tkzGetPoint{O} 
   \tkzDrawCircle(O,A)
-  \tkzLabelPoints[red](A,B,C)
-  \tkzLabelPoints[blue](T_a,T_b,T_c)
+  \tkzLabelPoints(A,B,C)
+  \tkzLabelPoints[new](T_a,T_b,T_c)
 \end{tikzpicture} 
 \end{tkzexample} 
 
-\subsubsection{Option   \tkzname{euler}} 
+\subsection{Option   \tkzname{euler}} 
 The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertices are the midpoints of the segments joining the orthocenter $H$ with the respective vertices. The vertices of the triangle are known as the Euler points, and lie on the nine-point circle.
+\\
+\href{https://mathworld.wolfram.com/EulerTriangle.html}{Weisstein, Eric W. "Euler Triangle." From MathWorld--A Wolfram Web Resource.} 
 
 \begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[rotate=90,scale=1.25]
@@ -383,9 +434,9 @@
  \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
  \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
  \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
- \tkzDrawPolygon[color=blue](A,B,C)
+ \tkzDrawPolygon(A,B,C)
  \tkzDrawCircle(N,E_A)
- \tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
+ \tkzDrawSegments[new](A,H_A B,H_B C,H_C)
  \tkzDrawPoints(A,B,C,N,H)
  \tkzDrawPoints[red](M_A,M_B,M_C)
  \tkzDrawPoints[blue]( H_A,H_B,H_C)
@@ -395,9 +446,52 @@
 \tkzLabelPoints[font=\scriptsize](H,N)
 \tkzMarkSegments[mark=s|,size=3pt,
   color=blue,line width=1pt](B,E_B E_B,H)
-   \tkzDrawPolygon[color=red](M_A,M_B,M_C)
+   \tkzDrawPolygon[color=cyan](M_A,M_B,M_C)
 \end{tikzpicture}
 \end{tkzexample}
 
+\subsection{Option  \tkzname{euler} and Option  \tkzname{orthic}} 
+\begin{tkzexample}[vbox,small]
+  \begin{tikzpicture}[scale=1.25]
+    \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
+    \tkzDefSpcTriangle[euler,name=E](A,B,C){a,b,c}
+    \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
+    \tkzDefExCircle(A,B,C) \tkzGetPoint{I} \tkzGetLength{rI}
+    \tkzDefExCircle(C,A,B) \tkzGetPoint{J} \tkzGetLength{rJ}
+    \tkzDefExCircle(B,C,A) \tkzGetPoint{K} \tkzGetLength{rK}
+    \tkzDrawPoints[orange](I,J,K)
+    \tkzLabelPoints[font=\scriptsize](A,B,C,I,J,K)
+    \tkzClipBB
+    \tkzInterLC[R](I,C)(I,\rI) \tkzGetSecondPoint{Fc}
+    \tkzInterLC[R](J,B)(J,\rJ) \tkzGetSecondPoint{Fb}
+    \tkzInterLC[R](K,A)(K,\rK) \tkzGetSecondPoint{Fa}
+    \tkzDrawLines[add=1.5 and 1.5](A,B A,C B,C)
+    \tkzDrawCircle[euler,orange](A,B,C) \tkzGetPoint{E}
+    \tkzDrawSegments[orange](E,I E,J E,K)
+    \tkzDrawSegments[dashed](A,Ha B,Hb C,Hc)
+    \tkzDrawCircles[R](J,{\rJ} I,{\rI} K,{\rK})
+    \tkzDrawPoints(A,B,C)
+    \tkzDrawPoints[orange](E,I,J,K,Ha,Hb,Hc,Ea,Eb,Ec,Fa,Fb,Fc)
+    \tkzLabelPoints[font=\scriptsize](E,Ea,Eb,Ec,Ha,Hb,Hc,Fa,Fb,Fc)  
+  \end{tikzpicture}
+\end{tkzexample}
 
+
+\subsection{Option \tkzname{symmedial}}
+The symmedial triangle$ K_AK_BK_C$ is the triangle whose vertices are the intersection points of the symmedians with the reference triangle $ABC$. 
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(5,0){B}
+\tkzDefPoint(.75,4){C}
+\tkzDefTriangleCenter[symmedian](A,B,C)\tkzGetPoint{K} 
+\tkzDefSpcTriangle[symmedial,name=K_](A,B,C){A,B,C}
+\tkzDrawPolygon(A,B,C)
+\tkzDrawSegments[new](A,K_A B,K_B C,K_C)
+\tkzDrawPoints(A,B,C,K,K_A,K_B,K_C)
+\tkzLabelPoints[font=\scriptsize](A,B,C,K,K_A,K_B,K_C)
+\end{tikzpicture}
+\end{tkzexample}
+ 
 \endinput
\ No newline at end of file

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

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

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

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

Index: trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf	2022-01-04 22:31:15 UTC (rev 61496)

Property changes on: trunk/Master/texmf-dist/doc/latex/tkz-euclide/tkz-euclide.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,205 @@
+% tkz-euclide.cfg
+% Copyright 2022  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.
+% If you modify this original file, YOUR CHANGES WILL BE LOST when it is
+% updated.  Instead, put your changes in the entire copy of tkz-base.cfg 
+% and save the file in a directory  part of your TEXINPUTS environment 
+% variable. 
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-euclide.cfg}
+%<------   colors  ---------------------------------------–> 
+\def\tkz at backgroundcolor{white}
+\def\tkz at textcolor{black}  
+%<---------------------------------------------------------
+\def\tkz at fillcolor{\tkz at backgroundcolor}    
+\def\tkz at mainlinecolor{\tkz at textcolor} 
+\def\tkz at otherlinecolor{\tkz at mainlinecolor!50} 
+%<------------------------- Cartesian system   -----------------------------–>
+% Default unity cm
+% Geometry Euclidean  with unity for x and y = 1cm ---> step = 1
+% 0 ≤ x ≤ 10
+% 0 ≤ y ≤ 10
+\def\tkz at init@xorigine{0}
+\def\tkz at init@yorigine{0}
+\def\tkz at init@xstep{1}
+\def\tkz at init@ystep{1}
+\def\tkz at init@xmin{0}
+\def\tkz at init@ymin{0}
+\def\tkz at init@xmax{10}
+\def\tkz at init@ymax{10}
+\def\tkz at init@xdec{1}
+\def\tkz at init@ydec{1}  
+%<--------------------------    points   -----------------------------------–>
+\def\tkz at euc@pointshape{circle}
+\def\tkz at euc@pointcolor{\tkz at mainlinecolor}
+\def\tkz at euc@labelcolor{\tkz at mainlinecolor} 
+\def\tkz at euc@pointsize{3}
+\def\tkz at euc@pointpos{below right}
+\def\tkz at euc@segmentcolor{\tkz at mainlinecolor}
+\def\tkz at euc@circlecolor{\tkz at mainlinecolor}
+%<--------------------------   line  ---------------------------------------–>
+\def\tkz at euc@linecolor{\tkz at mainlinecolor}
+\def\tkz at euc@linewidth{0.6pt}
+\def\tkz at euc@linestyle{solid}
+\def\tkz at euc@lineleft{.2}
+\def\tkz at euc@lineright{.2}
+%<------   axes cartesian system  ---------------------------------------–>   
+\def\tkz at init@color{\tkz at textcolor}
+\def\tkz at init@lw{0.4 pt}
+\def\tkz at init@tickwd{0.8 pt}
+\def\tkz at init@ticka{2 pt}  
+\def\tkz at init@tickb{2 pt}
+\def\tkz at init@xlabel{$x$}
+\def\tkz at init@ylabel{$y$}
+\def\tkz at init@tickb{2 pt}
+\def\tkz at init@rightspace{.5} 
+\def\tkz at init@leftspace{0}
+\def\tkz at init@upspace{.5} 
+\def\tkz at init@downspace{0}
+\global\let\tkzmathstyle\displaystyle
+\def\tkz at legend@line at len{1cm}
+%<--------------------------   rep  ---------------------------------------–>
+\def\tkz at sur@color{\tkz at mainlinecolor}
+\def\tkz at sur@colorlabel{\tkz at mainlinecolor}
+\def\tkz at sur@lw{0.8 pt}
+\def\tkz at sur@posxlabel{below=2pt}
+\def\tkz at sur@posylabel{left=2pt}
+%<--------------------------   grid  ---------------------------------------–>
+\def\tkz at grid@color{gray}
+\def\tkz at grid@lw{0.4 pt}
+\def\tkzCoeffSubColor{50} 
+\def\tkzCoeffSubLw{0.8}
+\def\tkz at grid@xstep{0.2}
+\def\tkz at grid@ystep{0.2} 
+\def\tkz at init@gradsize{\textstyle}
+\def\tkzRatioLineGrid{0.75} 
+\def\tkz at gd@sublw{0.4 pt}% size line sub grid
+%<-------------------------    compass   -----------------------------------–> 
+\def\tkz at euc@compasscolor{\tkz at otherlinecolor}
+\def\tkz at euc@compasswidth{0.4pt}
+\def\tkz at euc@compassstyle{solid} 
+%<-------------------------    arc   -----------------------------------–> 
+\def\tkz at arc@lw{0.4pt}
+\def\tkz at arc@color{\tkz at mainlinecolor}
+\def\tkz at arc@style{solid}   
+%<----------------------------    mark   -----------------------------------–> 
+\def\tkz at mk@color{\tkz at mainlinecolor}
+\def\tkz at mk@mark{*}
+\def\tkz at mk@size{3pt}
+\def\tkz at mk@fill{\tkz at otherlinecolor} 
+%<--------------------------------------------------------------------------–>
+%<------------------------------  styles   ---------------------------------–>
+\def\tkzSetUpStyle[#1]#2{\tikzset{#2/.style={#1}}}% add 2022
+
+\tikzset{xlabel style/.style                =   {below      =   3 pt,
+                                                inner sep   =   1pt,
+                                                outer sep   =   0pt}
+                                                }                                       
+\tikzset{ylabel style/.style                =   {left       =   3 pt,
+                                                inner sep   =   1pt,
+                                                outer sep   =   0pt}}
+\tikzset{xaxe style/.style                  =   {>          =   latex,  ->}
+}  
+\tikzset{yaxe style/.style                  =   {>          =   latex,  ->}
+}    
+
+\tikzset{point style/.style = {draw         = \tkz at euc@pointcolor,
+                               inner sep    = 0pt,
+                               shape        = \tkz at euc@pointshape,
+                               minimum size = \tkz at euc@pointsize,
+                               fill         = \tkz at euc@pointcolor
+                               }
+        }  
+% label for the point 
+\tikzset{label style/.style={   \tkz at euc@pointpos,
+                                \tkz at euc@labelcolor,
+                                font = \normalsize}
+                                }
+\tikzset{label angle style/.style={ \tkz at euc@labelcolor,
+                                font = \normalsize}
+                                }                                
+\tikzset{line style/.style = {line width = \tkz at euc@linewidth,
+                              color      = \tkz at euc@linecolor,
+                              style      = \tkz at euc@linestyle,
+                              add        = {\tkz at euc@lineleft} and    {\tkz at euc@lineright}%
+                             }
+        }
+\tikzset{label seg style/.style = {color      = \tkz at mainlinecolor,
+                                   auto
+                                   }
+        }   
+        
+\tikzset{rep style/.style       = { ->,
+                                    >=latex}
+                                }                             
+\tikzset{compass style/.style         = {color         = \tkz at euc@compasscolor,
+                                         line width    = \tkz at euc@compasswidth,
+                                         style         = \tkz at euc@compassstyle}
+                                 } 
+\tikzset{mark style/.style            =  {mark         =    \tkz at mk@mark,
+                                          mark size    =    \tkz at mk@size,
+                                          mark options = {color= \tkz at mk@color,
+                                          fill         = \tkz at mk@fill
+                                                 }
+                                }
+}
+\tikzset{arc style/.style={gray,thin}}
+%<----------------------    show coord   -----------------------------------–> 
+\tikzset{arrow coord style/.style   =   {dashed,
+                                        \tkz at euc@linecolor,
+                                        >   =   latex',
+                                        ->}
+                                        }
+\tikzset{xcoord style/.style        =   {\tkz at euc@labelcolor,
+                                        font        =   \normalsize,
+                                        text height =   1ex,
+                                        inner sep   =   0pt,
+                                        outer sep   =   0pt,
+                                        fill        =   \tkz at fillcolor,
+                                        below       =   3pt}
+                                        } 
+\tikzset{ycoord style/.style        =   {\tkz at euc@labelcolor,
+                                        font        =   \normalsize,
+                                        text height =   1ex, 
+                                        inner sep   =   0pt,
+                                        outer sep   =   0pt, 
+                                        fill        =   \tkz at fillcolor,
+                                        left        =   3pt}
+                                        }  
+%<---------------------------  vector --------------------------------------–>
+\tikzset{vector style/.style={>=latex,->}
+}
+\tikzset{tkzdotted/.style={%
+    dash pattern=on 0.4\pgflinewidth off #1\pgflinewidth,line cap=round, shorten >=#1\pgflinewidth/2,shorten <=#1\pgflinewidth/2,
+    tkzdotted/.default=8}}
+    
+% \tikzset{tkzreverseclip/.style={insert path={%
+%   (\tkz at xa,\tkz at ya) rectangle (\tkz at xb,\tkz at yb)}}}
+  
+\tikzset{tkzreverseclip/.style={insert path={
+  (current bounding box.south west) --(current bounding box.north west)
+   --(current bounding box.north east) --  (current bounding box.south east)
+   -- cycle} }}
+   
+\def\tkzPhi{1.618034}
+\def\tkzInvPhi{0.618034}
+\def\tkzSqrtPhi{1.27202}
+\def\tkzSqrTwo{1.414213}
+\def\tkzSqrThree{1.7320508}
+\def\tkzSqrFive{2.2360679}
+\def\tkzSqrTwobyTwo{0.7071065}
+\def\tkzPi{3.1415926}
+\def\tkzEuler{2.71828182}
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.cfg
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-euclide.sty	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,78 +1,151 @@
-% tkz-euclide.sty (utf8 encoding)
-% Copyright 2020  Alain Matthes
+% tkz-euclide.sty 
+% Copyright 2022  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.
-%
+% 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.
-%
-% This work consists of the files:
-% tkz-euclide.sty
-% tkz-obj-eu-angles.tex
-% tkz-obj-eu-arcs.tex
-% tkz-obj-eu-circles.tex
-% tkz-obj-eu-compass.tex
-% tkz-obj-eu-draw-circles.tex
-% tkz-obj-eu-draw-lines.tex
-% tkz-obj-eu-draw-polygons.tex
-% tkz-obj-eu-lines.tex
-% tkz-obj-eu-points-by.tex
-% tkz-obj-eu-points-rnd.tex
-% tkz-obj-eu-points-with.tex
-% tkz-obj-eu-points.tex
-% tkz-obj-eu-polygons.tex
-% tkz-obj-eu-protractor.tex
-% tkz-obj-eu-sectors.tex
-% tkz-obj-eu-show.tex
-% tkz-obj-eu-triangles.tex
-% tkz-tools-angles.tex
-% tkz-tools-intersections.tex
-% tkz-tools-math.tex
 
-%<------------------------------------------------------------–>
-\def\fileversion{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-euclide.sty} 
+%<------------------------------------------------------------>
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-euclide.sty} 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-euclide}[2020/03/18 3.06c  for  euclidan geometry ]
-\RequirePackage{tkz-base}
-\makeatletter
-\@ifpackagelater{tkz-base}{2020/03/18}{%
-    % Package is new enough
-}{%
-    \PackageError{tkz-euclide}{Package tkz-base is too old , you need a recent version}%
+\ProvidesPackage{tkz-euclide}[ 2022/01/04 4.00 for pure  Euclidean Geometry ]
+
+\@ifpackageloaded{tkz-base}{
+\newdimen\tkzRadius
+\newdimen\tkzLength
+\newdimen\tkz at radi
+\newif\iftkz at line@normed
+\newif\ifnormtkzcode at execute% german ? right angle
+\newif\iftkz at swap@sc%---------------------- semi circle
+}{
+\RequirePackage{tikz} 
+\usetikzlibrary{angles,
+                arrows,
+                arrows.meta,
+                calc,
+                decorations,
+                decorations.markings,
+                decorations.pathreplacing,
+                decorations.shapes,
+                decorations.text,
+                decorations.pathmorphing,
+                intersections,
+                plotmarks,
+                quotes,
+                shapes.misc
+                }
+\RequirePackage{xfp}
+%---------------------
+\newdimen\tkzRadius
+\newdimen\tkzLength
+\newdimen\tkz at radi
+%--------------------- tkz registres
+\newdimen\tkz at ax
+\newdimen\tkz at ay
+\newdimen\tkz at bx
+\newdimen\tkz at by
+\newdimen\tkz at cx
+\newdimen\tkz at cy
+\newdimen\tkz at dx
+\newdimen\tkz at dy
+%--------------------- points
+\newif\iftkz at polar\tkz at polarfalse
+\newif\iftkz at pt@polar 
+\newif\iftkz at pt@show 
+\newif\iftkz at pt@noname 
+\newif\iftkz at coord@noxdraw
+\newif\iftkz at coord@noydraw
+\newif\iftkz at vec@normed
+%--------------------- lines
+\newif\iftkz at line@normed
+%--------------------- tkz axis
+\newif\iftkz at X@noticks
+\newif\iftkz at Y@noticks
+\newif\iftkz at X@nograd
+\newif\iftkz at Y@nograd
+\newif\iftkz at X@orig
+\newif\iftkz at Y@orig
+\newif\iftkz at X@unit
+\newif\iftkz at Y@unit
+\newif\iftkz at np 
+\newif\iftkz at swap
+\newif\iftkz at init@NO
+\newif\iftkz at Rep@orig%--------------------- Rep
+\newif\iftkzLengthIncm%--------------------- Math
+\newif\iftkz at sop@show%--------------------- marks
+\newif\iftkz at equi@show
+\newif\iftkz at gd@sub% sub grid ?%--------------------- about grid
+\newif\iftkz at node\tkz at nodefalse  
+\newif\iftkz at legend@line%--------------------- legend
+\newif\iftkz at TestSubString
+\newif\ifnormtkzcode at execute% german ? right angle
+\newif\iftkz at swap@sc%---------------------- semi circle
+\newif\ifpgf at unknown % math arith
+\newif\ifpgf at isaprime    
+\newcount\tkz at cntmk
+\newif\iftkz at RappReturn % protractor
+\newif\iftkz at RappFull
+%--------------------- Init
+\def\tkz at xa{0}
+\def\tkz at xb{10}
+\def\tkz at ya{0}
+\def\tkz at yb{10}
+\def\tkz at mathresult{}
+\InputIfFileExists{tkz-euclide.cfg}{%
+\typeout{Local configuration file tkz-euclide.cfg found and used}}{%
+\typeout{tkz-euclide.cfg not found}}
 }
-\makeatother
+%--------------------- Init
+\def\tkz at tmp@xa{-5}
+\def\tkz at tmp@xb{+5}
+\def\tkz at tmp@ya{-5}
+\def\tkz at tmp@yb{+5}
+%<---------------------------------------------------------->
+
 \DeclareOption*{}
 \ProcessOptions
-%<----------------------------------------------------------–>
+%<---------------------------------------------------------->
 %                          Initialisation
-%<----------------------------------------------------------–>
-\input{tkz-tools-intersections}
-\input{tkz-tools-angles}
-\usetkzobj{%
-   eu-angles,%
-   eu-arcs,%
-   eu-compass,%
-   eu-circles,%
-   eu-draw-circles,%
-   eu-draw-lines,%
-   eu-draw-polygons,%
-   eu-draw-triangles,%
-   eu-lines,%
-   eu-points,%
-   eu-points-by,%
-   eu-points-rnd,%
-   eu-points-with,%
-   eu-polygons,%
-   eu-protractor,%
-   eu-sectors,%
-   eu-show,%
-   eu-triangles}
-\endinput
\ No newline at end of file
+%<---------------------------------------------------------->
+\@ifpackageloaded{tkz-base}{}{%
+% from base 
+\input{tkz-tools-eu-base.tex}
+\input{tkz-tools-eu-utilities.tex}
+\input{tkz-tools-eu-BB.tex}
+\input{tkz-obj-eu-grids.tex}
+\input{tkz-lib-eu-marks.tex}
+\input{tkz-tools-eu-text.tex}
+\input{tkz-lib-eu-shape.tex}
+\input{tkz-obj-eu-axesmin.tex}
+\input{tkz-tools-eu-colors.tex}
+\input{tkz-obj-eu-points.tex}
+}
+% next from euclide
+\input{tkz-tools-eu-math.tex}
+\input{tkz-tools-eu-intersections}
+\input{tkz-tools-eu-angles}
+\input{tkz-obj-eu-compass.tex}
+\input{tkz-obj-eu-circles.tex}
+\input{tkz-obj-eu-circles-by.tex}
+\input{tkz-obj-eu-draw-angles.tex}
+\input{tkz-obj-eu-draw-circles.tex}
+\input{tkz-obj-eu-draw-lines.tex}
+\input{tkz-obj-eu-draw-polygons.tex}
+\input{tkz-obj-eu-draw-triangles.tex}
+\input{tkz-obj-eu-lines.tex}
+\input{tkz-obj-eu-points-by.tex}
+\input{tkz-obj-eu-points-rnd.tex}
+\input{tkz-obj-eu-points-spc.tex}
+\input{tkz-obj-eu-points-with.tex}
+\input{tkz-obj-eu-polygons.tex}
+\input{tkz-obj-eu-protractor.tex}
+\input{tkz-obj-eu-sectors.tex}
+\input{tkz-obj-eu-show.tex}
+\input{tkz-obj-eu-triangles}
+\endinput

Added: 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	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,122 @@
+% tkz-eu-lib-marks.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-lib-eu-marks.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%  Création des symboles
+%<--------------------------------------------------------------------------–>
+\def\tkz at undefined{none}    
+% double bar
+\pgfdeclareplotmark{||}
+{%
+  \pgfpathmoveto{\pgfqpoint{2\pgflinewidth}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-\pgfplotmarksize}}
+  \pgfpathmoveto{\pgfqpoint{-2\pgflinewidth}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{-2\pgflinewidth}{-\pgfplotmarksize}}
+  \pgfusepathqstroke
+}
+%triple bar
+\pgfdeclareplotmark{|||}
+{%
+  \pgfpathmoveto{\pgfqpoint{0 pt}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{0 pt}{-\pgfplotmarksize}}
+  \pgfpathmoveto{\pgfqpoint{-3\pgflinewidth}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{-3\pgflinewidth}{-\pgfplotmarksize}}
+  \pgfpathmoveto{\pgfqpoint{3\pgflinewidth}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{3\pgflinewidth}{-\pgfplotmarksize}}
+  \pgfusepathqstroke
+} 
+% An bar slant
+
+\pgfdeclareplotmark{s|}
+{%
+  \pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}%
+                           {-.70710678\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}%
+                           {.70710678\pgfplotmarksize}}
+  \pgfusepathqstroke
+} 
+
+% An double bar slant
+
+\pgfdeclareplotmark{s||}
+{%
+ \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+ \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}} 
+ \pgfpathmoveto{\pgfqpoint{0\pgfplotmarksize}{-\pgfplotmarksize}}
+ \pgfpathlineto{\pgfqpoint{1\pgfplotmarksize}{\pgfplotmarksize}} 
+ \pgfusepathqstroke
+}   
+\pgfdeclareplotmark{s|||}
+{%
+ \pgfpathmoveto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+ \pgfpathlineto{\pgfqpoint{0.25\pgfplotmarksize}{\pgfplotmarksize}} 
+ \pgfpathmoveto{\pgfqpoint{0\pgfplotmarksize}{-\pgfplotmarksize}}
+ \pgfpathlineto{\pgfqpoint{1\pgfplotmarksize}{\pgfplotmarksize}}
+ \pgfpathmoveto{\pgfqpoint{0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+ \pgfpathlineto{\pgfqpoint{1.75\pgfplotmarksize}{\pgfplotmarksize}} 
+ \pgfusepathqstroke
+} 
+% z
+\pgfdeclareplotmark{z}
+{%
+  \pgfpathmoveto{\pgfqpoint{0.75\pgfplotmarksize}{-\pgfplotmarksize}} 
+  \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{0.75\pgfplotmarksize}{\pgfplotmarksize}}
+  \pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{\pgfplotmarksize}}
+  \pgfusepathqstroke
+}
+% s
+\pgfdeclareplotmark{s}
+{%
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
+   \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{-\pgfplotmarksize}{\pgfplotmarksize}}
+       {\pgfpoint{\pgfplotmarksize}{\pgfplotmarksize}}
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
+    \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{\pgfplotmarksize}{-\pgfplotmarksize}}
+       {\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}} 
+    \pgfusepathqstroke
+}  
+% infinity
+\pgfdeclareplotmark{oo}
+{%
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
+   \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{.5\pgfplotmarksize}{1\pgfplotmarksize}}
+       {\pgfpoint{\pgfplotmarksize}{0pt}}
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
+    \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{-.5\pgfplotmarksize}{1\pgfplotmarksize}}
+       {\pgfpoint{-\pgfplotmarksize}{0pt}}  
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}  
+      \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{.5\pgfplotmarksize}{-1\pgfplotmarksize}}
+       {\pgfpoint{\pgfplotmarksize}{0pt}}
+   \pgfpathmoveto{\pgfqpoint{0pt}{0pt}} 
+    \pgfpathcurveto
+       {\pgfpoint{0pt}{0pt}}
+       {\pgfpoint{-.5\pgfplotmarksize}{-1\pgfplotmarksize}}
+       {\pgfpoint{-\pgfplotmarksize}{0pt}}      
+    \pgfusepathqstroke
+} 
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-marks.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-lib-eu-shape.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,51 @@
+% tkz-lib-eu-shape.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-lib-eu-shape.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%  Création des symboles
+%<--------------------------------------------------------------------------–>
+% define a new shape for the points
+\pgfdeclareshape{cross}
+{%
+  \inheritsavedanchors[from=rectangle] % this is nearly a rectangle
+  \inheritanchorborder[from=rectangle]
+  \inheritanchor[from=rectangle]{north}
+  \inheritanchor[from=rectangle]{north west}
+  \inheritanchor[from=rectangle]{north east}
+  \inheritanchor[from=rectangle]{center}
+  \inheritanchor[from=rectangle]{west}
+  \inheritanchor[from=rectangle]{east}
+  \inheritanchor[from=rectangle]{mid}
+  \inheritanchor[from=rectangle]{mid west}
+  \inheritanchor[from=rectangle]{mid east}
+  \inheritanchor[from=rectangle]{base}
+  \inheritanchor[from=rectangle]{base west}
+  \inheritanchor[from=rectangle]{base east}
+  \inheritanchor[from=rectangle]{south}
+  \inheritanchor[from=rectangle]{south west}
+  \inheritanchor[from=rectangle]{south east}
+  \foregroundpath{
+% store lower right in xa/ya and upper right in xb/yb
+  \southwest \pgf at xa=\pgf at x \pgf at ya=\pgf at y
+  \northeast \pgf at xb=\pgf at x \pgf at yb=\pgf at y
+  \pgfpathmoveto{\pgfqpoint{0 pt}{\pgf at ya}}
+  \pgfpathlineto{\pgfqpoint{0 pt}{\pgf at yb}}
+  \pgfpathmoveto{\pgfqpoint{\pgf at xa}{0 pt}}
+  \pgfpathlineto{\pgfqpoint{\pgf at xb}{0 pt}}
+ }
+}
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-lib-eu-shape.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-angles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-angles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,297 +0,0 @@
-% tkz-tool-eu-angles.tex
-% Copyright 2020  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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-tool-eu-angles.tex} 
-\makeatletter
-%<--------------------------------------------------------------------------–>
-\newdimen\tkz at arcsize% from julian julian at d-and-j.net
-\newdimen\tkz at fillsize
-%<-------------------------------------------------------------------------–>
-
-%<--------------------------------------------------------------------------–>
-%                       tkzDrawArcRAN                                        >
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRAN[#1](#2,#3)(#4,#5){% 
-\begingroup 
-    \draw[shift = {(#2)},/tkzdrawarc/.cd,#1] (#4:#3) arc (#4:#5:#3); 
-\endgroup  
-}
-%<--------------- tkzPathArcRAN ----------------------------------
-\def\tkzPathArcRAN[#1](#2,#3)(#4,#5){% 
-\begingroup     
-    \path[shift = {(#2)},/tkzdrawarc/.cd,#1] (#4:#3) arc (#4:#5:#3); 
-\endgroup  
-}
-%<--------------------------------------------------------------------------–>
-%       Mark an angle modi 3.03 suppression de \tkz at mksize,
-%<--------------------------------------------------------------------------–>
-%                \tkzMarkAngle(B, A, C)
-%
-% Marque d'angle
-% arc de cercle (simple/double/triple) et marque d'églité.
-%
-% Par défaut: 
-%                 arc       = simple
-%                 size     = 1cm (rayon de l'arc)
-%                 style traits pleins
-%                 mkpos ?  position: 0.5 (position de la marque)
-%                 mark rien du tout (ignoré si type est utilisé)
-%
-% Paramètres (optionnels)
-%             arc     : l, ll, lll
-%             mksize  : 1cm
-%             gap     : 3pt
-%             dist ?
-%             style   : type de traits
-%             type    : none, |, ||,|||, z, s, x, o, oo
-%             position: 0.5
-%             mark    : none  , |, ||,|||, z, s, x, o, oo mais tous les 
-%  % symboles de tikz sont permis
-%<------------------------- Label on angle -------------------------------–>
-\def\tkz at arcsimple{l} 
-\def\tkz at arcdouble{ll}
-\def\tkz at arctriple{lll} 
-
-%\tikzset{lbstyle/.style = {color=\tkz at mainlinecolor}}
-
-\pgfkeys{/tkzmkangle/.cd,
-      arc/.estore in          = \tkz at arc,
-      size/.store in          = \tkz at size,
-      mark/.store in          = \tkz at markang,
-      mkpos/.estore in        = \tkz at mkpos,
-      mksize/.store in        = \tkz at mksize,
-      mkcolor/.store in       = \tkz at mkcolor,
-      arc                     = l,
-      size                    = 1 cm,
-      mark                    = |,
-      mksize                  = 4pt,
-      mkcolor                 = black,
-      mkpos                   = 0.5,
-  /tkzmkangle/.search also={/tikz}   
-}                        \def\tkzMarkAngle{\pgfutil at ifnextchar[{\tkz at MarkAngle}{\tkz at MarkAngle[]}}   
-\def\tkz at MarkAngle[#1](#2,#3,#4){%
-\begingroup
-\pgfqkeys{/tkzmkangle}{#1}
-
-\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
-\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
-\tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
-
-% les marques, aucune si mktype = none
-\def\tkz at mymark{\pgfuseplotmark{\tkz at markang}}
-% draw the arcs
-\begin{scope}[decoration= {markings,
-                        mark=at position \tkz at mkpos with {\tkz at mymark}}]
-  \ifx\tkz at arc\tkz at arcsimple
-    \tkzDrawArcRAN[#1,fill=none,postaction={decorate}]%
-    (#3,\tkz at size)(\tkz at FirstAngle,\tkz at SecondAngle)
-  \else
-    \ifx\tkz at arc\tkz at arcdouble     
-     \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size-1.5\pgflinewidth)%
-            (\tkz at FirstAngle,\tkz at SecondAngle) 
-       \tkzPathArcRAN[#1,fill=none,postaction={decorate}]%
-           (#3,\tkz at size)(\tkz at FirstAngle,\tkz at SecondAngle)%
-     \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size+1.5\pgflinewidth)%
-                     (\tkz at FirstAngle,\tkz at SecondAngle)% 
-    \else
-       \ifx\tkz at arc\tkz at arctriple
-          \tkzDrawArcRAN[#1,fill=none,postaction={decorate}]%
-          (#3,\tkz at size)(\tkz at FirstAngle,\tkz at SecondAngle)%   
-          \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size-2.5\pgflinewidth)%
-                    (\tkz at FirstAngle,\tkz at SecondAngle)%
-          \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size+2.5\pgflinewidth)%
-                    (\tkz at FirstAngle,\tkz at SecondAngle)%   
-       \fi
-     \fi
-  \fi
-\end{scope}
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz at multiMA#1 #2\@nil{%
- \protected at edef\tkz at temp{
-   \noexpand \tkzMarkAngle[\tkz at optma](#1)}\tkz at temp%    
-   \def\tkz at nextArg{#2}%
-   \ifx\tkzutil at empty\tkz at nextArg
-     \let\next\@gobble
-   \fi
-   \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzMarkAngles{\pgfutil at ifnextchar[{\tkz at MarkAngles}{\tkz at MarkAngles[]}}   
-\def\tkz at MarkAngles[#1](#2){% 
-\xdef\tkz at optma{#1} 
-  \begingroup
-   \let\next\tkz at multiMA
-   \next#2 \@nil %    
-\endgroup 
-} 
-% fin de \tkzMarkAngle
-%<--------------------------------------------------------------------------–>
-%                        FillAngle
-%<--------------------------------------------------------------------------–>
-\pgfkeys{/tkzFill/.cd,
-    size/.store in        = \tkz at size,
-    size                  = 1 cm,
-    /tkzFill/.search also = {/tikz}
-  } 
-
-\def\tkzFillAngle{\pgfutil at ifnextchar[{\tkz at FillAngle}{\tkz at FillAngle[]}}   
-\def\tkz at FillAngle[#1](#2,#3,#4){% 
-\begingroup
-\pgfqkeys{/tkzFill}{#1}   
-  \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}   
-  \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}   
-  \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
-    \path[shift  = {(#3)},/tkzFill/.cd,#1]%
-          (#3) -- (\tkz at FirstAngle:\tkz at size) arc%
-          (\tkz at FirstAngle:\tkz at SecondAngle:\tkz at size)--cycle;
-\endgroup 
-}
-%<--------------------------------------------------------------------------–>
-% multiple
-\def\tkz at multiFA#1 #2\@nil{\protected at edef\tkz at temp{%
-   \noexpand \tkzFillAngle[\tkz at optfa](#1)}%
-   \tkz at temp%    
-   \def\tkz at nextArg{#2}%
-   \ifx\tkzutil at empty\tkz at nextArg
-     \let\next\@gobble
-   \fi
-   \next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzFillAngles{\pgfutil at ifnextchar[{\tkz at MFillAngles}{\tkz at MFillAngles[]}}   
-\def\tkz at MFillAngles[#1](#2){% 
-\xdef\tkz at optfa{#1} 
-\begingroup
-   \let\next\tkz at multiFA
-   \next#2 \@nil %    
-\endgroup 
-} 
-%<------------------------- Label on angle -------------------------------–>
-\pgfkeys{/tkzlabelangle/.cd,
-    dist/.store in                  = \tkzlabeldist, 
-    angle/.store in                 = \tkzlabelangle, 
-    dist                            = 1,
-    angle                           = {},
-  /tkzlabelangle/.search also={/tikz}   
-}  
-\def\tkzLabelAngle{\pgfutil at ifnextchar[{\tkz at LabelAngle}{\tkz at LabelAngle[]}}
-\def\tkz at LabelAngle[#1](#2,#3,#4)#5{%2016 added normalize from karu's code
-\begingroup
-  \pgfqkeys{/tkzlabelangle}{#1}
-  \ifx\tkzutil at empty\tkzlabelangle% no value so calc angle of bisector
-      \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
-        \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
-        \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
-    \edef\tkzlabelAngle{\fpeval{(\tkz at SecondAngle+\tkz at FirstAngle)/2}}
-  \fi
-  \path  (#3) --+(\tkzlabelAngle:\tkzlabeldist) node[/tkzlabelangle/.cd,#1] {#5};
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% multiple labels
-\def\tkz at multiLBA#1 #2\@nil{%
- \protected at edef\tkz at temp{
-   \noexpand \tkzLabelAngle[\tkz at optlba](#1){\tkz at labelangle}}\tkz at temp%
-   \def\tkz at nextArg{#2}%
-   \ifx\tkzutil at empty\tkz at nextArg
-     \let\next\@gobble
-   \fi
-   \next#2\@nil
-}
-% %<---------------------------------------------------------------------
-\def\tkzLabelAngles{\pgfutil at ifnextchar[{\tkz at LabelAngles}{%
-                                         \tkz at LabelAngles[]}}
-\def\tkz at LabelAngles[#1](#2)#3{% 
- \def\tkz at optlba{#1}
- \def\tkz at labelangle{#3} 
-   \begingroup
-      \let\next\tkz at multiLBA
-      \next#2 \@nil %
- \endgroup
-}
-%<-----------------------------------------------------------------------
-%                     Symbole droites perpendiculaires      
-%<---------------------------------------------------------------------- 
-\pgfkeys{/tkzrightangle/.cd,
-         norm tkz code/.is if            = normtkzcode at execute,
-         german/.code                    = \normtkzcode at executefalse,
-         size/.store in                  = \tkz at ra@size,
-         dotsize/.store in               = \tkz at dotsize,
-         size                            = .25,
-         dotsize                         = 3 pt,
-  /tkzrightangle/.search also={/tikz},
-}
-\newcommand*{\tkzMarkRightAngle}[1][]{\tkz at RightAngle[#1]}
-\def\tkz at RightAngle[#1](#2,#3,#4){% 
-\begingroup
-\normtkzcode at executetrue
-\pgfqkeys{/tkzrightangle}{#1} 
-    \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
-                                      \pgfpointanchor{#2}{center}}} 
-    \tkz at ax=\pgf at x\relax%
-    \tkz at ay=\pgf at y\relax%    
-    \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
-                                      \pgfpointanchor{#4}{center}}} 
-    \tkz at bx=\pgf at x\relax%
-    \tkz at by=\pgf at y\relax%
-  \ifnormtkzcode at execute%
-      \draw[/tkzrightangle/.cd,#1]  
-    (#3) --++( 28.45274*\tkz at ra@size\tkz at ax , 28.45274*\tkz at ra@size\tkz at ay) 
-         --++( 28.45274*\tkz at ra@size\tkz at bx , 28.45274*\tkz at ra@size\tkz at by)
-         --++(-28.45274*\tkz at ra@size\tkz at ax ,-28.45274*\tkz at ra@size\tkz at ay)
-         -- (#3);   
-  \else%
-    % find angles
-      \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
-      \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
-      \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
-      \edef\tkzCircleAngle{\fpeval{(\tkz at SecondAngle+\tkz at FirstAngle)/2}}     
-      \tkzDrawArcRAN[/tkzrightangle/.cd,#1](#3,\tkz at ra@size)%
-            (\tkz at FirstAngle,\tkz at SecondAngle)
-      \path (#3) --+ (\tkzCircleAngle:\tkz at ra@size/2)
-      node[fill,circle,minimum size=\tkz at dotsize,
-           inner sep=0 pt,/tkzrightangle/.cd,#1] {};
-\fi%
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-\def\tkz at multiRA#1 #2\@nil{% 
-\protected at edef\tkz at temp{
-  \noexpand \tkzMarkRightAngle[\tkz at optRA](#1)}\tkz at temp% 
-\def\tkz at nextArg{#2}%
-   \ifx\tkzutil at empty\tkz at nextArg
-      \let\next\@gobble
-   \fi
-\next#2\@nil
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzMarkRightAngles{\pgfutil at ifnextchar[{\tkz at RightAngles}{%
-                                         \tkz at RightAngles[]}} 
-\def\tkz at RightAngles[#1](#2){% 
-\xdef\tkz at optRA{#1} 
-\begingroup
-    \let\next\tkz at multiRA
-    \next#2 \@nil %    
-\endgroup 
-}    
- 
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-arcs.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-arcs.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-arcs.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,178 +0,0 @@
-% tkz-obj-eu-arcs.tex
-% Copyright 2020  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{3.06c}
-\def\filedate{2020/03/23} 
-\typeout{2020/03/23 3.06c  tkz-obj-eu-arcs.tex}  
-\makeatletter
-%<------------------------------  Arcs -------------------------------------–
-% options : delta 
-% \def\tkz at delta{0}
-% \tikzset{arc style/.style={#1}}
-% \pgfkeys{/tikz/.cd,delta/.code={\def\tkz at delta{#1}}}
-\tikzset{arc style/.style={gray,thin}}
-\gdef\tkz at numa{0}
-\pgfkeys{/tkzdrawarc/.cd,
-      type/.is choice,
-      type/towards/.code               = \def\tkz at numa{0},
-      type/rotate/.code                = \def\tkz at numa{1},
-      type/angles/.code                = \def\tkz at numa{2}, 
-      type/R/.code                     = \def\tkz at numa{3},
-      type/R with nodes/.code          = \def\tkz at numa{4},
-      towards/.style                   = {type=towards},
-      rotate/.style                    = {type=rotate},
-      R/.style                         = {type=R},
-      angles/.style                    = {type=angles},
-      R with nodes/.style              = {type=R with nodes},
-      diameter/.code                   = {},
-      arc/.code                        = {},
-      size/.code                       = {},
-      mark/.code                       = {},
-      mkpos/.code                      = {},
-      mksize/.code                     = {},
-      mkcolor/.code                    = {},
-      type/.default                    =  towards,
-      delta/.store in                  = \tkz at delta,
-      delta                            = 0,
-      /tkzdrawarc/.search also         = {/tikz}
-}  
-\def\tkzDrawArc{\pgfutil at ifnextchar[{\tkz at DrawArc}{\tkz at DrawArc[]}}
-\def\tkz at DrawArc[#1](#2,#3)(#4){% 
-\begingroup    
-\pgfqkeys{/tkzdrawarc}{#1} 
-\ifcase\tkz at numa%
-   \tkzDrawArcTowards[#1](#2,#3)(#4)  
-\or% 1
-   \tkzDrawArcRotate[#1](#2,#3)(#4)  
-\or% 2
-   \tkzDrawArcAngles[#1](#2,#3)(#4) 
-\or% 3
-   \tkzDrawArcRAngles[#1](#2,#3)(#4)
- \or% 4
-   \tkzDrawArcR[#1](#2,#3)(#4)  
-\fi    
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%  ARC    nodes        #2 center #3 first point last point #4
-% delta un peu plus à chaque extrémité 
-% example : \tkzDrawArc(A,B)(C)      
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcTowards{\pgfutil at ifnextchar[{\tkz at DrawArcN}{\tkz at DrawArcN[]}} 
-\def\tkz at DrawArcN[#1](#2,#3)(#4){%
-\begingroup
-  \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius}
-  \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
-  \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle}
-  \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstAngle,\tkz at SecondAngle) 
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%    nodes                 #2 center #3 first point rotate #4 with Angle
-% delta un peu plus à chaque extrémité 
-% tkzDrawArcRotate(O,A)(60)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRotate{\pgfutil at ifnextchar[{\tkz at DrawArcRotate}{%
-                                           \tkz at DrawArcRotate[]}}  
-\def\tkz at DrawArcRotate[#1](#2,#3)(#4){%
-\begingroup
-  \tkzCalcLength(#2,#3)     \tkzGetLength{tkz at radius} 
-  \tkzFindSlopeAngle(#2,#3)   \tkzGetAngle{tkz at FirstA}
-  \pgfmathadd{\tkz at FirstA}{#4}
-  \edef\tkz at SecondA{\pgfmathresult}
-    \pgfmathgreaterthan{#4}{0}
-  \ifdim\pgfmathresult pt=1 pt\relax%
-    \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstA,\tkz at SecondA)
-  \else
-    \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at SecondA,\tkz at FirstA)
-  \fi
-  \endgroup
-}   
-%<--------------------------------------------------------------------------–>
-%  deux angles 
-% \tkzDrawArcAngles(O,A)(0,60)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcAngles{\pgfutil at ifnextchar[{\tkz at DrawArcAngles}{%
-                                           \tkz at DrawArcAngles[]}}  
-\def\tkz at DrawArcAngles[#1](#2,#3)(#4,#5){%
-\begingroup
-    \tkzCalcLength(#2,#3) 
-    \tkz at DrawArcRAngles[#1](#2,\tkzLengthResult pt)(#4,#5)      
-\endgroup
-}   
-%<--------------------------------------------------------------------------–>
-%    Degree      #2 center #4 - #3 radius from #5 (degree) to #6(degree) 
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcRwithNodes{\pgfutil at ifnextchar[{\tkz at DrawArcRwithNodes}{%
-                                            \tkz at DrawArcRwithNodes[]}}  
-\def\tkz at DrawArcRwithNodes[#1](#2,#3,#4)(#5,#6){%
-\begingroup
-  \tkzCalcLength(#3,#4)  
-  \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz at FirstAngle}  
-  \tkzFindSlopeAngle(#2,#6)\tkzGetAngle{tkz at SecondAngle}
-  \tkz at DrawArcRAngles[#1](#2,\tkzLengthResult)(\tkz at FirstAngle,\tkz at SecondAngle)
-\endgroup   
-} 
-%<--------------------------------------------------------------------------–>
-%    Nodes R  #2 center #3 radius en cm  from #4(node) to #5(node)
-%  \tkzDrawArcR(O,2 cm)(A,B)
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawArcR{\pgfutil at ifnextchar[{\tkz at DrawArcR}{\tkz at DrawArcR[]}} 
-\def\tkz at DrawArcR[#1](#2,#3)(#4,#5){%
-\begingroup
-   \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at FirstAngle}  
-   \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz at SecondAngle} 
-   \tkz at DrawArcRAngles[#1](#2,#3)(\tkz at FirstAngle,\tkz at SecondAngle)  
-\endgroup   
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% #1 center #2 radius #4 first angle (degree) #5 second angle  (degree)  
-% angles  0 .. 180 or -180 .. 0
-%<--------------------------------------------------------------------------–>
-% example : \tkzDrawArc(A,2 cm)(30,90)    
-\def\tkzDrawArcRAngles{\pgfutil at ifnextchar[{\tkz at DrawArcRAngles}{%
-                                            \tkz at DrawArcRAngles[]}} 
-\def\tkz at DrawArcRAngles[#1](#2,#3)(#4,#5){% 
- \begingroup    
-  \pgfmathparse{#4}\edef\tkz at FirstAngle{\pgfmathresult}% 
-  \pgfmathparse{#5}\edef\tkz at SecondAngle{\pgfmathresult}%  
-  \pgfmathgreaterthan{\tkz at FirstAngle}{0}   
-  \ifdim\pgfmathresult pt=1 pt\relax%  
-    \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
-    \ifdim\pgfmathresult pt=1 pt\relax%
-      \pgfmathsubtract{\tkz at FirstAngle}{360}
-      \edef\tkz at FirstAngle{\pgfmathresult}%
-  \fi 
- \else
-     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
-    \ifdim\pgfmathresult pt=1 pt\relax%
-      \pgfmathadd{\tkz at SecondAngle}{360}
-      \edef\tkz at SecondAngle{\pgfmathresult}%
-  \fi 
- \fi
- \pgfmathsubtract{\tkz at FirstAngle}{\tkz at delta}
- \edef\tkz at FirstAngle{\pgfmathresult}%
- \pgfmathadd{\tkz at SecondAngle}{\tkz at delta}
- \edef\tkz at SecondAngle{\pgfmathresult} 
-      \draw[shift = {(#2)},arc style,/tkzdrawarc/.cd,#1]%
-       (\tkz at FirstAngle:#3) arc (\tkz at FirstAngle:\tkz at SecondAngle:#3);
-\endgroup  
-}
-%<--------------------------------------------------------------------------–>
-
-\makeatother
-\endinput
\ No newline at end of file

Added: 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	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,171 @@
+% tkz-obj-eu-axesmin.tex    
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-axesmin}   
+
+\makeatletter
+\newif\ifinteger
+\def\removedot#1.{#1}
+\newcommand\tkzgetinteger[1]{\expandafter\tkz at getinteger#1.\@nil}
+\def\tkz at getinteger#1.#2\@nil{%
+  \ifx\empty#2\empty
+    \integertrue
+  \else
+  \ifnum\removedot#2=0   
+    \integertrue
+   \else 
+     \integerfalse
+   \fi
+  \fi
+}
+
+%<--------------------------------------------------------------------------–>
+%              Setup   axe
+%<--------------------------------------------------------------------------–>
+\pgfkeys{tkzaxis/.cd,
+      line width/.code      = \xdef\tkz at sua@lw{#1},
+      color/.code           = \xdef\tkz at sua@color{#1},
+      tickwd/.code          = \xdef\tkz at sua@tickwd{#1},
+      ticka/.code           = \xdef\tkz at sua@ticka{#1},
+      tickb/.code           = \xdef\tkz at sua@tickb{#1},
+      line width            = \tkz at init@lw,
+      color                 = \tkz at init@color,
+      tickwd                = \tkz at init@tickwd,
+      ticka                 = \tkz at init@ticka,
+      tickb                 = \tkz at init@tickb
+} 
+
+\def\tkzSetUpAxis{\pgfutil at ifnextchar[{\tkz at SetUpAxis}{\tkz at SetUpAxis[]}} 
+\def\tkz at SetUpAxis[#1]{%
+\begingroup
+\pgfqkeys{/tkzaxis}{#1}
+\global\let\tkz at init@lw\tkz at sua@lw
+\global\let\tkz at init@gradsize\tkz at sua@gradsize 
+\global\let\tkz at init@color\tkz at sua@color 
+\global\let\tkz at init@tickwd\tkz at sua@tickwd 
+\global\let\tkz at init@ticka\tkz at sua@ticka 
+\global\let\tkz at init@tickb\tkz at sua@tickb  
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                 tkzDrawX      todo améliorer les unités
+% sans doute à revoir loop from 0 to i then calcul dans la boucle de la position
+% et de l'affichage
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+  /tkzdrawX/.cd,
+  color/.store in            = \tkz at X@color,
+  label/.store in            = \tkz at X@label,
+  right space/.store in      = \tkz at axe@rxspace,
+  left space/.store in       = \tkz at axe@lxspace,
+  step/.code                 = {\edef\tkz at posnext{\fpeval{#1}}},
+  color                      = \tkz at init@color,
+  label                      = \tkz at init@xlabel,
+  step                       = \tkz at init@xstep,
+  right space                = \tkz at init@rightspace, %???
+  left space                 = \tkz at init@leftspace,
+  noticks/.is if             = tkz at X@noticks,
+  noticks/.default           = true,
+  noticks                    = true,
+  tickwd/.store in           = \tkz at X@tickwd,
+  tickup/.store in           = \tkz at X@tickup,
+  tickdn/.store in           = \tkz at X@tickdn,
+  tickwd                     = \tkz at init@tickwd,
+  tickup                     = \tkz at init@ticka,
+  tickdn                     = \tkz at init@tickb,
+   /tkzdrawX/.search also={/tikz}, 
+  }
+
+\def\tkzDrawX{\pgfutil at ifnextchar[{\tkz at DrawX}{\tkz at DrawX[]}}
+\def\tkz at DrawX[#1]{
+\begingroup%
+\pgfqkeys{/tkzdrawX}{#1}
+\edef\tkz at posmax{\fpeval{trunc(\tkz at xb,\tkz at init@xdec)}}
+\edef\tkz at posmin{\fpeval{trunc(\tkz at xa,\tkz at init@xdec)}}
+\edef\tkz at xbsup{\fpeval{\tkz at xb+\tkz at axe@rxspace}}
+\edef\tkz at xainf{\fpeval{\tkz at xa-\tkz at axe@lxspace}}
+\path (\tkz at xainf,0)--(\tkz at xbsup,0) node(tkz at xline){};
+\draw[xaxe style,
+      color = \tkz at X@color, 
+      /tkzdrawX/.cd, #1] (\tkz at xainf,0)--(\tkz at xbsup,0)
+                        node[ xlabel style, 
+                           /tkzdrawX/.cd, 
+                          #1]{\tkz at X@label};
+ \iftkz at X@noticks
+ \else
+  \edef\tkz at posmax{\fpeval{trunc(\tkz at posmax,\tkz at init@xdec)}}   
+  \edef\tkz at posnext{\fpeval{\tkz at posnext/\tkz at init@xstep+\tkz at posmin}}
+     \foreach \pos in {\tkz at posmin,...,\tkz at posmax}{%
+         \edef\tkz at pos{\fpeval{\pos*1}}% ???
+         \draw[ color         = \tkz at X@color, line width    = \tkz at X@tickwd,
+                shift         = {(\tkz at pos,0)}]%
+                (0pt,\tkz at X@tickup)--(0pt,-\tkz at X@tickdn);
+           }
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%                 tkzDrawY      todo améliorer les unités
+%<--------------------------------------------------------------------------–>
+\pgfkeys{%
+  /tkzdrawY/.cd,
+  color/.store in            = \tkz at Y@color,
+  label/.store in            = \tkz at Y@label, 
+  up space/.store in         = \tkz at axe@uyspace, 
+  down space/.store in       = \tkz at axe@dyspace,
+  step/.code                 = {\edef\tkz at posnext{\fpeval{#1}}},  
+  color                      = \tkz at init@color,
+  label                      = \tkz at init@ylabel,
+  step                       = \tkz at init@ystep,
+  up space                   = \tkz at init@upspace,
+  down space                 = \tkz at init@downspace,
+  noticks/.is if             = tkz at Y@noticks,
+  noticks/.default           = true,
+  noticks                    = true,
+  tickwd/.store in           = \tkz at Y@tickwd,
+  ticklt/.store in           = \tkz at Y@ticklt,
+  tickrt/.store in           = \tkz at Y@tickrt,
+  tickwd                     = \tkz at init@tickwd,
+  ticklt                     = \tkz at init@tickb,
+  tickrt                     = \tkz at init@ticka,
+   /tkzdrawY/.search also={/tikz},    
+        }
+                                     
+\def\tkzDrawY{\pgfutil at ifnextchar[{\tkz at DrawY}{\tkz at DrawY[]}}
+\def\tkz at DrawY[#1]{%
+\begingroup
+\pgfkeys{/tkzdrawY/.cd,step = \tkz at init@ystep}
+\pgfqkeys{/tkzdrawY}{#1}
+\edef\tkz at posmax{\fpeval{trunc(\tkz at yb,\tkz at init@ydec)}}
+\edef\tkz at posmin{\fpeval{trunc(\tkz at ya,\tkz at init@ydec)}}
+\edef\tkz at ybsup{\fpeval{\tkz at yb+\tkz at axe@uyspace}}
+\edef\tkz at yainf{\fpeval{\tkz at ya-\tkz at axe@dyspace}}
+\path (0,\tkz at yainf)--(0,\tkz at ybsup) node(tkz at yline){};
+\draw[color = \tkz at Y@color,
+      yaxe style,/tkzdrawY/.cd,#1] (0,\tkz at yainf)--(0,\tkz at ybsup)
+      node[ylabel style,/tkzdrawY/.cd,#1]{\tkz at Y@label};
+ \iftkz at Y@noticks
+ \else 
+    \edef\tkz at posmax{\fpeval{trunc(\tkz at posmax,\tkz at init@ydec)}}    
+    \edef\tkz at posnext{\fpeval{\tkz at posnext/\tkz at init@ystep+\tkz at posmin}}
+   \foreach \tkz at pos in {\tkz at posmin,\tkz at posnext,...,\tkz at posmax}{% 
+     \draw[color = \tkz at Y@color,
+           line width = \tkz at Y@tickwd,
+           shift       = {(0,\tkz at pos)}]% 
+            (\tkz at Y@tickrt,0pt)--(-\tkz at Y@ticklt,0pt);}
+    
+ \fi        
+\endgroup}
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-axesmin.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-circles-by.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles-by.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,161 @@
+% tkz-obj-eu-circles.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.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}},
+  orthogonal from/.code args     = {#1}{                 \def\tkz at numcby{5}
+                                                         \def\tkz at ptfrom{#1}}, 
+  orthogonal through/.code args  = {#1 and #2}{          \def\tkz at numcby{6}
+                                                         \def\tkz at ptone{#1}
+                                                         \def\tkz at pttwo{#2}},
+  inversion/.code args={center #1 through #2}{           \def\tkz at numcby{7}
+                                                         \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
+  \tkzDefOrthogonalCircle(#2,\tkz at ptfrom) 
+  \or% 6
+  \tkzDefOrthoThroughCircle(#2,\tkz at ptone,\tkz at pttwo)
+  \or% 7
+  \tkzDefInversionCircle(#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
+}
+%<--------------------------------------------------------------------------–>
+\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@@CalcLength(tkzPointResult,#3){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzDefInversionCircle(#1,#2,#3,#4){%  
+\begingroup
+   \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz at p1}{tkz at p2}
+   \tkzUInversePoint(#3,#4)(tkz at p1)
+    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(tkz at p2)
+    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+% \def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){%
+% \begingroup
+%    \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz at p1}{tkz at p2}
+%    \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz at p1)
+%    \tkzUCSym(\tkzcenter)(tkzPointResult)
+%    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+%    \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz at p2)
+%    \tkzUCSym(\tkzcenter)(tkzPointResult)
+%    \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-circles-by.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-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-circles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-circles.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-circles.tex} 
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-circles.tex} 
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %            tkzCircle center and one point 
@@ -42,7 +39,7 @@
                                                    \def\tkz at numc{8}},
       spieker/.code                  = \def\tkz at numc{9}, 
       K/.code                        = \def\tkz at koeff{#1},
-      K                       =  1,
+      K                              =  1,
       through
       } 
 \def\tkzDefCircle{\pgfutil at ifnextchar[{\tkz at DefCircle}{\tkz at DefCircle[]}}
@@ -72,13 +69,40 @@
      \fi    
 \endgroup
 }
+%for compatibility
 %<--------------------------------------------------------------------------–>
+\def\tkzDefCircleR(#1,#2){% 
+\begingroup 
+   \edef\tkzLengthResult{\fpeval{round(#2,5)}}
+   \global\let\tkzLengthResult\tkzLengthResult
+   \tkzRenamePoint(#1){tkzPointResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%              Through  Circle center and point
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleThrough(#1,#2){% 
+\begingroup
+  \tkz@@CalcLengthcm(#1,#2){tkzLengthResult}
+  \tkzRenamePoint(#1){tkzPointResult}
+\endgroup
+}    
+%<--------------------------------------------------------------------------–>
+%              Diameter Circle
+%<--------------------------------------------------------------------------–>
+\def\tkzDefCircleD(#1,#2){% 
+\begingroup
+  \tkzDefMidPoint(#1,#2)
+  \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
 %              Circum Circle
 %<--------------------------------------------------------------------------–>
 \def\tkzDefCircumCircle(#1,#2,#3){%
 \begingroup
    \tkzCircumCenter(#1,#2,#3)
-   \tkzCalcLength(#1,tkzPointResult) 
+   \tkz@@CalcLengthcm(#1,tkzPointResult){tkzLengthResult}%3.06 add [cm]
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
@@ -90,7 +114,7 @@
   \pgfnodealias{tkz at incenter}{tkzPointResult}
   \tkzUProjection(#1,#3)(tkz at incenter) 
   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-  \tkzCalcLength(tkzPointResult,tkz at incenter)
+  \tkz@@CalcLengthcm(tkzPointResult,tkz at incenter){tkzLengthResult}
   \pgfnodealias{tkzPointResult}{tkz at incenter}
   \pgfnodealias{tkzFirstPointResult}{tkz at incenter}
 \endgroup
@@ -104,7 +128,7 @@
   \pgfnodealias{tkz at excenter}{tkzPointResult}
   \tkzUProjection(#1,#3)(tkz at excenter)
   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-  \tkzCalcLength(tkzPointResult,tkz at excenter)% for tkzGetLength
+  \tkz@@CalcLengthcm(tkzPointResult,tkz at excenter){tkzLengthResult}% for tkzGetLength
   \pgfnodealias{tkzPointResult}{tkz at excenter}
   \pgfnodealias{tkzFirstPointResult}{tkz at excenter}  
 \endgroup
@@ -128,7 +152,7 @@
  \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) 
- \tkzCalcLength(tkzPointResult,tkz at e1)
+ \tkz@@CalcLengthcm(tkzPointResult,tkz at e1){tkzLengthResult}
 \endgroup
 } 
 \let\tkzDefNinePointsCircle\tkzEulerCircle%
@@ -139,7 +163,7 @@
    \tkzEulerCenter(#1,#2,#3)
    \pgfnodealias{eur at pta}{tkzPointResult}   
    \tkzDefMidPoint(#1,#2)  
-   \tkzCalcLength(eur at pta,tkzPointResult)
+   \tkz@@CalcLengthcm(eur at pta,tkzPointResult){tkzLengthResult}
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
@@ -152,7 +176,7 @@
   \tkz at VecK[\tkz at koeff/(\tkz at koeff-1)](#1,#2)   
   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
   \tkzDefMidPoint(tkzFirstPointResult,tkzSecondPointResult)
-  \tkzCalcLength(tkzPointResult,tkzFirstPointResult)
+  \tkz@@CalcLengthcm(tkzPointResult,tkzFirstPointResult){tkzLengthResult}
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
@@ -172,7 +196,7 @@
   \tkz at VecK[\tkz at koeff/(\tkz at koeff-1)](#2,#3) 
   \pgfnodealias{apo at ptb}{tkzPointResult} 
   \tkzDefMidPoint(apo at pta,apo at ptb)  
-  \tkzCalcLength(tkzPointResult,apo at pta)   
+  \tkz@@CalcLengthcm(tkzPointResult,apo at pta){tkzLengthResult}   
 \endgroup
 }   
 %<--------------------------------------------------------------------------–>
@@ -212,18 +236,18 @@
 \def\tkzDefOrthogonalCircle(#1,#2,#3){%   
 \begingroup
    \tkzTgtFromP(#1,#2)(#3)
-   \tkzCalcLength[cm](#1,tkzFirstPointResult)
+   \tkz@@CalcLengthcm(#1,tkzFirstPointResult){tkzLengthResult}
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
 \def\tkzDefOrthoThroughCircle(#1,#2,#3,#4){%  
 \begingroup
-  \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz at lnb}%
-	\edef\tkz at lnc{\fpeval{1/\tkz at lnb}}
+  \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)
-  \tkzCalcLength(tkzPointResult,#3)
+  \tkz@@CalcLength(tkzPointResult,#3){tkzLengthResult}
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
@@ -235,11 +259,33 @@
   \pgfnodealias{tkz at spka}{tkzPointResult}
   \tkzDefMidPoint(#1,#2)
   \tkzUProjection(#1,#2)(tkzPointResult)
-  \tkzCalcLength(tkz at spka,tkzPointResult)
+  \tkz@@CalcLength(tkz at spka,tkzPointResult){tkzLengthResult}
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
+\def\tkzDefInversionCircle(#1,#2,#3,#4){%  
+\begingroup
+   \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz at p1}{tkz at p2}
+   \tkzUInversePoint(#3,#4)(tkz at p1)
+    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
+    \tkzUInversePoint(#3,#4)(tkz at p2)
+    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzDefInversionNegativeCircle(#1,#2,#3,#4){%  
+\begingroup
+   \tkzInterLC(#3,#1)(#1,#2) \tkzGetPoints{tkz at p1}{tkz at p2}
+   \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz at p1)     
+   \tkzUCSym(\tkzcenter)(tkzPointResult)
+   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}   
+   \tkzUInversePoint(\tkzcenter,\tkzpoint)(tkz at p2)     
+   \tkzUCSym(\tkzcenter)(tkzPointResult)
+  \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
 %              End Def Circle
 %<--------------------------------------------------------------------------–>  
- \makeatother 
+\makeatother 
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-compass.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-compass.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c tkz-obj-eu-compass.tex}  
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-compass.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %  Author Alain Matthes  
@@ -27,21 +24,18 @@
 %                                Setup   Compass
 %<--------------------------------------------------------------------------–>
 \pgfkeys{tkzsucompass/.cd,
-	line width/.code   =     {\global\edef\tkz at compass@lw{#1}},
-	color/.code        =     {\global\edef\tkz at compass@color{#1}},
-	style/.code        =     {\global\edef\tkz at compass@style{#1}},
-	} 
+  line width/.store in   =      \tkz at compass@lw,
+  color/.store in        =      \tkz at compass@color,
+  style/.store in        =      \tkz at compass@style,
+  line width             =      \tkz at euc@compasswidth,
+  color                  =      \tkz at euc@compasscolor,
+  style                  =      \tkz at euc@compassstyle,
+   /tkzsucompass/.search also            = {/tikz,/tkzcompass}
+  } 
 %<--------------------------------------------------------------------------–>
-\def\tkzSetUpCompass{\pgfutil at ifnextchar[{\tkz at SetUpCompass}{% remove tkzActivOff 3.03
-                                          \tkz at SetUpCompass[]}}
+\def\tkzSetUpCompass{\pgfutil at ifnextchar[{\tkz at SetUpCompass}{\tkz at SetUpCompass[]}}
 %<--------------------------------------------------------------------------–>
 \def\tkz at SetUpCompass[#1]{% 
-\pgfkeys{tkzsucompass/.cd,
-	line width   = \tkz at euc@compasswidth,
-	color        = \tkz at euc@compasscolor,
-	style        = \tkz at euc@compassstyle,
- /tkzsucompass/.search also   		     = {/tikz}
-}  
 \pgfqkeys{/tkzsucompass}{#1}
 \tikzset{compass style/.style={color       = \tkz at compass@color,
                                line width  = \tkz at compass@lw,
@@ -59,31 +53,25 @@
 %                 style traits pleins
 
 %<--------------------------------------------------------------------------–> 
- \pgfkeys{
-    /tkzcompass/delta/.code      = {\def\tkz at delta{#1}},
-    /tkzcompass/length/.code     = {\def\tkz at length{#1}},
-    /tkzcompass/ratio/.code      = {\def\tkz at ratio{#1}},  
+ \pgfkeys{/tkzcompass/.cd,
+    delta/.store in      = \tkz at delta,
+    length/.store in     = \tkz at length,
+    length = 1,
+    delta  = 0,
     /tkzcompass/.unknown/.code   = {\let\searchname=\pgfkeyscurrentname
-                                    \pgfkeysalso{\searchname/.try=#1,
-                                  /tikz/\searchname/.retry=#1}}
+    \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}}
 }
                                         
 \def\tkzCompass{\pgfutil at ifnextchar[{\tkz at Compass}{\tkz at Compass[]}}
 \def\tkz at Compass[#1](#2,#3){%   
 \begingroup
-\pgfkeys{%
-  	tkzcompass/.cd,
-  	length = 1,
-  	delta  = 0,
-  	ratio  = .5
-  	}
 \pgfkeys{tkzcompass/.cd,#1}  
-\tkzCalcLength(#2,#3)\tkzGetLength{tkz at tempLen}  
+\tkz@@CalcLength(#2,#3){tkz at tempLen}  
 \ifnum\tkz at delta=0 %
    \pgfmathsetmacro{\tkz at delta}{min(deg(\tkz at length cm/ \tkz at tempLen pt),180)/2}
 \fi 
 \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at angle}%
-\draw[shift ={(#2)},/tkzcompass/.cd,compass style,#1]%
+\draw[shift ={(#2)},compass style,/tkzcompass/.cd,#1]%
     (\tkz at angle-\tkz at delta:\tkz at tempLen pt)%
   arc (\tkz at angle-\tkz at delta:\tkz at angle+\tkz at delta:\tkz at tempLen pt);
 \endgroup}
@@ -108,4 +96,4 @@
 }%
 
 \makeatother
-\endinput
\ No newline at end of file
+\endinput 
\ No newline at end of file

Added: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,554 @@
+% tkz-tool-eu-angles.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tool-eu-angles.tex} 
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%                    tkzSetUpArc  
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzsetuparc/.cd,
+      color/.store in        =    \tkz at arc@color,
+      line width/.store in   =    \tkz at arc@lw,
+      style/.store in        =    \tkz at arc@style,
+      line width             =    \tkz at euc@linewidth,
+      color                  =    \tkz at euc@linecolor,
+      style                  =    \tkz at euc@linestyle,
+   /tkzsetuparc/.search also = {/tikz,/tkzcompass},
+ } 
+\def\tkzSetUpArc{\pgfutil at ifnextchar[{\tkz at SetUpArc}{\tkz at SetUpArc[]}}
+\def\tkz at SetUpArc[#1]{%
+\pgfqkeys{/tkzsetuparc}{#1}
+\tikzset{arc style/.style={color          = \tkz at arc@color,
+                           line width     = \tkz at arc@lw,
+                           style          = \tkz at arc@style
+                           }}
+}% end setup 
+%<--------------------------------------------------------------------------->
+\newdimen\tkz at arcsize% from julian julian at d-and-j.net
+\newdimen\tkz at fillsize
+%<-------------------------------------------------------------------------->
+
+%<------------------------------  Arcs -------------------------------------–
+% options : delta 
+% \def\tkz at delta{0}
+% \tikzset{arc style/.style={#1}}
+% \pgfkeys{/tikz/.cd,delta/.code={\def\tkz at delta{#1}}}
+\gdef\tkz at numa{0}
+\pgfkeys{/tkzdrawarc/.cd,
+      type/.is choice,
+      type/towards/.code               = \def\tkz at numa{0},
+      type/rotate/.code                = \def\tkz at numa{1},
+      type/angles/.code                = \def\tkz at numa{2}, 
+      type/R/.code                     = \def\tkz at numa{3},
+      type/R with nodes/.code          = \def\tkz at numa{4},
+      towards/.style                   = {type=towards},
+      rotate/.style                    = {type=rotate},
+      R/.style                         = {type=R},
+      angles/.style                    = {type=angles},
+      R with nodes/.style              = {type=R with nodes},
+      diameter/.code                   = {},
+      arc/.code                        = {},
+      size/.code                       = {},
+      mark/.code                       = {},
+      mkpos/.code                      = {},
+      mksize/.code                     = {},
+      mkcolor/.code                    = {},
+      type/.default                    =  towards,
+      delta/.store in                  = \tkz at delta,
+      delta                            = 0,
+      /tkzdrawarc/.search also         = {/tikz}
+}  
+\def\tkzDrawArc{\pgfutil at ifnextchar[{\tkz at DrawArc}{\tkz at DrawArc[]}}
+\def\tkz at DrawArc[#1](#2,#3)(#4){% 
+\begingroup    
+\pgfqkeys{/tkzdrawarc}{#1} 
+\ifcase\tkz at numa%
+   \tkzDrawArcTowards[#1](#2,#3)(#4)  
+\or% 1
+   \tkzDrawArcRotate[#1](#2,#3)(#4)  
+\or% 2
+   \tkzDrawArcAngles[#1](#2,#3)(#4) 
+\or% 3
+   \tkzDrawArcRAngles[#1](#2,#3)(#4)
+ \or% 4
+   \tkzDrawArcR[#1](#2,#3)(#4)  
+\fi    
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%  ARC    nodes        #2 center #3 first point last point #4
+% delta un peu plus à chaque extrémité 
+% example : \tkzDrawArc(A,B)(C)      
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcTowards{\pgfutil at ifnextchar[{\tkz at DrawArcN}{\tkz at DrawArcN[]}} 
+\def\tkz at DrawArcN[#1](#2,#3)(#4){%
+\begingroup
+  \tkz@@CalcLength(#2,#3){tkz at radius}
+  \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
+  \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle}
+  \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstAngle,\tkz at SecondAngle) 
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%    nodes                 #2 center #3 first point rotate #4 with Angle
+% delta un peu plus à chaque extrémité 
+% tkzDrawArcRotate(O,A)(60)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcRotate{\pgfutil at ifnextchar[{\tkz at DrawArcRotate}{%
+                                           \tkz at DrawArcRotate[]}}  
+\def\tkz at DrawArcRotate[#1](#2,#3)(#4){%
+\begingroup
+  \tkz@@CalcLength(#2,#3){tkz at radius} 
+  \tkzFindSlopeAngle(#2,#3)   \tkzGetAngle{tkz at FirstA}
+  \pgfmathadd{\tkz at FirstA}{#4}
+  \edef\tkz at SecondA{\pgfmathresult}
+    \pgfmathgreaterthan{#4}{0}
+  \ifdim\pgfmathresult pt=1 pt\relax%
+    \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstA,\tkz at SecondA)
+  \else
+    \tkz at DrawArcRAngles[#1](#2,\tkz at radius pt)(\tkz at SecondA,\tkz at FirstA)
+  \fi
+  \endgroup
+}   
+%<--------------------------------------------------------------------------–>
+%  deux angles 
+% \tkzDrawArcAngles(O,A)(0,60)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcAngles{\pgfutil at ifnextchar[{\tkz at DrawArcAngles}{%
+                                           \tkz at DrawArcAngles[]}}  
+\def\tkz at DrawArcAngles[#1](#2,#3)(#4,#5){%
+\begingroup
+    \tkz@@CalcLength(#2,#3){tkzLengthResult}
+    \tkz at DrawArcRAngles[#1](#2,\tkzLengthResult pt)(#4,#5)      
+\endgroup
+}   
+%<--------------------------------------------------------------------------–>
+%    Degree      #2 center #4 - #3 radius from #5 (degree) to #6(degree) 
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcRwithNodes{\pgfutil at ifnextchar[{\tkz at DrawArcRwithNodes}{%
+                                            \tkz at DrawArcRwithNodes[]}}  
+\def\tkz at DrawArcRwithNodes[#1](#2,#3,#4)(#5,#6){%
+\begingroup
+  \tkz@@CalcLength(#3,#4){tkzLengthResult}  
+  \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz at FirstAngle}  
+  \tkzFindSlopeAngle(#2,#6)\tkzGetAngle{tkz at SecondAngle}
+  \tkz at DrawArcRAngles[#1](#2,\tkzLengthResult)(\tkz at FirstAngle,\tkz at SecondAngle)
+\endgroup   
+} 
+%<--------------------------------------------------------------------------–>
+%    Nodes R  #2 center #3 radius en cm  from #4(node) to #5(node)
+%  \tkzDrawArcR(O,2)(A,B)
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawArcR{\pgfutil at ifnextchar[{\tkz at DrawArcR}{\tkz at DrawArcR[]}} 
+\def\tkz at DrawArcR[#1](#2,#3)(#4,#5){%
+\begingroup
+   \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at FirstAngle}  
+   \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz at SecondAngle} 
+   \tkz at DrawArcRAngles[#1](#2,#3)(\tkz at FirstAngle,\tkz at SecondAngle)  
+\endgroup   
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% #1 center #2 radius #4 first angle (degree) #5 second angle  (degree)  
+% angles  0 .. 180 or -180 .. 0
+%<--------------------------------------------------------------------------–>
+% example : \tkzDrawArc(A,2)(30,90)    
+\def\tkzDrawArcRAngles{\pgfutil at ifnextchar[{\tkz at DrawArcRAngles}{%
+                                            \tkz at DrawArcRAngles[]}} 
+\def\tkz at DrawArcRAngles[#1](#2,#3)(#4,#5){% 
+ \begingroup    
+  \pgfmathparse{#4}\edef\tkz at FirstAngle{\pgfmathresult}% 
+  \pgfmathparse{#5}\edef\tkz at SecondAngle{\pgfmathresult}%  
+  \pgfmathgreaterthan{\tkz at FirstAngle}{0}   
+  \ifdim\pgfmathresult pt=1 pt\relax%  
+    \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathsubtract{\tkz at FirstAngle}{360}
+      \edef\tkz at FirstAngle{\pgfmathresult}%
+  \fi 
+ \else
+     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathadd{\tkz at SecondAngle}{360}
+      \edef\tkz at SecondAngle{\pgfmathresult}%
+  \fi 
+ \fi
+ \pgfmathsubtract{\tkz at FirstAngle}{\tkz at delta}
+ \edef\tkz at FirstAngle{\pgfmathresult}%
+ \pgfmathadd{\tkz at SecondAngle}{\tkz at delta}
+ \edef\tkz at SecondAngle{\pgfmathresult} 
+      \draw[shift = {(#2)},arc style,/tkzdrawarc/.cd,#1]%
+       (\tkz at FirstAngle:#3) arc (\tkz at FirstAngle:\tkz at SecondAngle:#3);
+\endgroup  
+}
+%<--------------------------------------------------------------------------–>
+\pgfkeys{
+  /@tkzmarkarc/.cd,
+     pos/.store in       = \tkz at mkarcpos,
+     color/.store in     = \tkz at mkcolor,
+     mark/.store in      = \tkz at markarcseg,
+     size/.store in      = \tkz at mkarcsize,
+     color               = teal!20,
+     size                = 4pt,
+     pos                 = .5,
+     mark                = |,
+    /@tkzmarkarc/.search also={/tikz},
+}
+\def\tkzMarkArc{\pgfutil at ifnextchar[{\tkz at MarkArc}{\tkz at MarkArc[]}}   
+\def\tkz at MarkArc[#1](#2,#3,#4){% 
+\begingroup
+ \pgfqkeys{/@tkzmarkarc}{#1} \def\tkz at mymarkarc{\pgfsetplotmarksize{\tkz at mkarcsize}\pgfuseplotmark{\tkz at markarcseg}}
+  \tkz@@CalcLength(#2,#3){tkz at radius}
+  \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
+  \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle}
+  \pgfmathparse{\tkz at FirstAngle}\edef\tkz at FirstAngle{\pgfmathresult}% 
+  \pgfmathparse{\tkz at SecondAngle}\edef\tkz at SecondAngle{\pgfmathresult}%  
+  \pgfmathgreaterthan{\tkz at FirstAngle}{0}   
+  \ifdim\pgfmathresult pt=1 pt\relax%  
+    \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathsubtract{\tkz at FirstAngle}{360}
+      \edef\tkz at FirstAngle{\pgfmathresult}%
+  \fi 
+ \else
+     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathadd{\tkz at SecondAngle}{360}
+      \edef\tkz at SecondAngle{\pgfmathresult}%
+  \fi 
+ \fi
+ \pgfmathsubtract{\tkz at FirstAngle}{\tkz at delta}
+ \edef\tkz at FirstAngle{\pgfmathresult}%
+ \pgfmathadd{\tkz at SecondAngle}{\tkz at delta}
+ \edef\tkz at SecondAngle{\pgfmathresult} 
+      \begin{scope}[decoration={markings,
+        mark=at position \tkz at mkarcpos with {\tkz at mymarkarc}}]     
+        \path[shift = {(#2)},\tkz at mkcolor,/@tkzmarkarc/.cd,#1,postaction={decorate}]%
+         (\tkz at FirstAngle:\tkz at radius pt) arc (\tkz at FirstAngle:\tkz at SecondAngle:\tkz at radius pt);
+      \end{scope}
+\endgroup 
+}
+
+\def\tkzLabelArc{\pgfutil at ifnextchar[{\tkz at LabelArc}{\tkz at LabelArc[]}}
+\def\tkz at LabelArc[#1](#2,#3,#4)#5{%
+\begingroup
+ \pgfqkeys{/@tkzmarkarc}{#1}
+  \tkz@@CalcLength(#2,#3){tkz at radius}
+  \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
+  \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle}
+  \pgfmathparse{\tkz at FirstAngle}\edef\tkz at FirstAngle{\pgfmathresult}% 
+  \pgfmathparse{\tkz at SecondAngle}\edef\tkz at SecondAngle{\pgfmathresult}%  
+  \pgfmathgreaterthan{\tkz at FirstAngle}{0}   
+  \ifdim\pgfmathresult pt=1 pt\relax%  
+    \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathsubtract{\tkz at FirstAngle}{360}
+      \edef\tkz at FirstAngle{\pgfmathresult}%
+  \fi 
+ \else
+     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+    \ifdim\pgfmathresult pt=1 pt\relax%
+      \pgfmathadd{\tkz at SecondAngle}{360}
+      \edef\tkz at SecondAngle{\pgfmathresult}%
+  \fi 
+ \fi
+ \pgfmathsubtract{\tkz at FirstAngle}{\tkz at delta}
+ \edef\tkz at FirstAngle{\pgfmathresult}%
+ \pgfmathadd{\tkz at SecondAngle}{\tkz at delta}
+ \edef\tkz at SecondAngle{\pgfmathresult} 
+      \begin{scope}[decoration={markings,
+        mark=at position \tkz at mkarcpos with \node{#5};}]
+        \path[shift = {(#2)},/@tkzmarkarc/.cd,#1,postaction={decorate}]%
+  (\tkz at FirstAngle:\tkz at radius pt) arc (\tkz at FirstAngle:\tkz at SecondAngle:\tkz at radius pt);
+      \end{scope}
+\endgroup 
+}
+%<--------------------------------------------------------------------------->
+%                       tkzDrawArcRAN                                        >
+%<--------------------------------------------------------------------------->
+\def\tkzDrawArcRAN[#1](#2,#3)(#4,#5){% 
+\begingroup 
+    \draw[shift = {(#2)},/tkzdrawarc/.cd,#1] (#4:#3) arc (#4:#5:#3); 
+\endgroup  
+}
+%<--------------- tkzPathArcRAN ----------------------------------
+\def\tkzPathArcRAN[#1](#2,#3)(#4,#5){% 
+\begingroup     
+    \path[shift = {(#2)},/tkzdrawarc/.cd,#1] (#4:#3) arc (#4:#5:#3); 
+\endgroup  
+}
+%<--------------------------------------------------------------------------->
+%       Mark an angle modi 3.03 suppression de \tkz at mksize,
+%<--------------------------------------------------------------------------->
+%                \tkzMarkAngle(B, A, C)
+%
+% Marque d'angle
+% arc de cercle (simple/double/triple) et marque d'églité.
+%
+% Par défaut: 
+%                 arc       = simple
+%                 size     = 1cm (rayon de l'arc)
+%                 style traits pleins
+%                 mkpos ?  position: 0.5 (position de la marque)
+%                 mark rien du tout (ignoré si type est utilisé)
+%
+% Paramètres (optionnels)
+%             arc     : l, ll, lll
+%             mksize  : 1cm
+%             gap     : 3pt
+%             dist ?
+%             style   : type de traits
+%             position: 0.5
+%             mark    : none  , |, ||,|||, z, s, x, o, oo mais tous les 
+%  % symboles de tikz sont permis
+%<------------------------- Label on angle -------------------------------->
+\def\tkz at arcsimple{l} 
+\def\tkz at arcdouble{ll}
+\def\tkz at arctriple{lll} 
+
+%\tikzset{lbstyle/.style = {color=\tkz at mainlinecolor}}
+
+\pgfkeys{/tkzmkangle/.cd,
+      arc/.estore in          = \tkz at arc,
+      size/.store in          = \tkz at size,
+      mark/.store in          = \tkz at markang,
+      mkpos/.estore in        = \tkz at mkpos,
+      mksize/.store in        = \tkz at mksize,
+      mkcolor/.store in       = \tkz at mkcolor,
+      arc                     = l,
+      size                    = 1,
+      mark                    = none,
+      mksize                  = 4pt,
+      mkcolor                 = black,
+      mkpos                   = 0.5,
+  /tkzmkangle/.search also={/tikz}   
+}                        
+\def\tkzMarkAngle{\pgfutil at ifnextchar[{\tkz at MarkAngle}{\tkz at MarkAngle[]}}   
+\def\tkz at MarkAngle[#1](#2,#3,#4){%
+\begingroup
+\pgfqkeys{/tkzmkangle}{#1}
+\tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
+\tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
+\tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
+
+% les marques, aucune si mktype = none
+% add cm after tkz at size !! 01/2022
+\def\tkz at mymark{\pgfsetplotmarksize{\tkz at mksize}\pgfuseplotmark{\tkz at markang}}
+% draw the arcs
+\begin{scope}[decoration= {markings,
+                        mark=at position \tkz at mkpos with {\tkz at mymark}}]
+  \ifx\tkz at arc\tkz at arcsimple
+    \tkzDrawArcRAN[#1,fill=none]%
+    (#3,\tkz at size)(\tkz at FirstAngle,\tkz at SecondAngle)%
+    \tkzPathArcRAN[\tkz at mkcolor,postaction={decorate}]%
+    (#3,\tkz at size)(\tkz at FirstAngle,\tkz at SecondAngle)
+  \else
+    \ifx\tkz at arc\tkz at arcdouble     
+     \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size cm-2.5\pgflinewidth)%
+            (\tkz at FirstAngle,\tkz at SecondAngle) 
+       \tkzPathArcRAN[\tkz at mkcolor,postaction={decorate}]%
+           (#3,\tkz at size cm)(\tkz at FirstAngle,\tkz at SecondAngle)%
+     \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size cm+2.5\pgflinewidth)%
+                     (\tkz at FirstAngle,\tkz at SecondAngle)% 
+    \else 
+       \ifx\tkz at arc\tkz at arctriple
+          \tkzDrawArcRAN[#1,fill=none]%
+          (#3,\tkz at size cm)(\tkz at FirstAngle,\tkz at SecondAngle)% 
+          \tkzPathArcRAN[\tkz at mkcolor,postaction={decorate}]%
+          (#3,\tkz at size cm)(\tkz at FirstAngle,\tkz at SecondAngle)%             
+          \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size cm-5\pgflinewidth)%
+                    (\tkz at FirstAngle,\tkz at SecondAngle)%
+          \tkzDrawArcRAN[#1,fill=none](#3,\tkz at size cm+5\pgflinewidth)%
+                    (\tkz at FirstAngle,\tkz at SecondAngle)%   
+       \fi
+     \fi
+  \fi
+\end{scope}
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+% multiple
+\def\tkz at multiMA#1 #2\@nil{%
+ \protected at edef\tkz at temp{
+   \noexpand \tkzMarkAngle[\tkz at optma](#1)}\tkz at temp%    
+   \def\tkz at nextArg{#2}%
+   \ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+   \fi
+   \next#2\@nil
+}
+%<--------------------------------------------------------------------------->
+\def\tkzMarkAngles{\pgfutil at ifnextchar[{\tkz at MarkAngles}{\tkz at MarkAngles[]}}   
+\def\tkz at MarkAngles[#1](#2){% 
+\xdef\tkz at optma{#1} 
+  \begingroup
+   \let\next\tkz at multiMA
+   \next#2 \@nil %    
+\endgroup 
+} 
+% fin de \tkzMarkAngle
+
+%<--------------------------------------------------------------------------->
+%                        FillAngle
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzFill/.cd,
+    size/.store in        = \tkz at size,
+    size                  = 1 cm,
+    /tkzFill/.search also = {/tikz}
+  } 
+
+\def\tkzFillAngle{\pgfutil at ifnextchar[{\tkz at FillAngle}{\tkz at FillAngle[]}}   
+\def\tkz at FillAngle[#1](#2,#3,#4){% 
+\begingroup
+\pgfqkeys{/tkzFill}{#1}   
+  \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}   
+  \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}   
+  \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
+    \path[shift  = {(#3)},fill=\tkz at euc@linecolor!10,/tkzFill/.cd,#1]%
+          (#3) -- (\tkz at FirstAngle:\tkz at size) arc%
+          (\tkz at FirstAngle:\tkz at SecondAngle:\tkz at size)--cycle;
+\endgroup 
+}
+%<--------------------------------------------------------------------------->
+% multiple
+\def\tkz at multiFA#1 #2\@nil{\protected at edef\tkz at temp{%
+   \noexpand \tkzFillAngle[\tkz at optfa](#1)}%
+   \tkz at temp%    
+   \def\tkz at nextArg{#2}%
+   \ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+   \fi
+   \next#2\@nil
+}
+%<--------------------------------------------------------------------------->
+\def\tkzFillAngles{\pgfutil at ifnextchar[{\tkz at MFillAngles}{\tkz at MFillAngles[]}}   
+\def\tkz at MFillAngles[#1](#2){% 
+\xdef\tkz at optfa{#1} 
+\begingroup
+   \let\next\tkz at multiFA
+   \next#2 \@nil %    
+\endgroup 
+} 
+%<------------------------- Label on angle -------------------------------->
+\pgfkeys{/tkzlabelangle/.cd,
+    dist/.store in                  = \tkzlabeldist, 
+    angle/.store in                 = \tkzlabelangle, 
+    dist                            = 1,
+    angle                           = {},
+  /tkzlabelangle/.search also={/tikz}   
+}  
+\def\tkzLabelAngle{\pgfutil at ifnextchar[{\tkz at LabelAngle}{\tkz at LabelAngle[]}}
+\def\tkz at LabelAngle[#1](#2,#3,#4)#5{%2016 added normalize from karu's code
+\begingroup
+  \pgfqkeys{/tkzlabelangle}{#1}
+  \ifx\tkzutil at empty\tkzlabelangle% no value so calc angle of bisector
+      \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
+        \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
+        \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
+    \edef\tkzlabelAngle{\fpeval{(\tkz at SecondAngle+\tkz at FirstAngle)/2}}
+  \fi
+  \path  (#3) --+(\tkzlabelAngle:\tkzlabeldist) node[label angle style,/tkzlabelangle/.cd,#1] {#5};
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+%<--------------------------------------------------------------------------->
+% multiple labels
+\def\tkz at multiLBA#1 #2\@nil{%
+ \protected at edef\tkz at temp{
+   \noexpand \tkzLabelAngle[\tkz at optlba](#1){\tkz at labelangle}}\tkz at temp%
+   \def\tkz at nextArg{#2}%
+   \ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+   \fi
+   \next#2\@nil
+}
+% %<---------------------------------------------------------------------
+\def\tkzLabelAngles{\pgfutil at ifnextchar[{\tkz at LabelAngles}{%
+                                         \tkz at LabelAngles[]}}
+\def\tkz at LabelAngles[#1](#2)#3{% 
+ \def\tkz at optlba{#1}
+ \def\tkz at labelangle{#3} 
+   \begingroup
+      \let\next\tkz at multiLBA
+      \next#2 \@nil %
+ \endgroup
+}
+%<-----------------------------------------------------------------------
+%                     Symbole droites perpendiculaires      
+%<---------------------------------------------------------------------- 
+\pgfkeys{/tkzrightangle/.cd,
+         norm tkz code/.is if            = normtkzcode at execute,
+         german/.code                    = \normtkzcode at executefalse,
+         size/.store in                  = \tkz at ra@size,
+         dotsize/.store in               = \tkz at dotsize,
+         size                            = .25,
+         dotsize                         = 3 pt,
+  /tkzrightangle/.search also={/tikz},
+}
+\newcommand*{\tkzMarkRightAngle}[1][]{\tkz at RightAngle[#1]}
+\def\tkz at RightAngle[#1](#2,#3,#4){% 
+\begingroup
+\normtkzcode at executetrue
+\pgfqkeys{/tkzrightangle}{#1} 
+    \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
+                                      \pgfpointanchor{#2}{center}}} 
+    \tkz at ax=\pgf at x\relax%
+    \tkz at ay=\pgf at y\relax%    
+    \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#3}{center}}{%
+                                      \pgfpointanchor{#4}{center}}} 
+    \tkz at bx=\pgf at x\relax%
+    \tkz at by=\pgf at y\relax%
+  \ifnormtkzcode at execute%
+      \draw[/tkzrightangle/.cd,#1]  
+    (#3) --++( 28.45274*\tkz at ra@size\tkz at ax , 28.45274*\tkz at ra@size\tkz at ay) 
+         --++( 28.45274*\tkz at ra@size\tkz at bx , 28.45274*\tkz at ra@size\tkz at by)
+         --++(-28.45274*\tkz at ra@size\tkz at ax ,-28.45274*\tkz at ra@size\tkz at ay)
+         -- (#3);   
+  \else%
+    % find angles
+      \tkzFindSlopeAngle(#3,#2)\tkzGetAngle{tkz at dirOne}
+      \tkzFindSlopeAngle(#3,#4)\tkzGetAngle{tkz at dirTwo}
+      \tkzNormalizeAngle(\tkz at dirOne,\tkz at dirTwo)
+      \edef\tkzCircleAngle{\fpeval{(\tkz at SecondAngle+\tkz at FirstAngle)/2}}     
+      \tkzDrawArcRAN[/tkzrightangle/.cd,#1](#3,\tkz at ra@size)%
+            (\tkz at FirstAngle,\tkz at SecondAngle)
+      \path (#3) --+ (\tkzCircleAngle:\tkz at ra@size/2)
+      node[fill,circle,minimum size=\tkz at dotsize,
+           inner sep=0 pt,/tkzrightangle/.cd,#1] {};
+\fi%
+\endgroup
+}
+%<--------------------------------------------------------------------------->
+\def\tkz at multiRA#1 #2\@nil{% 
+\protected at edef\tkz at temp{
+  \noexpand \tkzMarkRightAngle[\tkz at optRA](#1)}\tkz at temp% 
+\def\tkz at nextArg{#2}%
+   \ifx\tkzutil at empty\tkz at nextArg
+      \let\next\@gobble
+   \fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------->
+\def\tkzMarkRightAngles{\pgfutil at ifnextchar[{\tkz at RightAngles}{%
+                                         \tkz at RightAngles[]}} 
+\def\tkz at RightAngles[#1](#2){% 
+\xdef\tkz at optRA{#1} 
+\begingroup
+    \let\next\tkz at multiRA
+    \next#2 \@nil %    
+\endgroup 
+}    
+
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-angles.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-draw-circles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-circles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-draw-circles.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,44 +7,15 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-draw-circles.tex} 
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-draw-circles.tex} 
 \makeatletter 
-%for compatibility
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleR(#1,#2){% 
-\begingroup 
-  \edef\tkzLengthResult{\fpeval{round(#2,5)}}
-  \global\let\tkzLengthResult\tkzLengthResult  
-  \tkzRenamePoint(#1){tkzPointResult}   
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%              Through  Circle center and point
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleThrough(#1,#2){% 
-\begingroup
-  \tkzCalcLength(#1,#2)
-  \tkzRenamePoint(#1){tkzPointResult}
-\endgroup
-}    
-%<--------------------------------------------------------------------------–>
-%              Diameter Circle
-%<--------------------------------------------------------------------------–>
-\def\tkzDefCircleD(#1,#2){% 
-\begingroup
-  \tkzDefMidPoint(#1,#2)
-  \tkzCalcLength(#1,tkzPointResult)
-\endgroup
-} 
 
+
 \def\tkz at numdc{0}
 \pgfkeys{/tkzdrawc/.cd,
       through/.code                 =   \def\tkz at numdc{0},
@@ -75,13 +46,13 @@
 \begingroup 
 \pgfqkeys{/tkzdrawc}{#1}  
 \ifcase\tkz at numdc%
-    \tkzDefCircleThrough(#2)
+   \tkzDefCircleThrough(#2)
   \or% 1
-    \tkzDefCircleR(#2) 
+   \tkzDefCircleR(#2) 
   \or% 2
-    \tkzDefCircleD(#2)  
+   \tkzDefCircleD(#2)  
   \or% 3
-      \tkzDefCircumCircle(#2) 
+   \tkzDefCircumCircle(#2) 
   \or% 4
    \tkzDefInCircle(#2)
   \or% 4
@@ -95,8 +66,7 @@
   \or% 8
    \tkzDefOrthoThroughCircle(#2,\tkz at ptone,\tkz at pttwo)  
  \fi
-   \draw[line style,/tkzdrawc/.cd,#1]
-                  (tkzPointResult) circle (\tkzLengthResult pt);      
+   \draw[line style,/tkzdrawc/.cd,#1] (tkzPointResult) circle (\tkzLengthResult);      
 \endgroup
 }
 
@@ -126,11 +96,11 @@
 \pgfkeys{/tkzdrawsc/.cd,
        through/.code         =  \def\tkz at numdsc{0},
        diameter/.code        =  \def\tkz at numdsc{1},
-       swap/.is if           =  tkz at sawp@sc,
+       swap/.is if           =  tkz at swap@sc,
        swap/.default         =  true,
        swap                  =  false,
        through,
-         /tkzdrawsc/.search also={/tikz}
+       /tkzdrawsc/.search also={/tikz}
    }  
 \def\tkzDrawSemiCircle{\pgfutil at ifnextchar[{\tkz at DrawSemiCircle}{%
                                     \tkz at DrawSemiCircle[]}}
@@ -142,19 +112,19 @@
 \or%
    \tkzDrawSemiCircleDiameter(#2)
 \fi
- \tkzDrawArc[#1](\tkz at Center,\tkz at FirstPoint)(\tkz at SecondPoint)
+ \tkzDrawArc[#1,delta=0](\tkz at Center,\tkz at FirstPoint)(\tkz at SecondPoint)
 \endgroup
 }
 %<--------------------------------------------------------------------------–> 
 \def\tkzDrawSemiCircleThrough(#1,#2){%
    \tkzDefPointBy[symmetry=center #1](#2)
-         \pgfnodealias{tkz at pt}{tkzPointResult}
+    \pgfnodealias{tkz at pt}{tkzPointResult}
    \def\tkz at Center{#1}
-   \iftkz at sawp@sc
-         \gdef\tkz at FirstPoint{tkz at pt}
+   \iftkz at swap@sc
+      \gdef\tkz at FirstPoint{tkz at pt}
       \gdef\tkz at SecondPoint{#2}
    \else
-         \gdef\tkz at FirstPoint{#2}
+      \gdef\tkz at FirstPoint{#2}
       \gdef\tkz at SecondPoint{tkz at pt}
    \fi
 }
@@ -163,7 +133,7 @@
   \tkzDefMidPoint(#1,#2) 
   \pgfnodealias{tkz at Center}{tkzPointResult}
   \def\tkz at Center{tkz at Center}
-  \iftkz at sawp@sc
+  \iftkz at swap@sc
       \def\tkz at FirstPoint{#1}
       \def\tkz at SecondPoint{#2}
    \else
@@ -171,11 +141,33 @@
       \def\tkz at SecondPoint{#1}
    \fi
 }
-
+%<--------------------------------------------------------------------------–>
+\def\tkz at multisemicircles#1 #2\@nil{% 
+\protected at edef\tkz at temp{
+\noexpand \tkzDrawSemiCircle[\tkz at optsemicircle](#1)}\tkz at temp% 
+\def\tkz at nextArg{#2}%
+\ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+\fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawSemiCircles{\pgfutil at ifnextchar[{\tkz at DrawSemiCircles}{%
+  \tkz at DrawSemiCircles[]}} 
+\def\tkz at DrawSemiCircles[#1](#2){%
+\xdef\tkz at optsemicircle{#1} 
+\begingroup
+   \let\next\tkz at multisemicircles
+   \next#2 \@nil %    
+\endgroup     
+}% 
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–> 
 %<---------------------------- Fill Circle  --------------------------------–>
 \def\tkz at numfc{0}
 \pgfkeys{/fillcircle/.cd, radius/.code      =      \def\tkz at numfc{0},
-                       R/.code           =      \def\tkz at numfc{1},
+                       R/.code              =      \def\tkz at numfc{1},
                     radius, 
   /fillcircle/.search also={/tikz}
 }
@@ -185,7 +177,7 @@
 \pgfqkeys{/fillcircle}{#1}
 \ifcase\tkz at numfc%
  % first case 0
-    \tkzCalcLength(#2,#3)
+    \tkz@@CalcLength(#2,#3){tkzLengthResult}
    \fill[/fillcircle/.cd,#1] (#2) circle (\tkzLengthResult pt);%  
   \or% 1
    \fill[/fillcircle/.cd,#1] (#2) circle (#3);%  
@@ -192,39 +184,35 @@
   \fi    
 \endgroup
 }
-%<----------------------- Out Clip Circle  ---------------------------------–>
-\def\tkz at numocc{0}
-\pgfkeys{/clipoutcircle/.cd, radius/.code =  \def\tkz at numocc{0},
-                         R/.code      =   \def\tkz at numocc{1},
-                      radius}
-%<--------------------------------------------------------------------------–>
-\def\tkzClipOutCircle{\pgfutil at ifnextchar[{\tkz at ClipOutCircle}{%
-                                        \tkz at ClipOutCircle[]}}
-\def\tkz at ClipOutCircle[#1](#2,#3){%    
-\pgfqkeys{/clipoutcircle}{#1}
-\ifcase\tkz at numocc
-     \tkzCalcLength(#2,#3)
-     \clip[tkzreverseclip]  (#2) circle (\tkzLengthResult pt);  
-  \or% 1
-     \clip[tkzreverseclip]  (#2) circle (#3);  
-  \fi
-} 
+
 %<--------------------------- Clip Circle  ---------------------------------–>
+\newif\iftkzClipOutCircle 
 \def\tkz at numcc{0}
 \pgfkeys{/tkzclipc/.cd,    
-         through/.code    =  \def\tkz at numcc{0},
-         R/.code          =  \def\tkz at numcc{1},
+         through/.code           =  \def\tkz at numcoc{0},
+         R/.code                 =  \def\tkz at numcoc{1},
+         out code/.is if         =  tkzClipOutCircle,
+         out/.code               = \tkzClipOutCirclefalse,
          through}
 %<--------------------------------------------------------------------------–>
 \def\tkzClipCircle{\pgfutil at ifnextchar[{\tkz at ClipCircle}{\tkz at ClipCircle[]}}
 
 \def\tkz at ClipCircle[#1](#2,#3){%    
+\tkzClipOutCircletrue
 \pgfqkeys{/tkzclipc}{#1}
-\ifcase\tkz at numcc
-   \tkzCalcLength(#2,#3)
+\ifcase\tkz at numcoc
+   \tkz@@CalcLength(#2,#3){tkzLengthResult}
+   \iftkzClipOutCircle
    \clip  (#2) circle (\tkzLengthResult pt);
+   \else
+    \clip (#2) circle (\tkzLengthResult pt) [tkzreverseclip] ;
+    \fi
  \or% 1
+  \iftkzClipOutCircle
    \clip  (#2) circle (#3);  
+   \else
+    \clip (#2) circle (#3) [tkzreverseclip] ;
+    \fi
  \fi
 } 
 %<--------------------------- Label Circle  --------------------------------–>
@@ -255,6 +243,5 @@
 \fi    
 \endgroup
 }
-%<--------------------------------------------------------------------------–> 
- \makeatother 
+\makeatother 
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-lines.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-draw-lines.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,23 +7,16 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c tkz-obj-eu-draw-lines.tex}   
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-draw-lines.tex}   
 \makeatletter
+
 \def\tkz at numdl{0}
 \pgfkeys{/tkzdrawl/.cd,
-      median/.code                  =   \def\tkz at numdl{0},
-      altitude/.code                =   \def\tkz at numdl{1},
-      bisector/.code                =   \def\tkz at numdl{2},
-      none/.code                    =   \def\tkz at numdl{3},
-      none,
    /tkzdrawl/.search also={/tikz}
 } 
 %<--------------------------------------------------------------------------–>
@@ -30,175 +23,13 @@
 %            Drawing a line                                                  >
 %<--------------------------------------------------------------------------–>
 \def\tkzDrawLine{\pgfutil at ifnextchar[{\tkz at DrawLine}{\tkz at DrawLine[]}}
-\def\tkz at DrawLine[#1](#2){%    
+\def\tkz at DrawLine[#1](#2,#3){%    
 \begingroup 
 \pgfqkeys{/tkzdrawl}{#1}  
-\ifcase\tkz at numdl%
-    \tkzDrawMedian[#1](#2)
-  \or% 1
-    \tkzDrawAltitude[#1](#2)
-  \or% 2
-    \tkzDrawBisector[#1](#2)
- \or% 3
-   \tkzDrawSLine[#1](#2) 
- \fi    
+   \draw[line style,#1] (#2) to (#3);
 \endgroup
 }
-%<--------------------------------------------------------------------------–>
-%                       Droites particulières d'un triangle
-%<--------------------------------------------------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawSLine{\pgfutil at ifnextchar[{\tkz at DrawSLine}{\tkz at DrawSLine[]}} 
-\def\tkz at DrawSLine[#1](#2,#3){%
-\begingroup
-\draw[line style,#1] (#2) to (#3);
-\endgroup
-}% 
-%<--------------------------------------------------------------------------–>
-%                        median
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawMedian{\pgfutil at ifnextchar[{\tkz at Median}{\tkz at Median[]}}
-\def\tkz at Median[#1](#2,#3,#4){%
-\begingroup
-   \tkzDefMidPoint(#2,#4)
-   \tkzDrawSLine[add= 0 and 0,/tkzdrawl/.cd,#1](#3,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                         altitude
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawAltitude{\pgfutil at ifnextchar[{\tkz at Altitude}{\tkz at Altitude[]}}
-\def\tkz at Altitude[#1](#2,#3,#4){%
-\begingroup
-    \tkzUProjection(#2,#4)(#3)
-    \tkzDrawSLine[add= 0 and 0,/tkzdrawl/.cd,#1](#3,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%                          bisector
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawBisector{\pgfutil at ifnextchar[{\tkz at Bisector}{\tkz at Bisector[]}}
-\def\tkz at Bisector[#1](#2,#3,#4){%
-\begingroup
-    \tkzDefBisectorLine(#2,#3,#4)
-    \tkzInterLL(#2,#4)(#3,tkzPointResult)
-    \tkzDrawSLine[add= 0 and 0,/tkzdrawl/.cd,#1](#3,tkzPointResult)
-\endgroup
-}
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% \def\tkz at recuplast(#1,#2){\def\tkz at last{#1}}
-% \def\tkz at stop{\tkz at stop}
-%<--------------------------------------------------------------------------–>
-%                                    medians
-%<--------------------------------------------------------------------------–>
-\def\tkz@@Medians(#1,#2,#3)(#4,#5){%
-    \def\tkz at tmp{#5}%
-   \ifx\tkz at tmp\tkz at stop\else\tkz@@Medians(#2,#3)(#5)\fi
-   \tkz at recuplast(#3)
-
-    \pgfcoordinate{#4}{\pgfpointscale{0.5}{%
-          \pgfpointadd{\pgfpointanchor{#2}{center}}{%
-                       \pgfpointanchor{\tkz at last}{center}}%
-      }}%
-    \protected at edef\tkz at temp{\noexpand  
-         \tkzDrawLine[add= 0 and 0,/DrawTLines/.cd,\tkz at opttline](#4,#1)}\tkz at temp%
-   \ifx\tkzutil at empty\tkz at newpoint@name
-     \else
-        \coordinate (\tkz at newpoint@name#4) at (#4);
-     \fi
-}
-\def\tkzDrawMedians{\pgfutil at ifnextchar[{\tkz at Medians}{\tkz at Medians[]}}
-\def\tkz at Medians[#1](#2)#3{%
-\begingroup
-   \xdef\tkz at opttline{#1} 
-   \tkz@@Medians(#2,#2)(#3,\tkz at stop)
-   \endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-%                    Altitudes
-%<--------------------------------------------------------------------------–>
-\def\tkz@@Altitudes(#1,#2,#3)(#4,#5){%
-  \def\tkz at tmp{#5}%
-   \ifx\tkz at tmp\tkz at stop\else\tkz@@Altitudes(#2,#3)(#5)\fi
-      \tkz at recuplast(#3)
-      \tkzUProjection(#2,\tkz at last)(#1)
-      \pgfnodealias{tkz at tmp@pt}{tkzPointResult}  
- \protected at edef\tkz at temp{%
-   \noexpand  
-   \tkzDrawLine[add= 0 and 0,/DrawTLines/.cd,\tkz at opttline](#1,tkz at tmp@pt)}\tkz at temp%   
-     \ifx\tkzutil at empty\tkz at newpoint@name
-     \else
-        \coordinate (\tkz at newpoint@name#4) at (tkz at tmp@pt);
-     \fi
-}
-\def\tkzDrawAltitudes{\pgfutil at ifnextchar[{\tkz at DrawAltitudes}{\tkz at DrawAltitudes[]}}
-\def\tkz at DrawAltitudes[#1](#2)#3{%
-\begingroup
-   \xdef\tkz at opttline{#1} 
-   \tkz@@Altitudes(#2,#2)(#3,\tkz at stop)
-   \endgroup
-   }
-%<--------------------------------------------------------------------------–>
-%                    bisectors
-%<--------------------------------------------------------------------------–>
-\def\tkz@@Bisectors(#1,#2,#3)(#4,#5){%
-\def\tkz at tmp{#5}%
-\ifx\tkz at tmp\tkz at stop\else\tkz@@Bisectors(#2,#3)(#5)\fi
-  \tkz at recuplast(#3)
-  \tkzDefBisectorLine(\tkz at last,#1,#2)
-  \tkzInterLL(#2,\tkz at last)(#1,tkzPointResult)
-  \pgfnodealias{tkz at tmp@pt}{tkzPointResult}
-  \protected at edef\tkz at temp{
-    \noexpand \tkzDrawLine[add= 0 and 0,
-                           /DrawTLines/.cd,
-                          \tkz at opttline](#1,tkz at tmp@pt)}\tkz at temp
-  \ifx\tkzutil at empty\tkz at newpoint@name
-    \else
-      \coordinate (\tkz at newpoint@name#4) at (tkz at tmp@pt);
-  \fi
-}
-\def\tkzDrawBisectors{\pgfutil at ifnextchar[{\tkz at DrawBisectors}{\tkz at DrawBisectors[]}}
-   
-\def\tkz at DrawBisectors[#1](#2)#3{%
-\begingroup
-   \xdef\tkz at opttline{#1} 
-   \tkz@@Bisectors(#2,#2)(#3,\tkz at stop)
-\endgroup
-}
 %<-------------------------------------------------------------------------–
-%<-------------------------------------------------------------------------–
-%<-------------------------------------------------------------------------–
-\def\tkz at numdtls{0}
-\pgfkeys{/DrawTLines/.cd,
-      median/.code                  =   \def\tkz at numdtls{0},
-      altitude/.code                =   \def\tkz at numdtls{1},
-      bisector/.code                =   \def\tkz at numdtls{2},
-      median,
-      name/.store in                =   \tkz at newpoint@name,
-      name/.initial                 = {},
-      name                          = {},
-   /DrawTLines/.search also={/tikz}
-} 
-%<--------------------------------------------------------------------------–>
-%            Drawing tr lines                                                >
-%<--------------------------------------------------------------------------–>
-\def\tkzDrawTLines{\pgfutil at ifnextchar[{\tkz at DrawTLines}{\tkz at DrawTLines[]}}
-\def\tkz at DrawTLines[#1](#2)#3{%    
-\begingroup 
-\pgfqkeys{/DrawTLines}{#1}  
-\ifcase\tkz at numdtls%
-    \tkzDrawMedians[#1](#2){#3}
-  \or% 1
-    \tkzDrawAltitudes[#1](#2){#3}
-  \or% 2
-    \tkzDrawBisectors[#1](#2){#3}
- \fi    
-\endgroup
-}
-%<-------------------------------------------------------------------------–
 %         tkzDrawLines 
 %<-------------------------------------------------------------------------–
 \def\tkz@@multiLines#1 #2\@nil{% 
@@ -231,11 +62,11 @@
 %<--------------------------------------------------------------------------–>
 \pgfkeys{%
    tkzsuline/.cd,
-   line width/.code =   {\xdef\tkz at line@lw{#1}},
-   color/.code      =   {\xdef\tkz at line@color{#1}},
-   style/.code      =   {\xdef\tkz at line@style{#1}},
-   add/.code args   =   {#1 and #2} {\xdef\tkz at line@left{#1}%
-                                    \xdef\tkz at line@right{#2}},
+   line width/.code =   \def\tkz at line@lw{#1},
+   color/.code      =   \def\tkz at line@color{#1},
+   style/.code      =   \def\tkz at line@style{#1},
+   add/.code args   =   {#1 and #2} {\def\tkz at line@left{#1}
+                                    \def\tkz at line@right{#2}},
        /tkzsuline/.search also={/tikz}%
 } 
 %<--------------------------------------------------------------------------–>
@@ -268,10 +99,10 @@
 \def\tkzDrawSegment{\pgfutil at ifnextchar[{\tkz at DrawSegment}{%
                                          \tkz at DrawSegment[]}} 
 \def\tkz at DrawSegment[#1](#2,#3){%    
-\begingroup
+\scope
   \pgfqkeys{/tkzdraws}{#1}
   \draw[line style,add=0 and 0,#1] (#2) to (#3); 
-\endgroup   
+\endscope  
 }%    
 
 \def\tkz at multiDrawSeg#1 #2\@nil{%
@@ -387,17 +218,24 @@
     % \draw[dim={7cm,10pt,transform shape}]  (B) --  (C);
     % \draw[dim={X,,}]  (A) --  (C);
 %<--------------------------------------------------------------------------–>
+% code from muzimuzhi Z
+
 \pgfkeys{/pgf/decoration/.cd, distance/.initial = 10pt}  
 
 \pgfdeclaredecoration{add dim}{final}{
 \state{final}{% 
 \pgfmathsetmacro{\dist}{\pgfkeysvalueof{/pgf/decoration/distance}}
-          \pgfpathmoveto{\pgfpoint{0pt}{0pt}}             
+          \pgfpathmoveto{\pgfpoint{0pt}{0pt}}
           \pgfpathlineto{\pgfpoint{0pt}{1.2*\dist}}   
           \pgfpathmoveto{\pgfpoint{\pgfdecoratedpathlength}{0pt}} 
-          \pgfpathlineto{\pgfpoint{(\pgfdecoratedpathlength}{1.2*\dist}}     
+          \pgfpathlineto{\pgfpoint{(\pgfdecoratedpathlength}{1.2*\dist}}
+          % start of patch
+          \pgfusepath{stroke}
           \pgfsetarrowsstart{latex}
           \pgfsetarrowsend{latex}
+          \expandafter\pgfsetdash\tkz at dim@dashpattern
+          \pgfsetstrokecolor{\tkz at dim@color}
+          % end of patch
           \pgfpathmoveto{\pgfpoint{0pt}{\dist}}
           \pgfpathlineto{\pgfpoint{\pgfdecoratedpathlength}{\dist}} 
           \pgfusepath{stroke} 
@@ -424,12 +262,26 @@
     },
     dim/.default={,0pt,}
 }
-
+\tikzset{
+  dim color/.store in=\tkz at dim@color,
+  dim color=black,
+  % similar to code for \tikzoption{dash pattern}{...}
+  dim dash pattern/.code={%
+    \def\tikz at temp{#1}%
+    \ifx\tikz at temp\pgfutil at empty%
+      \def\tkz at dim@dashpattern{{}{0pt}}%
+    \else%
+      \def\tikz at dashpattern{}%
+      \expandafter\tikz at scandashon\pgfutil at gobble#1o\@nil%
+      \edef\tkz at dim@dashpattern{{\tikz at dashpattern}{\noexpand\tikz at dashphase}}%
+    \fi
+  },
+  dim dash pattern=,
+}  
 %<---------------------------  style line ---------------------------------> 
 \tikzset{add/.style args={#1 and #2}{to path={%
  ($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
   \tikztonodes}}
 } 
-%<--------------------------------------------------------------------------–> 
 \makeatother
-\endinput
+\endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-polygons.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-polygons.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-polygons.tex} 
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-polygons.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 %                                 Polygon 
@@ -31,6 +28,27 @@
      \foreach \pt in {#2,#3}{--(\pt)}--cycle;%
  \endgroup
 } 
+%<--------------------------------------------------------------------------–>
+\def\tkz at multipolygons#1 #2\@nil{% 
+\protected at edef\tkz at temp{
+\noexpand \tkzDrawPolygon[\tkz at optpolygon](#1)}\tkz at temp% 
+\def\tkz at nextArg{#2}%
+\ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+\fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawPolygons{\pgfutil at ifnextchar[{\tkz at DrawPolygons}{\tkz at DrawPolygons[]}} 
+\def\tkz at DrawPolygons[#1](#2){%
+\xdef\tkz at optpolygon{#1} 
+\begingroup
+   \let\next\tkz at multipolygons
+   \next#2 \@nil %    
+\endgroup     
+}% 
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–> 
 %<----------------------------   FILL       --------------------------------–>
 %
 %<--------------------------------------------------------------------------–>
@@ -39,7 +57,7 @@
 \def\tkz at FillPolygon[#1](#2,#3){%
  \begingroup
      \fill[#1] (#2)
-	 \foreach \pt in {#2,#3}{--(\pt)}--cycle;%  
+   \foreach \pt in {#2,#3}{--(\pt)}--cycle;%  
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
@@ -52,7 +70,7 @@
 }
 %<--------------------------------------------------------------------------–>
 \def\tkzDrawRectangle{\pgfutil at ifnextchar[{\tkz at DrawRectangle}%
-										  {\tkz at DrawRectangle[]}} 
+                      {\tkz at DrawRectangle[]}} 
 \def\tkz at DrawRectangle[#1](#2,#3){%
 \begingroup
    \draw[#1](#2) -| (#3) -| (#2);
@@ -61,20 +79,23 @@
 %<-------------------------- gold rectangle -------------------------------–>
 %
 %<--------------------------------------------------------------------------–>
+\def\tkzDrawGoldRectangle{\pgfutil at ifnextchar[{\tkz at DrawGoldRectangle}{%
+                                            \tkz at DrawGoldRectangle[]}} 
 \def\tkz at DrawGoldRectangle[#1](#2,#3){
 \begingroup
- 	\tkzDefGoldRectangle(#2,#3)
- 	\tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
+  \tkzDefGoldRectangle(#2,#3)
+  \tkzDrawPolygon[#1](#2,#3,tkzFirstPointResult,tkzSecondPointResult)
 \endgroup
 }
+\let\tkzDrawGoldenRectangle\tkzDrawGoldRectangle
 %<--------------   Labels for Regular Polygon      -------------------------–>
 %
 %<--------------------------------------------------------------------------–>
 \pgfkeys{/deflabelregpoly/.cd,
-			name/.store in    	=   \tkz at regpolname,
-			sep/.store in     	=   \tkz at regpolsep,
-			name				=	P,
-			sep					=	1.1
+      name/.store in      =   \tkz at regpolname,
+      sep/.store in       =   \tkz at regpolsep,
+      name        = P,
+      sep         = 1.1
 }   
  
 \def\tkzLabelRegPolygon{\pgfutil at ifnextchar[{\tkz at labelPolygon}{%
@@ -83,11 +104,31 @@
 \begingroup 
 \pgfqkeys{/deflabelregpoly}{#1}  
  \foreach \v [count=\vi from 1]  in {#3}  {%
- 	\path (#2) to [pos=1.1] node {$\v$} (\tkz at regpolname\vi) ; 
- 	\pgfnodealias{\v}{\tkz at regpolname\vi} 
+  \path (#2) to [pos=1.1] node {$\v$} (\tkz at regpolname\vi) ; 
+  \pgfnodealias{\v}{\tkz at regpolname\vi} 
   } 
 \endgroup
 } 
+%<----------------------------   CLIP       --------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
 
+\newif\iftkzClipOutPoly% 
+\pgfkeys{tkzclippolygon/.cd,
+       out code/.is if         = tkzClipOutPoly,
+       out/.code               = \tkzClipOutPolyfalse}   
+
+\def\tkzClipPolygon{\pgfutil at ifnextchar[{\tkz at ClipPolygon}{\tkz at ClipPolygon[]}}  
+\def\tkz at ClipPolygon[#1](#2,#3){%
+\tkzClipOutPolytrue
+\pgfqkeys{/tkzclippolygon}{#1}%   
+\iftkzClipOutPoly
+\clip (#2)
+   \foreach \pt in {#2,#3}{--(\pt)}--cycle;
+\else
+   \clip(#2)
+    \foreach \pt in {#2,#3}{--(\pt)}--cycle[tkzreverseclip] ;
+\fi 
+}%
 \makeatother
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-draw-triangles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-draw-triangles.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,12 +7,13 @@
 %   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”.
-% 
+% This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
 
-%  utf8 encoding
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-draw-triangles.tex} 
+\makeatletter  
 %<--------------------------------------------------------------------------–>
 %                       Draw Triangles
 %<--------------------------------------------------------------------------–>
@@ -25,12 +26,13 @@
       school/.code              = {\def\tkz at numdtr{3}},
       golden/.code              = {\def\tkz at numdtr{4}},
       sublime/.code             = {\def\tkz at numdtr{4}},
-      euclide/.code             = {\def\tkz at numdtr{5}},
+      euclid/.code             = {\def\tkz at numdtr{5}},
       gold/.code                = {\def\tkz at numdtr{6}},
       cheops/.code              = {\def\tkz at numdtr{7}},
       two angles/.code  args    = {#1 and #2}{\def\tkz at numdtr{8}%
                                               \def\tkz at alpha{#1}%
                                               \def\tkz at beta{#2}},
+      isosceles right/.code    = {\def\tkz at numdtr{9}},
       equilateral,
    /drawtriangle/.search also={/tikz}
 } 
@@ -58,9 +60,32 @@
 \or% 7
    \tkzDefCheopsTriangle(#2,#3)  
 \or% 8
-   \tkzDefTwoAnglesTriangle(#2,#3)  
+   \tkzDefTwoAnglesTriangle(#2,#3)
+  \or% 9
+   \tkzDefIsoscelesRightTriangle(#2,#3)
 \fi
  \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle;  
 \endgroup
 }
 
+%<--------------------------------------------------------------------------–>
+\def\tkz at multitriangles#1 #2\@nil{% 
+\protected at edef\tkz at temp{
+\noexpand \tkzDrawPolygon[\tkz at opttrianle](#1)}\tkz at temp% 
+\def\tkz at nextArg{#2}%
+\ifx\tkzutil at empty\tkz at nextArg
+     \let\next\@gobble
+\fi
+\next#2\@nil
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzDrawTriangles{\pgfutil at ifnextchar[{\tkz at DrawTriangles}{\tkz at DrawTriangles[]}} 
+\def\tkz at DrawTriangles[#1](#2){%
+\xdef\tkz at opttrianle{#1} 
+\begingroup
+   \let\next\tkz at multitriangles
+   \next#2 \@nil %    
+\endgroup     
+}% 
+\makeatother
+\endinput
\ No newline at end of file

Added: 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	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,83 @@
+% tkz-obj-eu-grids.tex    
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-grids.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%              Setup   Grid
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzsugrid/.cd,
+    line width/.store in      = \tkz at sug@lw,
+    color/.store in           = \tkz at sug@color,
+    line width                = \tkz at grid@lw,
+    color                     = \tkz at grid@color
+        } 
+
+\def\tkzSetUpGrid{\pgfutil at ifnextchar[{\tkz at SetUpGrid}{\tkz at SetUpGrid[]}} 
+\def\tkz at SetUpGrid[#1]{%
+\begingroup
+\pgfqkeys{/tkzsugrid}{#1}
+\global\let\tkz at grid@lw\tkz at sug@lw
+\global\let\tkz at grid@color\tkz at sug@color 
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+%         tkzGrid  
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzGrid/.cd,
+  color/.code           = {\def\tkz at gd@color{#1}%
+                            \edef\tkz at gd@subcolor{%
+                            \tkz at gd@color!\tkzCoeffSubColor}},
+  subxstep/.store in    = {\tkz at gd@subxstep},
+  subystep/.store in    = {\tkz at gd@subystep},
+  ratio/.store in       = {\tkz at gd@ratio},
+  line width/.code      = {\edef\tkz at gd@lw{#1}
+                            \edef\tkz at gd@sublw{\tkz at gd@ratio\tkz at gd@lw}},
+  sub/.is if            = tkz at gd@sub,
+  sub/.default          = true ,
+  sub                   = false,
+  color                 = \tkz at grid@color,
+  ratio                 = 0.75, 
+  subxstep              = \tkz at grid@xstep,
+  subystep              = \tkz at grid@ystep,
+  line width            = \tkz at grid@lw,
+  /tkzGrid/.search also= {/tikz},
+} 
+%<--------------------------------------------------------------------------–>
+\def\tkzGrid{\pgfutil at ifnextchar[{\tkz at Grid}{\tkz at Grid[]}}
+\def\tkz at Grid[#1]{\@ifnextchar({\tkz@@Grid[#1]}%
+                               {\tkz@@Grid[#1](\tkz at tmp@xa,\tkz at tmp@ya)(\tkz at tmp@xb,\tkz at tmp@yb)}}
+\def\tkz@@Grid[#1](#2,#3)(#4,#5){%
+  \pgfqkeys{/tkzGrid}{#1}   
+    \begingroup
+   \edef\tkz at gxa{\fpeval{(#2-\tkz at init@xorigine)/\tkz at init@xstep}}
+   \edef\tkz at gxb{\fpeval{(#4-\tkz at init@xorigine)/\tkz at init@xstep}}
+   \edef\tkz at gya{\fpeval{(#3-\tkz at init@yorigine)/\tkz at init@ystep}}
+   \edef\tkz at gyb{\fpeval{(#5-\tkz at init@yorigine)/\tkz at init@ystep}}
+    \iftkz at gd@sub% 
+      \edef\@subxstep{\fpeval{\tkz at gd@subxstep/\tkz at init@xstep}}%
+      \edef\@subystep{\fpeval{\tkz at gd@subystep/\tkz at init@ystep}}%
+      \draw [xstep      = \@subxstep cm,%
+             ystep      = \@subystep cm,%
+             color      = \tkz at gd@subcolor,%
+             line width = \tkzRatioLineGrid]%
+             (\tkz at gxa,\tkz at gya) grid (\tkz at gxb,\tkz at gyb);%
+    \fi
+    \draw [color      = \tkz at gd@color,%
+           line width = \tkz at gd@lw]%
+           (\tkz at gxa,\tkz at gya) grid (\tkz at gxb,\tkz at gyb);%
+    \endgroup
+}%
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-grids.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-lines.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-lines.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-lines.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c tkz-obj-eu-lines.tex}   
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-lines.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                          les lignes
@@ -32,6 +29,10 @@
   bisector/.code           =  \def\tkz at numl{3},
   bisector out/.code       =  \def\tkz at numl{4},
   symmedian/.code          =  \def\tkz at numl{5},
+  tangent at/.code         = {#1}{\def\tkz at numl{6} \def\tkz at ptat{#1}},
+  tangent from/.code       = {#1}{\def\tkz at numl{7} \def\tkz at ptfrom{#1}},
+  median/.code             =  \def\tkz at numl{8},
+  altitude/.code           = \def\tkz at numl{9},
   K/.code                  =  \def\tkz at koeff{#1},
   K                        =  1,
   normed/.is if            =  tkz at line@normed,
@@ -39,7 +40,6 @@
   normed                   =  false,
   mediator
 } 
-
 \def\tkzDefLine{\pgfutil at ifnextchar[{\tkz at DefLine}{\tkz at DefLine[]}}
 \def\tkz at DefLine[#1](#2){% 
 \begingroup
@@ -49,7 +49,7 @@
  % first case 0
  \tkzDefMediatorLine(#2)  
   \or% 1
-  \tkzDefOrthLine[\tkz at koeff](#2)(\tkz at through)  
+  \tkzDefOrthLine[\tkz at koeff](#2)
   \or% 2
    \tkzDefLineLL(#2)
   \or% 3
@@ -58,6 +58,10 @@
   \tkzDefBisectorOutLine(#2)
   \or% 5
   \tkzDefSymmedianLine(#2)
+  \or% 6
+  \tkzTgtAt(#1)(#2)  
+  \or% 7
+  \tkzTgtFromP(#1)(#2)
   \fi    
 \endgroup
 }
@@ -74,7 +78,7 @@
    \pgfinterruptboundingbox 
    \path[coordinate](\tkz at through)--++(\tkz at koeff\pgf at xa,\tkz at koeff\pgf at ya)%
          coordinate (tkzPointResult);
-	 \endpgfinterruptboundingbox
+   \endpgfinterruptboundingbox
    \iftkz at line@normed
       \tkzVecKNorm(\tkz at through,tkzPointResult)
    \fi
@@ -90,9 +94,9 @@
   \pgfnodealias{tkz at OLtmp}{tkzPointResult}
   \tkz at VecKCoLinear[\tkz at koeff](#2,tkz at OLtmp,\tkz at through)
   \iftkz at line@normed
-	  \pgfinterruptboundingbox 
+    \pgfinterruptboundingbox 
        \tkzVecKNorm(\tkz at through,tkzPointResult)
-		\endpgfinterruptboundingbox 
+    \endpgfinterruptboundingbox 
   \fi
 \endgroup}% 
 %<--------------------------------------------------------------------------–>
@@ -105,7 +109,7 @@
 \begingroup
    \tkzDefEquilateral(#2,#3) 
    \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
-	 \tkzDefEquilateral(#3,#2)
+   \tkzDefEquilateral(#3,#2)
    \pgfnodealias{tkzSecondPointResult}{tkzPointResult} 
    \ifx\tkz at koeff=1 %
    \else
@@ -119,12 +123,12 @@
    \iftkz at line@normed 
       \tkzDefMidPoint(#2,#3)
       \pgfnodealias{tkz at mid}{tkzPointResult}
-      \pgfinterruptboundingbox
+     % \pgfinterruptboundingbox
          \tkzVecKNorm[\tkz at koeff](tkz at mid,tkzFirstPointResult)
          \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
          \tkzVecKNorm[\tkz at koeff](tkz at mid,tkzSecondPointResult)
          \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
-      \endpgfinterruptboundingbox
+    %  \endpgfinterruptboundingbox
    \fi
 \endgroup}
 % autre possibilité
@@ -134,10 +138,11 @@
 %<--------------------------------------------------------------------------–>
 \def\tkzDefBisectorLine(#1,#2,#3){% 
 \begingroup
-	\pgfinterruptboundingbox 
+  \pgfinterruptboundingbox 
   \tkzDuplicateSegment(#2,#1)(#2,#3)
   \pgfnodealias{bi at tmp}{tkzPointResult}  
-  \tkzDefEquilateral(bi at tmp,#1)
+  \tkzDefMidPoint(bi at tmp,#1)
+%  \tkzDefEquilateral(bi at tmp,#1)
   \ifx\tkz at koeff=1 %
   \else
     \tkzVecK[\tkz at koeff](#2,tkzPointResult)
@@ -145,7 +150,7 @@
   \iftkz at line@normed
      \tkzVecKNorm[\tkz at koeff](#2,tkzPointResult)
     \fi
-		\endpgfinterruptboundingbox 
+    \endpgfinterruptboundingbox 
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
@@ -153,7 +158,7 @@
 %<--------------------------------------------------------------------------–>
 \def\tkzDefBisectorOutLine(#1,#2,#3){% 
 \begingroup
-	 \pgfinterruptboundingbox 
+   \pgfinterruptboundingbox 
    \tkzDuplicateLength(#2,#1)(#2,#3)
    \pgfnodealias{out at tmp}{tkzPointResult}
    \tkzDefMidPoint(#1,out at tmp) 
@@ -166,7 +171,7 @@
    \iftkz at line@normed
      \tkzVecKNorm[\tkz at koeff](#2,tkzPointResult)
     \fi
-				  \endpgfinterruptboundingbox 
+          \endpgfinterruptboundingbox 
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
@@ -178,7 +183,7 @@
   \pgfnodealias{sym at pt1}{tkzPointResult}
   \tkzDefMidPoint(#1,#3)
   \pgfnodealias{sym at pt2}{tkzPointResult}
-	\tkzUSymOrth(#2,sym at pt1)(sym at pt2)
+  \tkzUSymOrth(#2,sym at pt1)(sym at pt2)
    \ifx\tkz at koeff=1 %
    \else
      \tkzVecK[\tkz at koeff](#2,tkzPointResult)
@@ -188,43 +193,43 @@
   \fi
 \endgroup
 }
-%<-------------------------------------------------------------------------–> 
 %<--------------------------------------------------------------------------–>
 %    tangente à cercle passant par un point donné
 %<--------------------------------------------------------------------------–>
-\def\tkzTgtFromPR(#1,#2)(#3){%
-    \begingroup
-    \tkzDefMidPoint(#1,#3) 
-    \tkzCalcLength(tkzPointResult,#1)
-    \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult pt){%
-    tkzFirstPointResult}{%
-    tkzSecondPointResult}%
-    \endgroup
+   
+\def\tkzTgtAt(#1)(#2){%
+\begingroup
+     \tkz at VecKOrthNorm[-1](#2,#1)  
+ \endgroup
 }
-
+%<-------------------------------------------------------------------------–> 
 \def\tkzTgtFromP(#1,#2)(#3){%
-    \begingroup
+\begingroup
     \tkzDefMidPoint(#1,#3) 
-    \tkzCalcLength(#1,#2)
-    \tkzGetLength{tkz at radone}%
-    \tkzCalcLength(tkzPointResult,#1)
-    \tkzGetLength{tkz at radtwo}%
-    \tkzInterCCR(#1,\tkz at radone pt)(tkzPointResult,\tkz at radtwo pt){%
+    \tkz@@CalcLengthcm(#1,#2){tkz at radone}
+    \tkz@@CalcLengthcm(tkzPointResult,#1){tkz at radtwo}
+    \tkzInterCCR(#1,\tkz at radone)(tkzPointResult,\tkz at radtwo){%
     tkzFirstPointResult}{%
     tkzSecondPointResult}%
-    \endgroup
-}     
-\def\tkzTgtAt(#1)(#2){%
+\endgroup
+} 
+%<-------------------------------------------------------------------------–>  
+\def\tkzTgtFromPR(#1,#2)(#3){%
 \begingroup
-     \tkz at VecKOrthNorm[-1](#2,#1)  
- \endgroup
-} %<--------------------------------------------------------------------------–> %<--------------------------------------------------------------------------–>
+    \tkzDefMidPoint(#1,#3)
+    \tkz@@CalcLengthcm(tkzPointResult,#1){tkzLengthResult}
+    \tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult){%
+    tkzFirstPointResult}{%
+    tkzSecondPointResult}%
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
 \def\tkz at numtang{0}
 \pgfkeys{/tkz at tang/.cd,
-	at/.code          = {\def\tkz at numtang{0}\def\tkz at ptat{#1}},
-	from/.code        = {\def\tkz at numtang{1}\def\tkz at ptfrom{#1}},
-	from with R/.code = {\def\tkz at numtang{2}\def\tkz at ptfrom{#1}}
-	}
+  at/.code          = {\def\tkz at numtang{0}\def\tkz at ptat{#1}},
+  from/.code        = {\def\tkz at numtang{1}\def\tkz at ptfrom{#1}},
+  from with R/.code = {\def\tkz at numtang{2}\def\tkz at ptfrom{#1}}
+  }
 %<--------------------------------------------------------------------------–>
 \def\tkzDefTangent{\pgfutil at ifnextchar[{\tkz at Tangent}{\tkz at Tangent[]}}
 

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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-by.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-tools-eu-points-by.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,14 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-tools-eu-points-by.tex}  
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-el-points-by.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                        Transformations Géométriques
@@ -21,37 +19,33 @@
 %<--------------------------------------------------------------------------–>
 \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}} 
+ 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}}                                                   
+% inversion négative ?                                 
 } 
 %<--------------------------------------------------------------------------–>
 \def\tkzDefPointBy{\pgfutil at ifnextchar[{\tkz at DefPointBy}{\tkz at DefPointBy[]}}
@@ -75,6 +69,8 @@
    \tkzURotateInRad(\tkzcenter,\tkzangle)(#2)
 \or% 7
    \tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)     
+\or% 8
+   \tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)   
 \fi    
 \endgroup
 }
@@ -93,7 +89,7 @@
  \or% 3
    \tkzCSym(\tkzcenter)(#2){#3}
  \or% 4
-      \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
+   \tkzProjection(\tkzdeb,\tkzfin)(#2){#3}
  \or% 5
    \tkzRotateAngle(\tkzcenter,\tkzangle)(#2){#3}
  \or% 6
@@ -100,6 +96,8 @@
    \tkzRotateInRad(\tkzcenter,\tkzangle)(#2){#3}
  \or% 7
    \tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}    
+ \or% 8
+   \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}  
 \fi    
 \endgroup
 } 
@@ -235,7 +233,7 @@
   \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
+  \endpgfinterruptboundingbox
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
@@ -334,9 +332,9 @@
                                  {#2}
         \tkz at bx\pgf at x%
         \tkz at by\pgf at y%
-          \pgfinterruptboundingbox
-        \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);% 
-          \endpgfinterruptboundingbox     
+        \pgfinterruptboundingbox
+          \path (\tkz at bx,\tkz at by) coordinate (tkzPointResult);% 
+        \endpgfinterruptboundingbox     
   \endgroup
 }   
 %<--------------------------------------------------------------------------–>
@@ -405,22 +403,54 @@
       \else
          \xdef\tkz at pointtsf{\tkz at FirstPoint}
       \fi 
-   \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz at lna}
-   \tkzCalcLength[cm](#1,\PointIP)\tkzGetLength{tkz at lnb}
-	\edef\tkz at lnc{\tkz at lna/\tkz at lnb*\tkz at lna}
-   \tkzVecKNorm[\tkz at lnb](#1,\PointIP) 
-   }  
+    \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  
-   \tkzCalcLength[cm](#1,#2)\tkzGetLength{tkz at lna}% 
-   \tkzCalcLength[cm](#1,#3)\tkzGetLength{tkz at lnb}% 
-    \edef\tkz at lnc{\fpeval{\tkz at lna/\tkz at lnb*\tkz at lna}}
+   \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
 } 
 %<--------------------------------------------------------------------------–>
+%                   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
+} 
+%<--------------------------------------------------------------------------–>
 %                   Fin des transformations
 %<--------------------------------------------------------------------------–>
 \makeatother

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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-rnd.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-points-rnd.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,14 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-points-rnd.tex} 
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-el-points-rnd.tex} 
 %<--------------------------------------------------------------------------–>
 \makeatletter
 %<-------------------------------------------------------------------------–>
@@ -94,25 +92,25 @@
 %<--------------------------------------------------------------------------–>
 \def\tkzRandPointOnCircle(#1,#2){% 
 \pgfmathrandominteger{\tkzrnd}{0}{360}
-\tkz at ax#2 %
-	\edef\tkz at xa{\fpeval{\tkz at ax*cosd(\tkzrnd)}}
-	\edef\tkz at xb{\fpeval{\tkz at ax*sind(\tkzrnd)}}      
-  \path[coordinate]($(#1) + (\tkz at xa pt,\tkz at xb pt) $) coordinate (tkzPointResult);
+\tkz at ax#2cm %
+  \edef\tkz at pxa{\fpeval{\tkz at ax*cosd(\tkzrnd)}}
+  \edef\tkz at pxb{\fpeval{\tkz at ax*sind(\tkzrnd)}}      
+  \path[coordinate]($(#1) + (\tkz at pxa pt,\tkz at pxb pt) $) coordinate (tkzPointResult);
 }
 \def\tkzRandPointOnCircleThrough(#1,#2){% 
 \pgfmathrandominteger{\tkzrnd}{0}{360}
-\tkzCalcLength(#1,#2)
-	\edef\tkz at xa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
-	\edef\tkz at xb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}} 
-\path[coordinate]($(#1) + (\tkz at xa pt ,\tkz at xb pt) $) coordinate (tkzPointResult);
+\tkz@@CalcLength(#1,#2){tkzLengthResult}
+  \edef\tkz at pxa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
+  \edef\tkz at pxb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}} 
+\path[coordinate]($(#1) + (\tkz at pxa pt ,\tkz at pxb pt) $) coordinate (tkzPointResult);
 }
 %<--------------------------------------------------------------------------–>
 \def\tkzRandPointOnDisk(#1,#2){% 
   \pgfmathrandominteger{\tkzrnd}{0}{360}
-  \tkzCalcLength(#1,#2)
-  \edef\tkz at xa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
-  \edef\tkz at xb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}}  
-  \path[coordinate]($(#1) + (\tkz at xa pt ,\tkz at xb pt) $) coordinate (tkz at tmp);
+  \tkz@@CalcLength(#1,#2){tkzLengthResult}
+  \edef\tkz at pxa{\fpeval{\tkzLengthResult*cosd(\tkzrnd)}}
+  \edef\tkz at pxb{\fpeval{\tkzLengthResult*sind(\tkzrnd)}}  
+  \path[coordinate]($(#1) + (\tkz at pxa pt ,\tkz at pxb pt) $) coordinate (tkz at tmp);
   \pgfmathparse{rnd}
   \let\myrnd\pgfmathresult 
   \path[coordinate]  ($ (#1)!\myrnd!(tkz at tmp) $) coordinate (tkzPointResult);

Added: 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	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-spc.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,536 @@
+% tkz-obj-eu-points.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-el-points.tex} 
+\makeatletter  
+%add ExCenter
+%<--------------------------------------------------------------------------–>
+%                   Specific points
+%<--------------------------------------------------------------------------–>
+%                              barycentre
+%<--------------------------------------------------------------------------–>
+\def\tkzDefBarycentricPoint(#1){%
+\begingroup
+ \path[coordinate]  (barycentric cs:#1) coordinate (tkzPointResult); 
+\endgroup
+}
+\let\tkzDefBCPoint\tkzDefBarycentricPoint
+
+\def\tkzDefCentroid(#1){% 
+\begingroup
+   \xdef\tkz at arg{}
+   \foreach \X in {#1}
+        {%
+      \ifx\tkzutil at empty\tkz at arg%
+       \xdef\tkz at arg{\X=1}
+        \else
+         \xdef\tkz at arg{\tkz at arg,\X=1}
+        \fi
+      }     
+   \path[coordinate] (barycentric cs:\tkz at arg) coordinate (tkzPointResult);
+\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
+}
+%<--------------------------------------------------------------------------–>
+%                    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
+}
+\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%
+   \tkzCalcLength(#2,#3)
+   \tkzGetLength{tkz at rt}
+   \tkzCalcLength(#4,#5)
+   \tkzGetLength{tkz at rf}
+  \or% 1
+   \def\tkz at rt{#3}
+   \def\tkz at rf{#5}
+\fi
+  \path[coordinate](barycentric cs:#2=\tkz at rf,#4=\tkz at rt)coordinate (tkzPointResult);
+\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%
+   \tkzCalcLength(#2,#3)
+   \tkzGetLength{tkz at rt}
+   \tkzCalcLength(#4,#5)
+   \tkzGetLength{tkz at rf}
+  \or% 1
+   \def\tkz at rt{#3}
+   \def\tkz at rf{#5}
+\fi
+   \path[coordinate](barycentric cs:#2=-\tkz at rf,#4=\tkz at rt) coordinate(tkzPointResult);
+\endgroup
+}
+
+\let\tkzDefExtHomotheticCenter\tkzDefExtSimilitudeCenter
+
+%<--------------------------------------------------------------------------–> 
+%                   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){%  H orthocentre
+\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%
+   \advance\tkz at cx by\tkz at ax\relax%
+   \advance\tkz at cy by\tkz at ay\relax%
+   \advance\tkz at cx by\tkz at bx\relax%
+   \advance\tkz at cy by\tkz at by\relax%
+   \divide\tkz at cx by3\relax%
+   \divide\tkz at cy by3\relax
+   \pgfinterruptboundingbox 
+   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at cx}{\tkz at cy}}
+   \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
+%<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzptcircle/.cd,
+          angle/.store in     = \tkz at angle,
+          angle               = 0 ,
+          center/.store in    = \tkz at center,
+          radius/.store in    = \tkz at radius,
+}
+\def\tkzDefPointOnCircle{\pgfutil at ifnextchar[{\tkz at DefPointOnCircle}{\tkz at DefPointOnCircle[]}}     
+\def\tkz at DefPointOnCircle[#1]{%
+\begingroup 
+\pgfqkeys{/tkzptcircle}{#1}
+\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-points-spc.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-with.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points-with.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
-% tkz-obj-eu-points-with.tex
-% Copyright 2020  Alain Matthes
+% tkz-obj-el-points-with.tex
+% Copyright 2022  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.
@@ -7,14 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-points-with.tex}   
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-el-points-with.tex}   
 \makeatletter
 %<--------------------------------------------------------------------------–>
 %                          Vectors
@@ -39,9 +37,9 @@
 
 \def\tkzDuplicateSegment(#1,#2)(#3,#4){%
 \begingroup 
-    \tkzCalcLength(#1,#2)\tkzGetLength{tkz at firstlen}% 
-    \tkzCalcLength(#3,#4)\tkzGetLength{tkz at secondlen}%
-	 \edef\tkz at ratio{\fpeval{\tkz at firstlen/\tkz at secondlen}}
+    \tkz@@CalcLength(#1,#2){tkz at firstlen}% 
+    \tkz@@CalcLength(#3,#4){tkz at secondlen}%
+   \edef\tkz at ratio{\fpeval{\tkz at firstlen/\tkz at secondlen}}
     \tkz at VecKCoLinear[\tkz at ratio](#3,#4,#3)%
 \endgroup 
 }
@@ -263,6 +261,5 @@
    \endpgfinterruptboundingbox                     
 \endgroup
 }% 
-%<-------------------------------------------------------------------------–> 
 \makeatother
 \endinput
\ No newline at end of file

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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-points.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
-% tkz-obj-eu-points.tex
-% Copyright 2020  Alain Matthes
+ % tkz-obj-eu-points.tex
+% Copyright 2022  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.
@@ -7,491 +7,322 @@
 %   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”.
-% 
+% This work has the LPPL maintenance status “maintained”. 
 % The Current Maintainer of this work is Alain Matthes.
-%  utf8 encoding
-\def\fileversion{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-points.tex} 
-\makeatletter  
-%add ExCenter
-%<--------------------------------------------------------------------------–>
-%                   Specific points
-%<--------------------------------------------------------------------------–>
-%                              barycentre
-%<--------------------------------------------------------------------------–>
-\def\tkzDefBarycentricPoint(#1){%
-\begingroup
- \path[coordinate]  (barycentric cs:#1) coordinate (tkzPointResult); 
-\endgroup
-}
-\let\tkzDefBCPoint\tkzDefBarycentricPoint
 
-\def\tkzDefCentroid(#1){% 
-\begingroup
-   \xdef\tkz at arg{}
-	 \foreach \X in {#1}
-        {%
-		  \ifx\tkzutil at empty\tkz at arg%
-		   \xdef\tkz at arg{\X=1}
-        \else
-         \xdef\tkz at arg{\tkz at arg,\X=1}
-        \fi
-		  }		  
-   \path[coordinate] (barycentric cs:\tkz at arg) coordinate (tkzPointResult);
-\endgroup
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-obj-eu-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
 }
-
-%<--------------------------------------------------------------------------–>
-%                      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 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}
 }
-\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
+%<--------------------------------------------------------------------------->
+%           options pour point definition
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzPt/.cd,  
+         polar/.is if       = tkz at pt@polar,
+         polar/.default     = true,
+         polar              = false  
 }
-%<--------------------------------------------------------------------------–> 
-%                    Internal Similitude center
-%  Two circles have two similitude centers namely the internal center of similitude Si and the external similitude center Se.
-%<--------------------------------------------------------------------------–>
-\def\tkzDefIntSimilitudeCenter(#1,#2)(#3,#4){%
-\begingroup
-   \path[coordinate](barycentric cs:#1=#4,#3=#2)coordinate (tkzPointResult);
-\endgroup
+%<--------------------------------------------------------------------------->
+%        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{\fpeval{(\tkz at x-\tkz at init@xorigine)/\tkz at init@xstep}}
+\edef\tkzpt at ya{\fpeval{(\tkz at y-\tkz at init@yorigine)/\tkz at init@ystep}}
+\tkz at node
 }
-\let\tkzIntSimilitudeCenter\tkzDefIntSimilitudeCenter
-%<--------------------------------------------------------------------------–> 
-%                    External Similitude center
-%<--------------------------------------------------------------------------–>
-\def\tkzDefExtSimilitudeCenter(#1,#2)(#3,#4){%
-\begingroup
-   \path[coordinate](barycentric cs:#1=-#4,#3=#2) coordinate(tkzPointResult);
-\endgroup
-} 
-\let\tkzExtSimilitudeCenter\tkzDefExtSimilitudeCenter
-%<--------------------------------------------------------------------------–> 
-%                    triangle center
-%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------->
+% 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 numtc{0}
-\pgfkeys{/tkzDefTriangleCenter/.cd,
-   ortho/.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
+\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}%
 }
-%<--------------------------------------------------------------------------–> 
-%                    OrthoCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzOrthoCenter(#1,#2,#3){%  H orthocentre
-\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
+\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\tkz at drawnode#1{\path[coordinate](\tkzpt at xa,\tkzpt at ya) coordinate(#1);
+%              \tkz at DrawPt{#1}
+%              }
+%<--------------------------------------------------------------------------->
+%                    tkzSetUpPoint  définit la forme d'un point
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzsetuppt/.cd,
+      size/.store in       =  \tkz at pt@size,
+      color/.store in      =  \tkz at pt@color,
+      fill/.store in       =  \tkz at pt@fill, 
+      shape/.store in      =  \tkz at pt@shape,
+      size                 =  \tkz at euc@pointsize,
+      color                =  \tkz at euc@pointcolor,
+      fill                 =  \tkz at euc@pointcolor,
+      shape                =  \tkz at euc@pointshape,
+   /tkzsetuppt/.search also  = {/tikz},
+ } 
+\def\tkzSetUpPoint{\pgfutil at ifnextchar[{\tkz at SetUpPoint}{%
+                                        \tkz at SetUpPoint[]}}
+\def\tkz at SetUpPoint[#1]{%
+\pgfqkeys{/tkzsetuppt}{#1}
+% redefine point style with new values
+\tikzset{point style/.style={draw         = \tkz at pt@color,
+                             inner sep    = 0pt,
+                             shape        = \tkz at pt@shape,
+                             minimum size = \tkz at pt@size,
+                             fill         = \tkz at pt@fill}}
+}% end setup
+%<--------------------------------------------------------------------------->
+%                       Draw Point   
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzdrawpt/.cd, 
+  size/.code   = {\tikzset{point style/.append style={minimum size = #1}}},
+  size         = \tkz at euc@pointsize,
+  /tkzdrawpt/.search also  = {/tikz},
 }
-\let\tkzDefOrthoCenter\tkzOrthoCenter
-%<--------------------------------------------------------------------------–>
-%                      GravityCenter modif 3.03
-%<--------------------------------------------------------------------------–>
-\def\tkzCentroid(#1,#2,#3){%
+%<--------------------------------------------------------------------------    
+\def\tkzDrawPoint{\pgfutil at ifnextchar[{\tkz at DrawPoint}{\tkz at DrawPoint[]}} 
+\def\tkz at DrawPoint[#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%
-   \pgf at process{\pgfpointanchor{#3}{center}}%
-   \tkz at cx\pgf at x%
-   \tkz at cy\pgf at y%
-   \advance\tkz at cx by\tkz at ax\relax%
-   \advance\tkz at cy by\tkz at ay\relax%
-   \advance\tkz at cx by\tkz at bx\relax%
-   \advance\tkz at cy by\tkz at by\relax%
-   \divide\tkz at cx by3\relax%
-   \divide\tkz at cy by3\relax
-   \pgfinterruptboundingbox 
-   \pgfcoordinate{tkzPointResult}{\pgfqpoint{\tkz at cx}{\tkz at cy}}
-   \endpgfinterruptboundingbox   
+    \pgfqkeys{/tkzdrawpt}{#1}    
+    \node[point style,/tkzdrawpt/.cd,#1] at (#2) {};%2016
 \endgroup
 }
-\let\tkzBaryCenter\tkzCentroid
-
-%<--------------------------------------------------------------------------–>
-%                      CircumCenter
-%<--------------------------------------------------------------------------–>
-\def\tkzCircumCenter(#1,#2,#3){%
+%<---------------------------------------------------------------------------> 
+\def\tkzDrawPoints{\pgfutil at ifnextchar[{\tkz at drawpts}{\tkz at drawpts[]}} 
+%<---------------------------------------------------------------------------> 
+\def\tkz at drawpts[#1](#2){%
 \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
+   \pgfqkeys{/tkzdrawpt}{#1}        
+   \foreach \point in {#2}{\node[point style,/tkzdrawpt/.cd,#1] at (\point) {};} %2016
+\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
+%<--------------------------------------------------------------------------->
+% 
+%<--------------------------------------------------------------------------->
+\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\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}
 }
-\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
+%<-------------------------------------------------------------------------->
+%                   tkzLabelPoint          Affichage des LABELS pour un point
+%<-------------------------------------------------------------------------->  
+\def\tkzLabelPoint{\pgfutil at ifnextchar[{\tkz at LabelPoint}{\tkz at LabelPoint[]}} 
+\def\tkz at LabelPoint[#1](#2)#3{%
+      \node[label style,#1] at (#2) {#3};}%
+%<--------------------------------------------------------------------------->
+
+\def\tkzLabelPoints{\pgfutil at ifnextchar[{\tkz at LabelPoints}{\tkz at LabelPoints[]}}% 
+\def\tkz at LabelPoints[#1](#2){%
+ \foreach \point in {#2}{
+      \node[label style,#1] at (\point) {$\point$};}
+}%
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzsetuppt/.cd,
+      size/.store in       =  \tkz at pt@size,
+      color/.store in      =  \tkz at pt@color,
+      fill/.store in       =  \tkz at pt@fill, 
+      shape/.store in      =  \tkz at pt@shape,
+      size                 =  \tkz at euc@pointsize,
+      color                =  \tkz at euc@pointcolor,
+      fill                 =  \tkz at euc@pointcolor,
+      shape                =  \tkz at euc@pointshape,
+   /tkzsetuppt/.search also  = {/tikz},
+ } 
+\def\tkzSetUpPoint{\pgfutil at ifnextchar[{\tkz at SetUpPoint}{%
+                                        \tkz at SetUpPoint[]}}
+\def\tkz at SetUpPoint[#1]{%
+\pgfqkeys{/tkzsetuppt}{#1}
+% redefine point style with new values
+\tikzset{point style/.style={draw         = \tkz at pt@color,
+                             inner sep    = 0pt,
+                             shape        = \tkz at pt@shape,
+                             minimum size = \tkz at pt@size,
+                             fill         = \tkz at pt@fill}}
+}% end setup
+%<--------------------------------------------------------------------------->
+%
+%<--------------------------------------------------------------------------->
+% \pgfkeys{/tkzsetuplabel/.cd,
+%    /tkzsetuplabel/.search also  = {/tikz},
+%  }
+\def\tkzSetUpLabel{\pgfutil at ifnextchar[{\tkz at SetUpLabel}{%
+                                        \tkz at SetUpLabel[]}}
+\def\tkz at SetUpLabel[#1]{%
+%\pgfqkeys{/tkzsetuplabel}{#1}
+% redefine point style with new values
+\tikzset{label style/.style={#1}}
+}% end setup
+%<--------------------------------------------------------------------------->
+
+\pgfkeys{/tkzautolab/.cd,
+    center/.store in           = \tkz at center,
+    dist/.store in             = \tkz at dist,
+    dist                       = 0.15,
+   /tkzautolab/.search also   = {/tikz},
 }
-\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
+\def\tkzAutoLabelPoints{\pgfutil at ifnextchar[{\tkz at AutoLabelPoints}{\tkz at AutoLabelPoints[]}}% 
+\def\tkz at AutoLabelPoints[#1](#2){%
+\begingroup 
+\pgfqkeys{/tkzautolab}{#1} 
+ \foreach \point in {#2}{
+ \path (\tkz at center) -- ($ (\point) + \tkz at dist*($(\point)-(\tkz at center)$) $) node[/tkzautolab/.cd,#1]{$\point$};}
 \endgroup
+}%
+%<--------------------------------------------------------------------------->
+%                                 PointShowCoord  
+%<--------------------------------------------------------------------------->
+\pgfkeys{/tkzprcoord/.cd,
+          xlabel/.store in    = \tkz at xlabel,
+          ylabel/.store in    = \tkz at ylabel, 
+          xstyle/.code        = {\tikzset{xcoord style/.append style={#1}}},
+          ystyle/.code        = {\tikzset{ycoord style/.append style={#1}}},
+          noxdraw/.is if      = tkz at coord@noxdraw,
+          noxdraw/.default    = true,
+          noydraw/.is if      = tkz at coord@noydraw,
+          noydraw/.default    = true,
+          xlabel              = {},
+          ylabel              = {},
+          xstyle              = {},
+          ystyle              = {},
+          noxdraw             = false,
+          noydraw             = false,    
+  /tkzprcoord/.search also   = {/tikz},
 }
-\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
+\def\tkzPointShowCoord{\pgfutil at ifnextchar[{\tkz at PointShowCoord}{\tkz at PointShowCoord[]}}     
+\def\tkz at PointShowCoord[#1](#2){%
+\begingroup 
+\pgfqkeys{/tkzprcoord}{#1} 
+% 2019 for showcoord
+ \iftkznodedefined{tkz at xline}{}{%
+ \path (0,0) --(1,0) node(tkz at xline){};
+ \path (0,0) --(0,1) node(tkz at yline){};
+ }
+\iftkz at coord@noxdraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 |- tkz at xline);\fi 
+\iftkz at coord@noydraw\else\draw[arrow coord style,/tkzprcoord/.cd,#1] (#2)--(#2 -| tkz at yline);\fi   
+\ifx\tkzutil at empty\tkz at xlabel
+\else
+\path (#2)--(#2 |- tkz at xline)
+  node[xcoord style] {\tkz at xlabel};
+\fi
+\ifx\tkzutil at empty\tkz at ylabel
+\else
+ \path (#2)--(#2 -| tkz at yline)
+   node[ycoord style] {\tkz at ylabel};
+\fi    
 \endgroup
 }
-\let\tkzDefMittenpunktCenter\tkzMittenpunktCenter 
-\let\tkzDefMiddlespoint\tkzMittenpunktCenter     
-%<--------------------------------------------------------------------------–> 
-%                   Feuerbach point
-%<--------------------------------------------------------------------------–>
-\def\tkzFeuerbachCenter(#1,#2,#3){%  
+\let\tkzShowPointCoord\tkzPointShowCoord
+%<--------------------------------------------------------------------------->
+%                    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
-\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  
+   \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\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
-%<--------------------------------------------------------------------------–>
-\pgfkeys{/tkzptcircle/.cd,
-          angle/.store in     = \tkz at angle,
-          angle               = 0 ,
-          center/.store  in   =  \tkz at center,
-          radius/.store in    = \tkz at radius
-}
-\def\tkzDefPointOnCircle{\pgfutil at ifnextchar[{\tkz at DefPointOnCircle}{\tkz at DefPointOnCircle[]}}     
-\def\tkz at DefPointOnCircle[#1]{%
-\begingroup 
-\pgfqkeys{/tkzptcircle}{#1}
-\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
-} 
- 
+\let\tkzGetPointxy\tkzGetPointCoord
 \makeatother  
 \endinput
\ No newline at end of file

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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-polygons.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-polygons.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,13 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-polygons.tex} 
-% bug in regular polygon side 2020/03/18
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-polygons.tex} 
+% bug in regular polygon side 2020/03/09
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 %                                 Polygon 
@@ -25,9 +23,9 @@
 %<--------------------------------------------------------------------------–>
 \def\tkzDefSquare(#1,#2){
 \begingroup
- 	\tkzURotateAngle(#2,-90)(#1)
+  \tkzURotateAngle(#2,-90)(#1)
   \pgfnodealias{tkzFirstPointResult}{tkzPointResult}
- 	\tkzURotateAngle(#1, 90)(#2)
+  \tkzURotateAngle(#1, 90)(#2)
   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
 \endgroup
 }
@@ -39,11 +37,21 @@
 \tkzDefPointWith[colinear= at #3](#2,#1)
 \endgroup
 }
+%<---------------------   rectangle        ---------------------------------–>
+%
+%<--------------------------------------------------------------------------–>
 
+\def\tkzDefRectangle{\pgfutil at ifnextchar[{\tkz at DefRectangle}%
+                      {\tkz at DefRectangle[]}} 
+\def\tkz at DefRectangle[#1](#2,#3){%
+\begingroup
+   \path[#1](#2) -| coordinate (tkzFirstPointResult) (#3) -| coordinate (tkzSecondPointResult) (#2);
+\endgroup
+}
+
 %<-------------------------- gold rectangle -------------------------------–>
 %
 %<--------------------------------------------------------------------------–>
-
 \def\tkzDefGoldRectangle(#1,#2){
 \begingroup
   \tkzDefPointWith[K=-\tkzInvPhi](#2,#1)
@@ -52,18 +60,16 @@
   \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
 \endgroup
 }
-\def\tkzDrawGoldRectangle{\pgfutil at ifnextchar[{\tkz at DrawGoldRectangle}{%
-                                         		\tkz at DrawGoldRectangle[]}} 
-
+\let\tkzDefGoldenRectangle\tkzDefGoldRectangle
 %<----------------------------   Regular Polygon   -------------------------–>
 \def\tkz at numregpol{0}
 \pgfkeys{/defregpoly/.cd,
-			name/.store in    	=  \tkz at regpolname,
-			sides/.store in   	=  \tkz at regpolsides,
-			center/.code  		  =  \def\tkz at numregpol{0},
-			side/.code    	   	=  \def\tkz at numregpol{1},
-			name/.default				=  P,
-			sides/.default			=  5,
+      name/.store in      =  \tkz at regpolname,
+      sides/.store in     =  \tkz at regpolsides,
+      center/.code        =  \def\tkz at numregpol{0},
+      side/.code          =  \def\tkz at numregpol{1},
+      name/.default       =  P,
+      sides/.default      =  5,
       center
 } 
 \def\tkzDefRegPolygon{\pgfutil at ifnextchar[{\tkz at DefRegPolygon}{\tkz at DefRegPolygon[]}}
@@ -94,7 +100,7 @@
 \pgfmathsetmacro{\tkz at regangleside}{(180-\tkz at regangle)/2}
 \tkzDefMidPoint(#1,#2)
 \pgfnodealias{tkz at tempPt}{tkzPointResult}
-\tkzCalcLength[cm](tkz at tempPt,#1) \tkzGetLength{tkz at len}
+\tkz@@CalcLengthcm(tkz at tempPt,#1){tkz at len}
 \pgfmathsetmacro{\tkz at inscriberadius}{%
   \tkz at len*tan(90*(\tkz at regpolsides-2)/\tkz at regpolsides)}
 \tkzDefPointWith[orthogonal normed,K=\tkz at inscriberadius](tkz at tempPt,#2)
@@ -104,16 +110,6 @@
 \endgroup
 }
     
-%<----------------------------   CLIP       --------------------------------–>
-%
-%<--------------------------------------------------------------------------–>
-\def\tkzClipPolygon(#1,#2){%
-\path[clip] (#1)
-   \foreach \pt in {#1,#2}{--(\pt)}--cycle;
-}
 
- \def\tkzClipOutPolygon(#1,#2){\clip[tkzreverseclip] (#1)
- \foreach \pt in {#1,#2}{--(\pt)}--cycle;
-}
 \makeatother
 \endinput
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-protractor.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-protractor.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,14 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
- \typeout{2020/03/18 3.06c tkz-obj-eu-protractor.tex}  
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-protractor.tex}  
 \makeatletter
 %<--------------------------------------------------------------------------–>  
 %                   !!! idea from Y. Combe  !!! 
@@ -75,7 +73,7 @@
   \draw [>=stealth',->, thick,black] (0:2) arc(0:-32:2); 
   \draw [>=stealth',->, thick,black] (0:1.5) arc(0:-32:1.5); 
 } 
-\global\let\tkz@@Protractor\FullProtractor
+
 \pgfkeys{
   protractor/.cd,
   lw/.code        = {\def\cmdMO at Rap@lw{#1}},
@@ -83,21 +81,17 @@
   rotate/.code    = {\def\cmdMO at Rap@rotate{#1}},
   scale/.code     = {\def\cmdMO at Rap@scale{#1}},
   return/.is if   = tkz at RappReturn,
-  return/.default = true,
-	/protractor/.search also={/tikz}
+  return/.code     = \tkz at RappReturnfalse,
+  /protractor/.search also={/tikz},
+  lw = 0.4pt,
+  scale=1,
+  shift={(0,0)},
+  rotate=0
   }  
 
-
 \def\tkzProtractor{\pgfutil at ifnextchar[{\tkz at Protractor}{\tkz at Protractor[]}}
 \def\tkz at Protractor[#1](#2,#3){%
- \pgfkeys{%
-   /protractor/.cd,
-   shift={(0,0)},
-   rotate=0,
-   lw=0.4pt,
-   scale =1,
-   return=false
- }
+\tkz at RappReturntrue
 \pgfqkeys{/protractor}{#1}
   \tkz@@extractxy{#2}
   \global\tkz at ax\pgf at x
@@ -104,8 +98,11 @@
   \global\tkz at ay\pgf at y
   \tkzFindSlopeAngle(#2,#3)
   \tkzGetAngle{cmdMO at Rap@rotate}%
+  \global\let\tkz@@Protractor\FullProtractor%
   \iftkz at RappReturn
      \global\let\tkz@@Protractor\FullProtractorReturn
+     \else
+     \global\let\tkz@@Protractor\FullProtractor
  \fi
   \pgfmathsetlengthmacro{\MO at lw}{\cmdMO at Rap@lw * \cmdMO at Rap@scale}
   \begin{scope}[shift             = {(\tkz at ax,\tkz at ay)},%

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-sectors.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-sectors.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,24 +7,21 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-sectors.tex} 
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-sectors.tex} 
 \makeatletter  
 %<-----------------------    Sectors         ------------------------------–>
-\tikzset{sstyle/.style={#1}}
 \gdef\tkz at nums{0}
 \pgfkeys{/drawsector/.cd,
-	towards/.code               = {\def\tkz at nums{0}},
-	rotate/.code                = {\def\tkz at nums{1}},
-	R/.code                     = {\def\tkz at nums{2}},
-    R with nodes/.code          = {\def\tkz at nums{3}},
-	towards,
+  towards/.code               = {\def\tkz at nums{0}},
+  rotate/.code                = {\def\tkz at nums{1}},
+  R/.code                     = {\def\tkz at nums{2}},
+  R with nodes/.code          = {\def\tkz at nums{3}},
+  towards,
   /drawsector/.search also  = {/tikz},
 } 
 
@@ -63,8 +60,8 @@
      \edef\tkz at SecondAngle{\pgfmathresult}%
  \fi 
  \fi
-  \draw[shift = {(#2)},/drawsector/.cd,#1]%
-    (#2) --(\tkz at FirstAngle:#3) arc (\tkz at FirstAngle:\tkz at SecondAngle:#3)--cycle;
+ \draw[shift = {(#2)},/drawsector/.cd,#1]%
+   (#2) --(\tkz at FirstAngle:#3) arc (\tkz at FirstAngle:\tkz at SecondAngle:#3)--cycle;
  \endgroup
   } %  revoir il y a plus simple que ce shift !!! 
 %<--------------------------------------------------------------------------–>
@@ -74,10 +71,10 @@
                                          \tkz at DrawSectorN[]}}  
 \def\tkz at DrawSectorN[#1](#2,#3)(#4){%
 \begingroup
- \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius}
+ \tkz@@CalcLengthcm(#2,#3){tkz at radius}
  \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
  \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle} 
- \tkz at DrawSectorRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstAngle,%
+ \tkz at DrawSectorRAngles[#1](#2,\tkz at radius)(\tkz at FirstAngle,%
                                                \tkz at SecondAngle)      
 \endgroup
 }
@@ -88,15 +85,15 @@
                                               \tkz at DrawSectorRotate[]}} 
 \def\tkz at DrawSectorRotate[#1](#2,#3)(#4){%
 \begingroup
-    \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius} 
+    \tkz@@CalcLengthcm(#2,#3){tkz at radius} 
     \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstA} 
     \pgfmathadd{\tkz at FirstA}{#4}
-      \edef\tkz at SecondA{\pgfmathresult} 
+    \edef\tkz at SecondA{\pgfmathresult} 
     \pgfmathgreaterthan{#4}{0}   
   \ifdim\pgfmathresult pt=1 pt\relax% 
-   \tkz at DrawSectorRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstA,\tkz at SecondA)    
+   \tkz at DrawSectorRAngles[#1](#2,\tkz at radius)(\tkz at FirstA,\tkz at SecondA)    
   \else
-  \tkz at DrawSectorRAngles[#1](#2,\tkz at radius pt)(\tkz at SecondA,\tkz at FirstA)      
+  \tkz at DrawSectorRAngles[#1](#2,\tkz at radius)(\tkz at SecondA,\tkz at FirstA)      
   \fi        
 \endgroup
 }   
@@ -107,7 +104,7 @@
                                               \tkz at DrawSectorAngles[]}}
 \def\tkz at DrawSectorAngles[#1](#2,#3)(#4,#5){%
 \begingroup
-    \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius} 
+    \tkz@@CalcLengthcm(#2,#3){tkz at radius} 
     \tkz at DrawSectorRAngles[#1](#2,\tkz at radius pt)(#4,#5)      
 \endgroup
 }  
@@ -115,28 +112,16 @@
 %    \tkzDrawSectorRwithNodesAngles(O,A,B)(ang1,ang2)
 %<--------------------------------------------------------------------------–>
 \def\tkzDrawSectorRwithNodesAngles{\pgfutil at ifnextchar[{%
-            					   \tkz at DrawSectorRwithNodesAngles}{%
-            					   \tkz at DrawSectorRwithNodesAngles[]}}   
+                         \tkz at DrawSectorRwithNodesAngles}{%
+                         \tkz at DrawSectorRwithNodesAngles[]}}   
 \def\tkz at DrawSectorRwithNodesAngles[#1](#2,#3,#4)(#5,#6){%
 \begingroup
-    \tkzCalcLength(#3,#4)\tkzGetLength{tkz at radius}
+    \tkz@@CalcLengthcm(#3,#4){tkz at radius}
     \tkz at DrawSectorRAngles[#1](#2,\tkz at radius pt)(#5,#6)
 \endgroup
 } 
 % %<--------------------------------------------------------------------------–>
-% % \tkzDrawSectorRwithNodes(O,A,B)(C,D)  center O radius  AB from C to D
-% %<--------------------------------------------------------------------------–>
-% \def\tkzDrawSectorRwithNodes{\pgfutil at ifnextchar[{%
-%             \tkz at DrawSectorRwithNodes}{%
-%             \tkz at DrawSectorRwithNodes[]}}  
-% \def\tkz at DrawSectorRwithNodes[#1](#2,#3,#4)(#5,#6){%
-% \begingroup
-%     \tkzCalcLength(#3,#4){tkz at rad}   
-%     \tkzFindSlopeAngle(#2,#5)\tkzGetAngle{tkz at FirstAngle}  
-%     \tkzFindSlopeAngle(#2,#6)\tkzGetAngle{tkz at SecondAngle}
-%     \tkz at DrawSectorRAngles[#1](#2,\tkz at rad)(\tkz at FirstAngle,\tkz at SecondAngle)
-% \endgroup   
-% } 
+ 
 %<--------------------------------------------------------------------------–>
 %  \tkzDrawSectorR(O, rad)(A,B)
 %<--------------------------------------------------------------------------–>
@@ -150,18 +135,16 @@
 \endgroup   
 }
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 %                                 Fill
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 \gdef\tkz at nums{0}
 \pgfkeys{/@fillsector/.cd,
-			towards/.code               = {\def\tkz at nums{0}},
-			rotate/.code                = {\def\tkz at nums{1}},
-			R/.code                     = {\def\tkz at nums{2}},
-			R with nodes/.code          = {\def\tkz at nums{3}},
-			towards,
-			/@fillsector/.search also={/tikz},
+      towards/.code               = {\def\tkz at nums{0}},
+      rotate/.code                = {\def\tkz at nums{1}},
+      R/.code                     = {\def\tkz at nums{2}},
+      R with nodes/.code          = {\def\tkz at nums{3}},
+      towards,
+      /@fillsector/.search also={/tikz},
 } 
 
 \def\tkzFillSector{\pgfutil at ifnextchar[{\tkz at FillSector}{\tkz at FillSector[]}}
@@ -200,9 +183,9 @@
       \pgfmathadd{\tkz at SecondAngle}{360}
       \edef\tkz at SecondAngle{\pgfmathresult}%
   \fi\fi
-  \pgfmathsubtract{\tkz at FirstAngle}{\tkz at delta}
+  \pgfmathsubtract{\tkz at FirstAngle}{0}
   \edef\tkz at FirstAngle{\pgfmathresult}%
-  \pgfmathadd{\tkz at SecondAngle}{\tkz at delta}
+  \pgfmathadd{\tkz at SecondAngle}{0}
   \edef\tkz at SecondAngle{\pgfmathresult} 
   \path[shift  = {(#2)},/@fillsector/.cd,fill=\tkz at fillcolor,#1] (#2) -- %
       (\tkz at FirstAngle:#3) arc (\tkz at FirstAngle:\tkz at SecondAngle:#3)--cycle; 
@@ -214,7 +197,7 @@
 \def\tkzFillSectorN{\pgfutil at ifnextchar[{\tkz at FillSectorN}{\tkz at FillSectorN[]}} 
 \def\tkz at FillSectorN[#1](#2,#3)(#4){%
 \begingroup  
-  \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius}
+  \tkz@@CalcLength(#2,#3){tkz at radius}
   \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstAngle}  
   \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz at SecondAngle} 
   \tkz at FillSectorRAngles[#1](#2,\tkz at radius pt)(\tkz at FirstAngle,%
@@ -228,7 +211,7 @@
                                               \tkz at FillSectorRotate[]}} 
 \def\tkz at FillSectorRotate[#1](#2,#3)(#4){%
 \begingroup
-    \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius} 
+    \tkz@@CalcLength(#2,#3){tkz at radius} 
     \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz at FirstA} 
     \pgfmathadd{\tkz at FirstA}{#4}
     \edef\tkz at SecondA{\pgfmathresult} 
@@ -247,7 +230,7 @@
                                               \tkz at FillSectorAngles[]}}
 \def\tkz at FillSectorAngles[#1](#2,#3)(#4,#5){%
 \begingroup
-    \tkzCalcLength(#2,#3)\tkzGetLength{tkz at radius} 
+    \tkz@@CalcLength(#2,#3){tkz at radius} 
     \tkz at FillSectorRAngles[#1](#2,\tkz at radius pt)(#4,#5)      
 \endgroup
 }  
@@ -293,7 +276,7 @@
 %<--------------------------------------------------------------------------–>
 \def\tkz at ClipSectorRotate(#1,#2)(#3){%
 \begingroup
-    \tkzCalcLength(#1,#2)\tkzGetLength{tkz at radius} 
+    \tkz@@CalcLength(#1,#2){tkz at radius} 
     \tkzFindSlopeAngle(#1,#2)\tkzGetAngle{tkz at FirstA} 
     \pgfmathadd{\tkz at FirstA}{#3}
     \edef\tkz at SecondA{\pgfmathresult} 
@@ -308,10 +291,9 @@
 %<--------------------------------------------------------------------------–>
 %
 %<--------------------------------------------------------------------------–>
-
 \def\tkz at ClipSectorN(#1,#2)(#3){%
 \begingroup  
-  \tkzCalcLength(#1,#2)\tkzGetLength{tkz at radius}
+  \tkz@@CalcLength(#1,#2){tkz at radius}
   \tkzFindSlopeAngle(#1,#2)\tkzGetAngle{tkz at FirstAngle}  
   \tkzFindSlopeAngle(#1,#3)\tkzGetAngle{tkz at SecondAngle} 
   \tkz at ClipSectorRAngles(#1,\tkz at radius pt)(\tkz at FirstAngle,\tkz at SecondAngle)    
@@ -321,9 +303,9 @@
 %<--------------------------------------------------------------------------–>
 \def\tkz at numcs{0}
 \pgfkeys{/clipsector/.cd,
-			towards/.code               = {\def\tkz at numcs{0}},
-			rotate/.code                = {\def\tkz at numcs{1}},
-			R/.code                     = {\def\tkz at numcs{2}}, 
+      towards/.code               = {\def\tkz at numcs{0}},
+      rotate/.code                = {\def\tkz at numcs{1}},
+      R/.code                     = {\def\tkz at numcs{2}}, 
 }
 %<--------------------------------------------------------------------------–>
 \def\tkzClipSector{\pgfutil at ifnextchar[{\tkz at ClipSector}{%
@@ -330,7 +312,6 @@
                                         \tkz at ClipSector[]}}
 
 \def\tkz at ClipSector[#1](#2,#3)(#4){%
-\begingroup
 \pgfkeys{/clipsector/.cd}
 \pgfqkeys{/clipsector}{#1}
 \ifcase\tkz at numcs%
@@ -340,7 +321,6 @@
   \or% 2 
    \tkz at ClipSectorRAngles(#2,#3)(#4)
   \fi 
-\endgroup
 } 
 \makeatother
-\endinput
\ No newline at end of file
+\endinput 
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-show.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 %tkz-obj-eu-show.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,14 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-show.tex} 
+
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-obj-eu-show.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 % finding specific points in a triangle
@@ -26,8 +24,8 @@
     from/.store in      = {\tkz at frompoint},
     dist/.store in      = {\tkz at equ@dist},
     show/.is if         = tkz at equi@show,
-    dist        = 2,
-    show        = false,
+    dist                = 2,
+    show                = false,
      /tkzEquiPt/.search also={/tikz}
 }
 
@@ -43,8 +41,8 @@
    \tkzVecKNorm[-\tkz at equ@dist](tkzEQpoint,#2)
    \pgfnodealias{tkzSecondPointResult}{tkzPointResult}
    \iftkz at equi@show
-      \tkzCompass[#1](\tkz at frompoint,tkzFirstPointResult)
-      \tkzCompass[#1](\tkz at frompoint,tkzSecondPointResult)
+      \tkzCompass[compass style,#1](\tkz at frompoint,tkzFirstPointResult)
+      \tkzCompass[compass style,#1](\tkz at frompoint,tkzSecondPointResult)
    \fi
 \endgroup
 }
@@ -58,15 +56,15 @@
                                               \def\tkz at through{#1}}, 
     orthogonal/.code args      =  {through #1} {\global\def\tkz at numsh{1}%
                                                 \global\def\tkz at through{#1}},
-    parallel/.code args         = {through #1} {\global\def\tkz at numsh{2}%
+    parallel/.code args        = {through #1} {\global\def\tkz at numsh{2}%
                                             \global\def\tkz at through{#1}},    
-    bisector/.code                =           \global\def\tkz at numsh{3},
-    K/.code                     =   \def\tkz at koeff{#1}, 
-    length/.code                =   \def\tkz at show@length{#1},
-    ratio/.code                 =   \def\tkz at show@ratio{#1},
-    gap/.code                   =   \def\tkz at show@gap{#1},
-    size/.code                  =   \def\tkz at show@size{#1},
-    /show/.unknown/.code        =   {\let\searchname=\pgfkeyscurrentname
+    bisector/.code             =           \global\def\tkz at numsh{3},
+    K/.code                    =   \def\tkz at koeff{#1}, 
+    length/.code               =   \def\tkz at show@length{#1},
+    ratio/.code                =   \def\tkz at show@ratio{#1},
+    gap/.code                  =   \def\tkz at show@gap{#1},
+    size/.code                 =   \def\tkz at show@size{#1},
+    /show/.unknown/.code       =   {\let\searchname=\pgfkeyscurrentname
                                    \pgfkeysalso{\searchname/.try=#1,
                                    /tkzcompass/\searchname/.retry=#1,
                                    /tikz/\searchname/.retry=#1}%
@@ -76,10 +74,10 @@
 \def\tkz at ShowLine[#1](#2){% 
 \begingroup
 \pgfqkeys{/show}{ K   = 1,
-          gap   = 2,
-          ratio = .5,
-          length  = 1,
-          size  = 1
+          gap         = 2,
+          ratio       = .5,
+          length      = 1,
+          size        = 1
           }  
 \pgfqkeys{/show}{#1}  
 \ifcase\tkz at numsh%
@@ -100,8 +98,8 @@
 \def\tkz at ShowMediatorLine[#1](#2,#3){%
 \begingroup
 \pgfkeys{show/.cd,  gap    =  2,
-          ratio  =  .5,
-          length =  1
+          ratio            =  .5,
+          length           =  1
     }
 \pgfkeys{show/.cd,#1}  
   \path (#2) -- (#3) coordinate[pos=.5](tkzmidpoint);
@@ -117,10 +115,10 @@
   \pgfnodealias{MED at 1}{tkzPointResult} 
   \tkz at VecKNorm[\tkz at show@gap](tkzmidpoint,MED at tmp2) 
    \pgfnodealias{MED at 2}{tkzPointResult} 
-  \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#2,MED at 1)
-  \tkzCompass[#1](#3,MED at 1)
-  \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#2,MED at 2)
-  \tkzCompass[#1](#3,MED at 2)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#2,MED at 1)
+  \tkzCompass[compass style,#1](#3,MED at 1)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#2,MED at 2)
+  \tkzCompass[compass style,#1](#3,MED at 2)
 \endgroup
 }
 \def\tkzShowLLLine{\pgfutil at ifnextchar[{\tkz at ShowLLLine}{\tkz at ShowLLLine[]}}  
@@ -130,8 +128,8 @@
 \pgfkeys{show/.cd,#1}   
     \tkz at VecKCoLinear[1](#2,#3,#4)
      \pgfnodealias{tkz at lltmp}{tkzPointResult}
-    \tkzCompass[#1](#4,tkz at lltmp)
-    \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at lltmp)
+    \tkzCompass[compass style,#1](#4,tkz at lltmp)
+    \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at lltmp)
 \endgroup
 } 
 
@@ -155,8 +153,7 @@
     \pgfnodealias{tkzPointCo}{tkzPointResult}
     \tkzInterLL(#2,#3)(#4,tkzPointCo)
     \pgfnodealias{tkzPOpoint}{tkzPointResult}
-    \tkzCalcLength(#4,tkzPOpoint)           
-    \tkzGetLength{tkz at mathLen}
+    \tkz@@CalcLength(#4,tkzPOpoint){tkz at mathLen}
     \tkz at VecKNorm[1](#2,#3)
     \pgfnodealias{PO at tmp}{tkzPointResult}
     \tkz at VecKCoLinear[1](#2,PO at tmp,tkzPOpoint)  
@@ -176,10 +173,10 @@
      \fi
     \tkz at VecKCoLinear[-\tkz at show@gap](PO at tmp1,tkzPOpoint,tkzPOpoint)
     \pgfnodealias{PO at 3}{tkzPointResult}
-    \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](#4,PO at 1)
-    \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](#4,PO at 2)
-    \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](PO at 1,PO at 3)
-    \tkzCompass[#1,length=\tkz at show@length](PO at 2,PO at 3) 
+    \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](#4,PO at 1)
+    \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](#4,PO at 2)
+    \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](PO at 1,PO at 3)
+    \tkzCompass[compass style,#1,length=\tkz at show@length](PO at 2,PO at 3) 
 \endgroup
 }    
 %<-------------------------------------------------------------------------–> 
@@ -190,9 +187,10 @@
 \def\tkz at ShowBisectorLine[#1](#2,#3,#4){% 
 \begingroup
 \pgfkeys{show/.cd,  gap   = 2,
-          ratio =.  5,
-          length  = 1,
-          size  = 1}
+          ratio           =.  5,
+          length          = 1,
+          size            = 1
+          }
 \pgfkeys{show/.cd,#1}    
   \tkzVecKNorm(#3,#2)           
     \pgfnodealias{tkz at pt1}{tkzPointResult}  
@@ -212,10 +210,10 @@
     \pgfnodealias{BI at 2}{tkzPointResult}  
   \tkzVecK[\tkz at show@gap](#3,tkzBisPoint) 
     \pgfnodealias{tkzBisPoint}{tkzPointResult}
-  \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](#3,BI at 1)
-  \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](#3,BI at 2)
-  \tkzCompass[#1,length=\tkz at show@length](BI at 1,tkzBisPoint)
-  \tkzCompass[#1,length=\tkz at show@ratio *\tkz at show@length](BI at 2,tkzBisPoint)  
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](#3,BI at 1)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](#3,BI at 2)
+  \tkzCompass[compass style,#1,length=\tkz at show@length](BI at 1,tkzBisPoint)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio *\tkz at show@length](BI at 2,tkzBisPoint)  
 \endgroup    
 }
 %<--------------------------------------------------------------------------–>
@@ -269,11 +267,10 @@
   \or% 3
   \tkzShowTranslation[#1](\tkzfrom,\tkzto)(#2) 
   \fi  
-	\endpgfinterruptboundingbox   
+  \endpgfinterruptboundingbox   
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 \def\tkzShowTranslation{\pgfutil at ifnextchar[{\tkz at ShowTranslation}{%
                                           \tkz at ShowTranslation[]}}  
 
@@ -280,11 +277,10 @@
 \def\tkz at ShowTranslation[#1](#2,#3)(#4){%
 \begingroup
 \tkz at VecKCoLinear[1](#2,#3,#4) \pgfnodealias{tkz at lltmp}{tkzPointResult}
-\tkzCompass[#1](#4,tkz at lltmp)
-\tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at lltmp)
+\tkzCompass[compass style,#1](#4,tkz at lltmp)
+\tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at lltmp)
 \endgroup}
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 \def\tkzShowSymOrth{\pgfutil at ifnextchar[{\tkz at ShowSymOrth}{%
                                           \tkz at ShowSymOrth[]}}  
 \def\tkz at ShowSymOrth[#1](#2,#3)(#4){%
@@ -298,14 +294,13 @@
   \pgfnodealias{tkzPointofSym}{tkzPointResult}
   \tkz at VecK[2](#4,tkzPointofSym) 
   \pgfnodealias{tkz at pointtsf}{tkzPointResult}  
-  \tkzCompass[#1](#2,#4)
-  \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#3,#4)
-  \tkzCompass[#1](#2,tkz at pointtsf)
-  \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at pointtsf)   
+  \tkzCompass[compass style,#1](#2,#4)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#3,#4)
+  \tkzCompass[compass style,#1](#2,tkz at pointtsf)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](#3,tkz at pointtsf)   
 \endgroup
 } 
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 \def\tkzShowCSym{\pgfutil at ifnextchar[{\tkz at ShowCSym}{\tkz at ShowCSym[]}}
  
 \def\tkz at ShowCSym[#1](#2)(#3){%
@@ -315,12 +310,11 @@
  \tkz at ax=\pgf at x%
  \tkz at ay=\pgf at y%
 \path[coordinate](#2)--++(-\tkz at ax,-\tkz at ay) coordinate (tkz at pointtsf); 
-       \tkzCompass[#1](#2,tkz at pointtsf)
-       \tkzCompass[#1](#2,#3)
+       \tkzCompass[compass style,#1](#2,tkz at pointtsf)
+       \tkzCompass[compass style,#1](#2,#3)
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
 \def\tkzShowProjection{\pgfutil at ifnextchar[{\tkz at ShowProjection}{%
                                           \tkz at ShowProjection[]}}  
 \def\tkz at ShowProjection[#1](#2,#3)(#4){%
@@ -342,12 +336,11 @@
   \pgfnodealias{SO at 2}{tkzPointResult}
   \tkz at VecKNorm[-\tkz at show@gap](tkz at pointtsf,#4)      
   \pgfnodealias{SO at 3}{tkzPointResult}
-  \tkzCompass[#1](#4,SO at 1)
-  \tkzCompass[#1](#4,SO at 2)
-  \tkzCompass[#1](SO at 1,SO at 3)
-  \tkzCompass[#1,length=\tkz at show@ratio*\tkz at show@length](SO at 2,SO at 3)  
+  \tkzCompass[compass style,#1](#4,SO at 1)
+  \tkzCompass[compass style,#1](#4,SO at 2)
+  \tkzCompass[compass style,#1](SO at 1,SO at 3)
+  \tkzCompass[compass style,#1,length=\tkz at show@ratio*\tkz at show@length](SO at 2,SO at 3)  
 \endgroup
 }   
-%<-------------------------------------------------------------------------–> 
 \makeatother  
 \endinput
\ No newline at end of file

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	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-obj-eu-triangles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,5 +1,5 @@
 % tkz-obj-eu-triangles.tex
-% Copyright 2020  Alain Matthes
+% Copyright 2022  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.
@@ -7,15 +7,12 @@
 %   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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-obj-eu-triangles.tex} 
+\def\fileversion{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-obj-eu-triangles.tex} 
 \makeatletter  
 %<--------------------------------------------------------------------------–>
 %                       Triangle Equilateral
@@ -27,6 +24,16 @@
 \endgroup
 }
 %<--------------------------------------------------------------------------–>
+%                       Triangle Isosceles Right
+%<--------------------------------------------------------------------------–>
+\def\tkzDefIsoscelesRightTriangle(#1,#2){
+\begingroup
+ \tkzURotateAngle(#1,45)(#2)
+ \pgfnodealias{tkz at a}{tkzPointResult}
+  \tkzUHomo(#1,\tkzSqrTwobyTwo)(tkz at a)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
 
 \def\tkzDrawEquilateral{\pgfutil at ifnextchar[{\tkz at Equilateral}{%
                                          \tkz at Equilateral[]}} 
@@ -37,13 +44,25 @@
     \tkzDrawPolygon[#1](#2,#3,tkzPointResult)
 \endgroup
 }
+
 %<--------------------------------------------------------------------------–>
+
+\def\tkzDefIsoscelesRightTriangle{\pgfutil at ifnextchar[{\tkz at DefIsoscelesRightTriangle}{%
+                                         \tkz at DefIsoscelesRightTriangle[]}} 
+
+\def\tkz at DefIsoscelesRightTriangle[#1](#2,#3){%
+\begingroup
+ \tkzURotateAngle(#2,45)(#3)
+ \pgfnodealias{tkz at a}{tkzPointResult}
+ \tkzUHomo(#2,\tkzSqrTwobyTwo)(tkz at a)
+ \tkzDrawPolygon[#1](#2,#3,tkzPointResult)
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
 %                       Triangle OneTwo
 %<--------------------------------------------------------------------------–>
-\def\tkzPhi{1.618034}
-\def\tkzInvPhi{0.618034}
-\def\tkzSqrtPhi{1.27202}
 
+
 \def\tkzDefTwoOne(#1,#2){
 \begingroup
  \tkzDefPointWith[K=-.5](#2,#1)
@@ -56,7 +75,7 @@
 }
 \def\tkzDefSchoolTriangle(#1,#2){
 \begingroup
-  \tkzDefPointWith[K=-1](#2,#1) 
+ \tkzDefPointWith[K=-1](#2,#1) 
  \pgfnodealias{tkz at a}{tkzPointResult}
  \tkzURotateAngle(#1,30)(#2)
  \tkzInterLL(#1,tkzPointResult)(#2,tkz at a)
@@ -106,12 +125,13 @@
       school/.code            = \def\tkz at numtr{3},
       golden/.code            = \def\tkz at numtr{4},
       sublime/.code           = \def\tkz at numtr{4},
-      euclide/.code           = \def\tkz at numtr{5},
+      euclid/.code            = \def\tkz at numtr{5},
       gold/.code              = \def\tkz at numtr{6},
       cheops/.code            = \def\tkz at numtr{7},
       two angles/.code  args  = {#1 and #2} { \def\tkz at numtr{8}%
                                               \def\tkz at alpha{#1}%
                                              \def\tkz at beta{#2}},
+      isosceles right/.code    = \def\tkz at numtr{9},
      equilateral
 } 
 
@@ -138,6 +158,8 @@
   \tkzDefCheopsTriangle(#2,#3)  
   \or% 8
   \tkzDefTwoAnglesTriangle(#2,#3)  
+  \or% 9
+  \tkzDefIsoscelesRightTriangle(#2,#3)  
   \fi    
 \endgroup
 }
@@ -162,7 +184,7 @@
       feuerbach/.code                = \def\tkz at numtspc{6},
       euler/.code                    = \def\tkz at numtspc{7},
       tangential/.code               = \def\tkz at numtspc{8},
-      symmedian/.code                = \def\tkz at numtspc{9},
+      symmedial/.code                = \def\tkz at numtspc{9},
       name/.store in                 = \tkz at pttr@name,
       name                           =  {},
       centroid,       
@@ -191,7 +213,7 @@
   \or% 8
   \tkzDefTangentialTriangle(#2){#3}  
   \or% 8
-  \tkzDefSymmedianTriangle(#2){#3}  
+  \tkzDefSymmedialTriangle(#2){#3}  
     \fi    
 \endgroup
 }
@@ -201,10 +223,8 @@
 \def\SetUpPTTR#1{\pgfqkeys{/setuppttr}{#1}}
 \pgfkeys{/setuppttr/.cd,
    name/.store in   = \tkz at pttr@name,
-   name         = {}
+   name             = {}
 }
-\def\tkz at recuplast(#1,#2){\def\tkz at last{#1}}
-\def\tkz at stop{\tkz at stop}
 %<--------------------------------------------------------------------------– 
 %     InCentral
 %<--------------------------------------------------------------------------–
@@ -214,9 +234,8 @@
     \tkz at recuplast(#3)
     \tkzDefBisectorLine(#2,#1,\tkz at last)
     \tkzInterLL(#2,\tkz at last)(#1,tkzPointResult)
-    \pgfnodealias{#4}{tkzPointResult}
+    \pgfnodealias{\tkz at pttr@name#4}{tkzPointResult}
     \ifx\tkz at tmp\tkz at stop\else\@DefIncentralTriangle(#2,#3)(#5)\fi
-   \pgfnodealias{\tkz at pttr@name#4}{#4}
 }
 
 \def\tkzDefIncentralTriangle{\pgfutil at ifnextchar[{%
@@ -241,9 +260,8 @@
   \def\tkz at tmp{#5}%
   \tkz at recuplast(#3)
   \tkzDefExCircle(#2,#1,\tkz at last)  
-  \pgfnodealias{#4}{tkzPointResult}
+  \pgfnodealias{\tkz at pttr@name#4}{tkzPointResult}
   \ifx\tkz at tmp\tkz at stop\else\@DefExcentralTriangle(#2,#3)(#5)\fi
-  \pgfnodealias{\tkz at pttr@name#4}{#4}
 }
 
 \def\tkzDefExcentralTriangle{\pgfutil at ifnextchar[{%
@@ -264,9 +282,8 @@
    \def\tkz at tmp{#5}%
     \tkz at recuplast(#3)
    \tkzUProjection(#2,\tkz at last)(tkz at pt)
-   \pgfnodealias{#4}{tkzPointResult}
+   \pgfnodealias{\tkz at pttr@name#4}{tkzPointResult}
     \ifx\tkz at tmp\tkz at stop\else\@DefIntouchTriangle(#2,#3)(#5)\fi
-   \pgfnodealias{\tkz at pttr@name#4}{#4}
 }
 
 \def\tkzDefIntouchTriangle{\pgfutil at ifnextchar[{%
@@ -295,7 +312,10 @@
     \foreach \name  [count=\i] in {#5} {%
          \global\expandafter\edef\csname tkz at point\i\endcsname{\name}
    }
+   \begingroup
+   \def\tkz at pttr@name{}
    \tkzDefExcentralTriangle(#2,#3,#4){tkz at a,tkz at b,tkz at c}
+   \endgroup
    \tkzUProjection(#3,#4)(tkz at a)
    \pgfnodealias{\tkz at pttr@name\csname tkz at point1\endcsname}{tkzPointResult}
    \tkzUProjection(#2,#3)(tkz at c)
@@ -322,11 +342,11 @@
    \pgfnodealias{tkz at c}{tkzPointResult} \tkzGetLength{tkz at rc}
    \tkzDefExCircle(#4,#2,#3)
    \pgfnodealias{tkz at a}{tkzPointResult} \tkzGetLength{tkz at ra}
-   \tkzInterLC[R](#3,tkz at b)(tkz at b,\tkz at rb pt)
+   \tkzInterLC[R](#3,tkz at b)(tkz at b,\tkz at rb)
    \tkzGetFirstPoint{\tkz at pttr@name\csname tkz at point2\endcsname}
-   \tkzInterLC[R](#4,tkz at c)(tkz at c,\tkz at rc pt)
+   \tkzInterLC[R](#4,tkz at c)(tkz at c,\tkz at rc)
    \tkzGetFirstPoint{\tkz at pttr@name\csname tkz at point3\endcsname}
-   \tkzInterLC[R](#2,tkz at a)(tkz at a,\tkz at ra pt)
+   \tkzInterLC[R](#2,tkz at a)(tkz at a,\tkz at ra)
    \tkzGetFirstPoint{\tkz at pttr@name\csname tkz at point1\endcsname}
 \endgroup
 }
@@ -337,13 +357,12 @@
 \def\@DefCentroidTriangle(#1,#2,#3)(#4,#5){%
   \def\tkz at tmp{#5}%
   \tkz at recuplast(#3)
-  \pgfcoordinate{#4}{%
+  \pgfcoordinate{\tkz at pttr@name#4}{%
   \pgfpointscale{0.5}{%
-   \pgfpointadd{\pgfpointanchor{#2}{center}}%
+  \pgfpointadd{\pgfpointanchor{#2}{center}}%
                {\pgfpointanchor{\tkz at last}{center}}}
             }%
     \ifx\tkz at tmp\tkz at stop\else\@DefCentroidTriangle(#2,#3)(#5)\fi
-     \pgfnodealias{\tkz at pttr@name#4}{#4}
      }
 \def\tkzDefCentroidTriangle{\pgfutil at ifnextchar[{\tkz at DefCentroidTriangle}
                                     {\tkz at DefCentroidTriangle[]}} 
@@ -361,12 +380,9 @@
 \def\@DefOrthicTriangle(#1,#2,#3)(#4,#5){%
     \def\tkz at tmp{#5}%
     \tkz at recuplast(#3)
-          \pgfinterruptboundingbox 
     \tkzUProjection(#2,\tkz at last)(#1) 
-          \endpgfinterruptboundingbox 
-    \pgfnodealias{#4}{tkzPointResult}
+    \pgfnodealias{\tkz at pttr@name#4}{tkzPointResult}
     \ifx\tkz at tmp\tkz at stop\else\@DefOrthicTriangle(#2,#3)(#5)\fi
-   \pgfnodealias{\tkz at pttr@name#4}{#4}
 }
 
 \def\tkzDefOrthicTriangle{\pgfutil at ifnextchar[{\tkz at DefOrthicTriangle}
@@ -432,25 +448,24 @@
 %<--------------------------------------------------------------------------– 
 %     tkzDefSymmedianLine
 %<--------------------------------------------------------------------------–
-\def\@DefSymmedianTriangle(#1,#2,#3)(#4,#5){%
-   \def\tkz at tmp{#5}%
-    \tkz at recuplast(#3)
-    \tkzDefSymmedianLine(#2,#1,\tkz at last)
-    \tkzInterLL(#2,\tkz at last)(#1,tkzPointResult) 
-    \pgfnodealias{#4}{tkzPointResult}
-    \ifx\tkz at tmp\tkz at stop\else\@DefSymmedianTriangle(#2,#3)(#5)\fi
-   \pgfnodealias{\tkz at pttr@name#4}{#4}
+\def\@DefSymmedialTriangle(#1,#2,#3)(#4,#5){%
+    \def\tkz at tmp{#5}%
+     \tkz at recuplast(#3)
+     \tkzDefSymmedianLine(#2,#1,\tkz at last)
+     \tkzInterLL(#2,\tkz at last)(#1,tkzPointResult)
+     \pgfnodealias{\tkz at pttr@name#4}{tkzPointResult}
+     \ifx\tkz at tmp\tkz at stop\else\@DefSymmedialTriangle(#2,#3)(#5)\fi
 }
 
-\def\tkzDefSymmedianTriangle{\pgfutil at ifnextchar[{%
-                     \tkz at DefSymmedianTriangle}{%
-                     \tkz at DefSymmedianTriangle[]}}
+\def\tkzDefSymmedialTriangle{\pgfutil at ifnextchar[{%
+                     \tkz at DefSymmedialTriangle}{%
+                     \tkz at DefSymmedialTriangle[]}}
                      
-\def\tkz at DefSymmedianTriangle[#1](#2)#3{%
+\def\tkz at DefSymmedialTriangle[#1](#2)#3{%
 \begingroup
    \SetUpPTTR{#1}
    \pgfinterruptboundingbox 
-   \@DefSymmedianTriangle(#2,#2)(#3,\tkz at stop)
+   \@DefSymmedialTriangle(#2,#2)(#3,\tkz at stop)
    \endpgfinterruptboundingbox
 \endgroup
 }

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-angles.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-angles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,74 +0,0 @@
-% tkz-tools-angles.tex
-% Copyright 2020  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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c tkz-tools-angles.tex}   
-\makeatletter
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-% 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){%
- \begingroup
-   \pgfmathparse{#1}\xdef\tkz at FirstAngle{\pgfmathresult}%
-   \pgfmathparse{#2}\xdef\tkz at SecondAngle{\pgfmathresult}%
-   \pgfmathgreaterthan{\tkz at FirstAngle}{0}
-   \ifdim\pgfmathresult pt=1 pt\relax%
-     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
-     \ifdim\pgfmathresult pt=1 pt\relax%
-       \pgfmathsubtract{\tkz at FirstAngle}{360}
-       \xdef\tkz at FirstAngle{\pgfmathresult}%
-     \fi
-   \else
-     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
-     \ifdim\pgfmathresult pt=1 pt\relax%
-       		\pgfmathadd{\tkz at SecondAngle}{360}
-       	 	\xdef\tkz at SecondAngle{\pgfmathresult}%
-     \fi
-   \fi
- \endgroup
- }  
-%<--------------------------------------------------------------------------–>
-%                          Angle 
-% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
-%<--------------------------------------------------------------------------–>
-\def\tkzFindSlopeAngle(#1,#2){%
-\begingroup
-	\pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{%
-                               \pgfpointanchor{#2}{center}} 
-	\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

Added: 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	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,30 @@
+% tkz-tools-eu-BB.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-obj-eu-BB.tex}  
+\makeatletter
+%<--------------------------------------------------------------------------–>
+\def\tkzShowBB{\pgfutil at ifnextchar[{\tkz at ShowBB}{\tkz at ShowBB[]}} 
+\def\tkz at ShowBB[#1]{%
+ \draw[#1]  (current bounding box.south west) rectangle 
+            (current bounding box.north east);
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzClipBB{%
+\clip   (current bounding box.south west) rectangle 
+        (current bounding box.north east);
+}
+%<--------------------------------------------------------------------------–>
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-BB.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-angles.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-angles.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,72 @@
+% tkz-tools-angles.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-angles.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+% 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){%
+ \begingroup
+   \pgfmathparse{#1}\xdef\tkz at FirstAngle{\pgfmathresult}%
+   \pgfmathparse{#2}\xdef\tkz at SecondAngle{\pgfmathresult}%
+   \pgfmathgreaterthan{\tkz at FirstAngle}{0}
+   \ifdim\pgfmathresult pt=1 pt\relax%
+     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+     \ifdim\pgfmathresult pt=1 pt\relax%
+       \pgfmathsubtract{\tkz at FirstAngle}{360}
+       \xdef\tkz at FirstAngle{\pgfmathresult}%
+     \fi
+   \else
+     \pgfmathgreaterthan{\tkz at FirstAngle}{\tkz at SecondAngle}
+     \ifdim\pgfmathresult pt=1 pt\relax%
+          \pgfmathadd{\tkz at SecondAngle}{360}
+          \xdef\tkz at SecondAngle{\pgfmathresult}%
+     \fi
+   \fi
+ \endgroup
+ }  
+%<--------------------------------------------------------------------------–>
+%                          Angle 
+% Recherche l'angle formé par #1 et #2 par rapport à l'horizontale
+%<--------------------------------------------------------------------------–>
+\def\tkzFindSlopeAngle(#1,#2){%
+\begingroup
+  \pgfmathanglebetweenpoints{\pgfpointanchor{#1}{center}}{%
+                               \pgfpointanchor{#2}{center}} 
+  \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-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-base.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-base.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,89 @@
+% tkz-tools-eu-base.tex    
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-eu-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{\fpeval{\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{\fpeval{\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{\fpeval{\tkz at init@xmin/\tkz at init@xstep}}
+  \edef\tkz at xb{\fpeval{\tkz at init@xmax/\tkz at init@xstep}}
+  \edef\tkz at ya{\fpeval{\tkz at init@ymin/\tkz at init@ystep}}
+  \edef\tkz at yb{\fpeval{\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-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-colors.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,57 @@
+% tkz-tools-eu-colors
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-tools-eu-colors}  
+\makeatletter
+
+%<------  Initialisation of the colors with tkzSetUpColors  -----------------> 
+% Première macro SetUpColors %%%%%%%%%%%%%%%%%%%%%
+%Possible
+\pgfkeys{/tkzsucolor/.is family}
+\def\setupcolorkeys#1{%
+   \pgfkeys{/tkzsucolor,#1}}
+\setupcolorkeys{
+   background/.estore in   =  \setupcolor at background,
+   text/.estore in         =  \setupcolor at text,
+   @initial/.style         =  {background=white,text=black},
+   @apply/.code            =  {\pagecolor{\setupcolor at background}%
+                                    \color{\setupcolor at text}%
+ },
+}
+\def\tkzSetUpColors{\pgfutil at ifnextchar[{\tkz at SetUpColors}{\tkz at SetUpColors[]}}
+\def\tkz at SetUpColors[#1]{\setupcolorkeys{@initial,#1, at apply}}
+
+%<------  Initialisation of all colors   -----------------> 
+\pgfkeys{/tkzsupallcol/.cd,
+         background/.store in       = \tkz at suac@bkc,
+         text/.store in             = \tkz at suac@txt,
+         background                 = \tkz at backgroundcolor,% see tkz-euclide.cfg
+         text                       = \tkz at textcolor% idem
+        } 
+\def\tkzSetUpAllColors{\pgfutil at ifnextchar[{\tkz at SetUpAllColors}{%
+                                 \tkz at SetUpAllColors[]}} 
+\def\tkz at SetUpAllColors[#1]{%
+   \pgfqkeys{/tkzsupallcol}{#1} % now we redine the based colors
+   \def\tkz at fillcolor{\tkz at suac@bkc}   
+   \def\tkz at mainlinecolor{\tkz at suac@txt}
+   \def\tkz at textcolor{\tkz at suac@txt}
+   \def\tkz at otherlinecolor{\tkz at suac@txt!50}
+   \def\tkz at sua@color{\tkz at suac@txt} 
+   \tkzSetUpAxis[color=\tkz at suac@txt]
+   \tkzSetUpGrid[color=\tkz at suac@txt]      
+   \pagecolor{\tkz at suac@bkc}
+   \color{\tkz at suac@txt}  
+}
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-colors.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-intersections.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-intersections.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,403 @@
+% tkz-tools-intersections.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-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{%
+%\path (intersection of #1--#2 and #3--#4) coordinate(#5);
+% méthode with tikz
+\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\tkz at deltax{\fpeval{(\tkz at ax-\tkz at bx)/(28.45274)}}
+\edef\tkz at deltaxx{\fpeval{(\tkz at cx-\tkz at dx)/(28.45274)}}
+\edef\tkz at deltay{\fpeval{(\tkz at ay-\tkz at by)/(28.45274)}}
+\edef\tkz at deltayy{\fpeval{(\tkz at cy-\tkz at dy)/(28.45274)}}
+\edef\tkz at deltaxy{\fpeval{((\tkz at ax*\tkz at by)-(\tkz at ay*\tkz at bx))/(28.45274*28.45274)}}
+\edef\tkz at deltaxxyy{\fpeval{((\tkz at cx*\tkz at dy)-(\tkz at cy*\tkz at dx))/(28.45274*28.45274)}}
+\edef\tkz at div{\fpeval{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
+\edef\tkz at numx{\fpeval{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
+\edef\tkz at numy{\fpeval{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
+\edef\tkz at xs{\fpeval{round(\tkz at numx/\tkz at div,5)}}
+\edef\tkz at ys{\fpeval{round(\tkz at numy/\tkz at div,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\tkz at deltax{\fpeval{(\tkz at ax-\tkz at bx)/(28.45274)}}
+\edef\tkz at deltaxx{\fpeval{(\tkz at cx-\tkz at dx)/(28.45274)}}
+\edef\tkz at deltay{\fpeval{(\tkz at ay-\tkz at by)/(28.45274)}}
+\edef\tkz at deltayy{\fpeval{(\tkz at cy-\tkz at dy)/(28.45274)}}
+\edef\tkz at deltaxy{\fpeval{((\tkz at ax*\tkz at by)-(\tkz at ay*\tkz at bx))/(28.45274*28.45274)}}
+\edef\tkz at deltaxxyy{\fpeval{((\tkz at cx*\tkz at dy)-(\tkz at cy*\tkz at dx))/(28.45274*28.45274)}}
+\edef\tkz at div{\fpeval{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
+\edef\tkz at numx{\fpeval{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
+\edef\tkz at numy{\fpeval{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
+\edef\tkz at xs{\fpeval{round(\tkz at numx/\tkz at div,5)}}
+\edef\tkz at ys{\fpeval{round(\tkz at numy/\tkz at div,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){%
+\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} 
+\ifdim\tkz at mathLen pt>\tkzLengthResult pt\relax%
+\def\tkzflagLC{-1}
+\else
+\def\tkzflagLC{1}
+\fi
+}
+%<--------------------------------------------------------------------------–>
+\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},
+  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
+\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 de deux cercles  
+%<--------------------------------------------------------------------------–>
+\def\tkz at numcc{0}
+\pgfkeys{
+/circlecircle/.cd,
+ node/.code          = {\global\def\tkz at numcc{0}},
+ R/.code             = {\global\def\tkz at numcc{1}},
+with nodes/.code     = {\global\def\tkz at numcc{2}}
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzInterCC{\pgfutil at ifnextchar[{\tkz at InterCC}{\tkz at InterCC[]}}
+\def\tkz at InterCC[#1](#2,#3)(#4,#5){%
+\begingroup      
+\pgfkeys{/circlecircle/.cd,node}
+\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   
+\endgroup
+} 
+%<--------------------------------------------------------------------------–>
+%<--------------------------------------------------------------------------–>
+
+% 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;
+% } 
+
+\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 %
+\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 %
+\tkz at cx#2cm %
+\tkz at cy#4cm %
+\edef\tkz at aa{\fpeval{((\tkz at cx+\tkz at cy)/(2*\tkz at dd))*(\tkz at cx-\tkz at cy)+\tkz at dd/2}}
+\edef\tkz at xx{\fpeval{\tkz at ax+\tkz at aa/\tkz at dd*(\tkz at bx - \tkz at ax)}}
+\edef\tkz at yy{\fpeval{\tkz at ay+\tkz at aa/\tkz at dd*(\tkz at by - \tkz at ay)}} 
+\path[coordinate](\tkz at xx pt,\tkz at yy pt) coordinate (tkzRadialCenter);
+\edef\tkz at hh{\fpeval{sqrt((\tkz at cx+\tkz at aa)*(\tkz at cx-\tkz at aa))}}
+\edef\tkz at rx{\fpeval{\tkz at hh / \tkz at dd * (\tkz at ay - \tkz at by)}}
+\edef\tkz at ry{\fpeval{\tkz at hh / \tkz at dd * (\tkz at bx - \tkz at ax)}}
+\edef\tkz at xs{\fpeval{\tkz at xx + \tkz at rx}}
+\edef\tkz at ys{\fpeval{\tkz at yy + \tkz at ry}}
+\path[coordinate](\tkz at xs pt,\tkz at ys pt) coordinate (#5);
+\edef\tkz at xss{\fpeval{\tkz at xx - \tkz at rx}}
+\edef\tkz at yss{\fpeval{\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-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-math.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,129 @@
+% tkz-tools-eu-math.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-eu-math.tex}     
+\makeatletter
+%<-------------------------------------------------------------------------->
+% \tkzpointnormalised#
+% tkzCalcLength
+% \tkzGetLength
+% \tkzpttocm
+% \tkzcmtopt
+% \tkzFindSlope
+% option xfp
+
+%  \tkzpointnormalised    normalise un point A-->A' tq ||v(OA')=1||
+% équivalent de \pgfpointnormalised avec fp
+% 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}%
+\edef\tkz at den{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
+\edef\tkz at coordx{\fpeval{\pgf at x/\tkz at den}}
+\edef\tkz at coordx{\fpeval{round(\tkz at coordx,5)}}
+\edef\tkz at coordy{\fpeval{\pgf at y/\tkz at den}}
+\edef\tkz at coordy{\fpeval{round(\tkz at coordy,5)}}
+\pgf at x = \tkz at coordx pt
+\pgf at y = \tkz at coordy pt
+}
+%<-------------------------------------------------------------------------->
+% 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
+%<-------------------------------------------------------------------------->
+%\newif\iftkzLengthIncm \iftkzLengthIncmtrue
+\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){%
+%\pgfkeys{tkzcalclen/.cd, cm = true}
+\pgfqkeys{/tkzcalclen}{#1}%   
+\begingroup
+\tkz@@CalcLength(#2,#3){tkzLengthResult}
+\iftkzLengthIncm 
+   \pgfmathparse{\tkzLengthResult pt/1cm}
+   \edef\tkz at xfpMathLen{\fpeval{round(\pgfmathresult,5)}}
+   \global\let\tkzLengthResult\tkz at xfpMathLen  
+\fi 
+\endgroup
+}%
+\def\tkz@@CalcLength(#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,5)}}
+\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 xfpMathLen{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
+\edef\tkz at xfpMathLen{\fpeval{round(\tkz at xfpMathLen,5)}}
+\pgfmathparse{\tkz at xfpMathLen pt/1cm}
+\edef\tkz at xfpMathLen{\fpeval{round(\pgfmathresult,5)}}
+\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  
+  \pgfmathparse{#1/1cm}
+  \edef\tkz at mathresult{\fpeval{round(\pgfmathresult,5)}}
+  \global\let\tkz at mathresult\tkz at mathresult
+  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
+\endgroup
+}%
+%<-------------------------------------------------------------------------->
+%     \tkzcmtopt  passage de cm   pt mul par 28.45274
+%<--------------------------------------------------------------------------
+\def\tkzcmtopt(#1)#2{%
+\begingroup 
+   \pgfmathparse{#1*1cm}
+  \edef\tkz at mathresult{\fpeval{round(\pgfmathresult,5)}}
+  \global\let\tkz at mathresult\tkz at mathresult
+  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
+\endgroup  
+}% 
+
+%  Schrodinger's cat idea 03/01/20
+\tikzset{xfp/.code={%
+\pgfmathdeclarefunction*{veclen}{2}{%
+\begingroup%
+    \pgfmath at x##1pt\relax%
+    \pgfmath at y##2pt\relax%
+    \edef\tkz at xfpMathLen{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
+    \pgfmath at returnone\tkz at xfpMathLen pt%
+\endgroup%
+}}}
+\makeatother 
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-math.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-modules.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,67 @@
+% tkz-tools-modules
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-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}%
+\def\tkz at obj@txt{all}
+\def\usetkzobj{\pgfutil at ifnextchar[{\use at usetkzobj}{\use@@usetkzobj}}%}
+\def\use at usetkzobj[#1]{\use@@usetkzobj{#1}}
+\def\use@@usetkzobj#1{% 
+  \def\tkz at list{#1}
+  \ifx\tkz at obj@txt\tkz at list \edef\tkz at list{\tkz at obj@all}% 
+      \else  
+      \edef\tkz at list{#1}%
+    \fi
+  \pgfutil at for\tkz at temp:=\tkz at list\do{%
+    \expandafter\ifx\csname tkz at library@\tkz at temp @loaded\endcsname\relax%
+      \expandafter\global\expandafter\let\csname tkz at library@\tkz at temp @loaded\endcsname=\pgfutil at empty%
+      \expandafter\edef\csname tkz at obj@#1 at atcode\endcsname{\the\catcode`\@}
+      \expandafter\edef\csname tkz at obj@#1 at barcode\endcsname{\the\catcode`\|}
+      \catcode`\@=11
+      \catcode`\|=12   
+      \input tkz-obj-\tkz at temp.tex 
+      \catcode`\@=\csname tkz at obj@#1 at atcode\endcsname
+      \catcode`\|=\csname tkz at obj@#1 at barcode\endcsname  
+    \fi%
+  }%
+}%
+%<---------------------------------------------------------–>
+\def\tkz at tool@all{math-xfp}
+\def\tkz at tool@txt{all}
+
+\def\usetkztool{\pgfutil at ifnextchar[{\use at usetkztool}{\use@@usetkztool}}%}
+\def\use at usetkztool[#1]{\use@@usetkztool{#1}}
+\def\use@@usetkztool#1{% 
+  \def\tkz at list{#1}
+  \ifx\tkz at tool@txt\tkz at list \edef\tkz at list{\tkz at tool@all}%
+      \else
+      \edef\tkz at list{#1}%
+    \fi
+  \pgfutil at for\tkz at temp:=\tkz at list\do{%
+    \expandafter\ifx\csname tkz at library@\tkz at temp @loaded\endcsname\relax%
+      \expandafter\global\expandafter\let\csname tkz at library@\tkz at temp @loaded\endcsname=\pgfutil at empty%
+      \expandafter\edef\csname tkz at tool@#1 at atcode\endcsname{\the\catcode`\@}
+      \expandafter\edef\csname tkz at tool@#1 at barcode\endcsname{\the\catcode`\|}
+      \catcode`\@=11
+      \catcode`\|=12
+      \input tkz-tools-\tkz at temp.tex
+      \catcode`\@=\csname tkz at tool@#1 at atcode\endcsname
+      \catcode`\|=\csname tkz at tool@#1 at barcode\endcsname
+    \fi%
+  }%
+}%
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-modules.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-text.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,88 @@
+% tkz-tools-eu-text.tex
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00 tkz-tools-eu-text.tex}   
+\makeatletter
+%<--------------------------------------------------------------------------–>
+%                                         tkzText
+%<--------------------------------------------------------------------------–>
+\def\tkz at parsenode#1{%
+\tkz at getvirg#1,\@nil
+\iftkz at node  
+\else
+  \tkz at getfromcart#1\@nil   
+\fi  
+}   
+\def\tkz at getvirg#1,#2\@nil{%
+\ifx\tkzempty#2\tkzempty%
+   \tkz at nodetrue 
+\else
+   \tkz at nodefalse  
+\fi
+}      
+\def\tkzText{\pgfutil at ifnextchar[{\tkz at Text}{\tkz at Text[]}}
+\def\tkz at Text[#1](#2)#3{%
+ \begingroup
+    \tkz at parsenode{#2} 
+ \iftkz at node 
+   \node[#1] at (#2){#3}; 
+ \else
+  \edef\tkzpt at xa{\fpeval{(\tkz at absc-\tkz at init@xorigine)/\tkz at init@xstep}}
+  \edef\tkzpt at ya{\fpeval{(\tkz at ord-\tkz at init@yorigine)/\tkz at init@ystep}}
+  \node[#1] at (\tkzpt at xa,\tkzpt at ya){#3};% 
+  \fi
+\endgroup
+}%
+% %<--------------------------------------------------------------------------–>
+% %                                    légende
+% %<--------------------------------------------------------------------------–>
+\pgfkeys{/tkzlegend/.cd,  
+   line/.is if                 =    tkz at legend@line,
+   line/.default               =    true,
+   line                 =  false,
+   /tkzlegend/.search also     =    {/tikz}, 
+}
+\def\tkzLegend{\pgfutil at ifnextchar[{\tkz at Legend}{\tkz at Legend[]}} 
+\def\tkz at Legend[#1](#2,#3)#4{%
+\pgfqkeys{/tkzlegend}{#1}
+\begingroup  
+  \c at pgfmath@counta=0 %
+  \edef\tkzpt at xa{\fpeval{(#2-\tkz at init@xorigine)/\tkz at init@xstep}}
+  \edef\tkzpt at ya{\fpeval{(#3-\tkz at init@yorigine)/\tkz at init@ystep}}
+  \node[/tkzlegend/.cd,#1] at (\tkzpt at xa,\tkzpt at ya) {%
+\begin{tikzpicture}
+   \foreach \motif/\size/\col/\mtext in {#4}{%
+       \iftkz at legend@line
+          \draw[color      = \col,
+                line width = \size,
+                style      = \motif,
+                text       = \tkz at mainlinecolor]%
+          (0cm ,\the\c at pgfmath@counta ex)--%
+               (\tkz at legend@line at len,\the\c at pgfmath@counta ex) 
+       \else  
+          \draw plot[mark size    = \size,%
+                     mark         = \motif,%
+                     mark options = {color=\col}]%
+           coordinates{(0 ex,\the\c at pgfmath@counta ex)}%
+         \fi
+           node[right=1ex] {\mtext};
+          \global\advance\c at pgfmath@counta by 3 %  
+       }% 
+
+\end{tikzpicture}%
+};% 
+\endgroup
+}   
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-text.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-utilities.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -0,0 +1,172 @@
+% tkz-tools-eu-utilities
+% Copyright 2022  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{4.00}
+\def\filedate{2022/01/04} 
+\typeout{2022/01/04 4.00  tkz-tools-eu-utilities.tex}  
+\makeatletter
+\pgfkeys{/tkzClip/.cd, 
+space/.store in    = {\tkz at CLI@space},
+space    = {}} 
+
+\def\tkzClip{\pgfutil at ifnextchar[{\tkz at Clip}{\tkz at Clip[]}} 
+\def\tkz at Clip[#1]{%
+
+\pgfqkeys{/tkzClip}{#1} 
+\ifx\tkzutil at empty\tkz at CLI@space
+    \clip (\tkz at xa,\tkz at ya) rectangle (\tkz at xb,\tkz at yb);
+ \else
+ \edef\tkz at xxa{\fpeval{\tkz at xa-\tkz at CLI@space}}
+ \edef\tkz at yya{\fpeval{\tkz at ya-\tkz at CLI@space}}
+ \edef\tkz at xxb{\fpeval{\tkz at xb+\tkz at CLI@space}} % correction bug 2020
+ \edef\tkz at yyb{\fpeval{\tkz at yb+\tkz at CLI@space}}
+ \clip (\tkz at xxa,\tkz at yya) rectangle (\tkz at xxb,\tkz at yyb);
+\fi
+} 
+
+% for testing results
+\def\extractxy#1{%
+\pgfextractx{\pgf at x}{\pgfpointanchor{#1}{center}}
+\pgfextracty{\pgf at y}{\pgfpointanchor{#1}{center}}
+\typeout{#1 \the\pgf at x,\the\pgf at y} 
+} 
+%<-------------- some tools -------------------------------------------------> 
+\def\tkzutil at empty{}
+\def\tkzutil at firstofone#1{#1}
+\def\tkzutil at firstoftwo#1#2{#1}
+\def\tkzutil at secondoftwo#1#2{#2}
+%<--------------------------------------------------------------------------–>
+\long\def\tkzutil at ifundefined#1{%
+  \expandafter\ifx\csname#1\endcsname\relax
+    \expandafter\tkzutil at firstoftwo
+  \else
+    \expandafter\tkzutil at secondoftwo
+  \fi} 
+%<--------------------------------------------------------------------------–>
+\long\def\iftkznodedefined#1#2#3{%
+    \tkzutil at ifundefined{pgf at sh@ns@#1}{#3}{#2}%
+}
+%<--------------------------------------------------------------------------–>
+\gdef\tkzActivOff{%
+   \edef\tkzTwoPtCode{\the\catcode`\:} 
+   \edef\tkzPtExCode{\the\catcode`\!} 
+   \edef\tkzPtVirCode{\the\catcode`\;} 
+   \catcode`\:=12 \catcode`\!=12 \catcode`\;=12
+   }%
+\gdef\tkzActivOn{%
+   \catcode`\:=\tkzTwoPtCode\relax
+   \catcode`\!=\tkzPtExCode\relax
+   \catcode`\;=\tkzPtVirCode\relax
+}% 
+%<--------------------------------------------------------------------------–>
+%              Pour savoir le nombre de décimales d'un nombre
+% le nombre dans #1 et le résultat dans \c at pgfmath@countb
+%<--------------------------------------------------------------------------–>
+\newcommand\tkz at getdecimal[1]{\expandafter\@getdecimal#1.\@nil}
+\def\@getdecimal#1.#2\@nil{%
+  \ifx\empty#2\empty
+    % Si #2 est vide, c'est qu'il n'y avait pas de point
+    % dans la chaîne initiale
+    \c at pgfmath@countb0 %
+   \gdef\tkz at decpart{}%
+  \else
+    % sinon c'est la chaîne qui suit le point décimal...
+    \CountToken{#2}%
+    % ... y compris le point en trop ajouté par \tkz at getdecimal  :-)
+    \advance\c at pgfmath@countb by-1 %
+    \@@getdecimal#2\@nil
+  \fi
+}
+\def\@@getdecimal#1.\@nil{\gdef\tkz at decpart{#1}}
+%<---------------------------------------------------------–>
+% code from JCC modifi
+\newcommand\CountToken[1]{%
+ \c at pgfmath@countb0 %
+  \expandafter\C at untToken#1\@nil
+%modifi ajout du expandafter
+}
+\newcommand\C at untToken{%
+  \afterassignment\C at untT@ken\let\CurrT at ken=
+}
+\newcommand\C at untT@ken{%
+ \ifx\CurrT at ken\@nil \else
+   \advance\c at pgfmath@countb by1 %
+   \expandafter\C at untToken
+ \fi
+}
+%<---------------------------------------------------------–>
+\def\tkz at recuplast(#1,#2){\def\tkz at last{#1}}
+\def\tkz at stop{\tkz at stop}
+% end code from JCC    
+%<---------------------------------------------------------–>
+%            Tools
+%<---------------------------------------------------------–>
+%<–––––––– code from TeX in Practice ––––––––>
+\def\SubStringConditional #1#2{%
+    TT\fi
+    \edef\@MainString{#1}%
+    \edef\@SubStringConditionalTemp{{#1}{#2}}%
+    \expandafter\@SubStringConditional\@SubStringConditionalTemp
+}
+\def\@SubStringConditional #1#2{% 
+    \def\@TestSubS ##1#2##2\\{% 
+        \def\@TestTemp{##1}% 
+    }% 
+    \@TestSubS #1#2\\
+    \ifx\@MainString\@TestTemp
+        \tkz at TestSubStringfalse
+    \else
+        \tkz at TestSubStringtrue
+    \fi
+    \iftkz at TestSubString
+}
+\def\RecursionMacroEnd #1#2#3{% 
+    #1\relax
+        \def\@RecursionMacroEndNext{#2}% 
+    \else
+        \def\@RecursionMacroEndNext{#3}% 
+    \fi
+    \@RecursionMacroEndNext
+}
+\def\ReplaceSubStrings #1#2#3#4{%
+    \def\@ReplaceResult{#1}%
+    \edef\@ReplaceMain{#2}%
+    \edef\@ReplaceSub{#3}%
+    \edef\@ReplaceSubRep{#4}%
+    \@ReplaceSubStrings
+}
+\def\@ReplaceSubStrings{% 
+    \RecursionMacroEnd
+        {\if\SubStringConditional{\@ReplaceMain}{\@ReplaceSub}}%
+      {\@ReplaceSubStringsDo}{\expandafter\edef\@ReplaceResult{\@ReplaceMain}}%
+}
+\def\@ReplaceSubStringsDoX{%
+    \def\@ReplaceSubStringsDoA ##1%
+}%
+\def\@ReplaceSubStringsDo{% 
+    \expandafter\@ReplaceSubStringsDoX \@ReplaceSub
+                                    ##2\@EndReplaceSubStrings{%
+        \edef\@ReplaceMain{##1\@ReplaceSubRep ##2}%
+    }%
+    \expandafter\@ReplaceSubStringsDoA\@ReplaceMain
+        \@EndReplaceSubStrings
+    \@ReplaceSubStrings
+}
+%<---------------------------------------------------------–>
+\def\DisabledNumprint{%
+      \let\tkz at numprint\numprint
+      \let\numprint\relax
+      }
+\def\EnabledNumprint{\let\numprint\tkz at numprint} 
+%<---------------------------------------------------------–>
+\makeatother
+\endinput
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-eu-utilities.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-intersections.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-intersections.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-intersections.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,402 +0,0 @@
-% tkz-tools-intersections.tex
-% Copyright 2020  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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c tkz-tools-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{%
-%\path (intersection of #1--#2 and #3--#4) coordinate(#5);
-% méthode with tikz
-\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\tkz at deltax{\fpeval{(\tkz at ax-\tkz at bx)/(28.45274)}}
-\edef\tkz at deltaxx{\fpeval{(\tkz at cx-\tkz at dx)/(28.45274)}}
-\edef\tkz at deltay{\fpeval{(\tkz at ay-\tkz at by)/(28.45274)}}
-\edef\tkz at deltayy{\fpeval{(\tkz at cy-\tkz at dy)/(28.45274)}}
-\edef\tkz at deltaxy{\fpeval{((\tkz at ax*\tkz at by)-(\tkz at ay*\tkz at bx))/(28.45274*28.45274)}}
-\edef\tkz at deltaxxyy{\fpeval{((\tkz at cx*\tkz at dy)-(\tkz at cy*\tkz at dx))/(28.45274*28.45274)}}
-\edef\tkz at div{\fpeval{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
-\edef\tkz at numx{\fpeval{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
-\edef\tkz at numy{\fpeval{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
-\edef\tkz at xs{\fpeval{round(\tkz at numx/\tkz at div,5)}}
-\edef\tkz at ys{\fpeval{round(\tkz at numy/\tkz at div,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\tkz at deltax{\fpeval{(\tkz at ax-\tkz at bx)/(28.45274)}}
-\edef\tkz at deltaxx{\fpeval{(\tkz at cx-\tkz at dx)/(28.45274)}}
-\edef\tkz at deltay{\fpeval{(\tkz at ay-\tkz at by)/(28.45274)}}
-\edef\tkz at deltayy{\fpeval{(\tkz at cy-\tkz at dy)/(28.45274)}}
-\edef\tkz at deltaxy{\fpeval{((\tkz at ax*\tkz at by)-(\tkz at ay*\tkz at bx))/(28.45274*28.45274)}}
-\edef\tkz at deltaxxyy{\fpeval{((\tkz at cx*\tkz at dy)-(\tkz at cy*\tkz at dx))/(28.45274*28.45274)}}
-\edef\tkz at div{\fpeval{(\tkz at deltax*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxx)}}
-\edef\tkz at numx{\fpeval{(\tkz at deltaxy*\tkz at deltaxx)-(\tkz at deltax*\tkz at deltaxxyy)}}
-\edef\tkz at numy{\fpeval{(\tkz at deltaxy*\tkz at deltayy)-(\tkz at deltay*\tkz at deltaxxyy)}}
-\edef\tkz at xs{\fpeval{round(\tkz at numx/\tkz at div,5)}}
-\edef\tkz at ys{\fpeval{round(\tkz at numy/\tkz at div,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){%
-\tkz at Projection(#1,#2)(#3){tkz at pth}% distance centre à la ligne
-\tkz@@CalcLength(#3,tkz at pth){tkz at mathLen}%	
-\tkzCalcLength(#3,#4) 
-\ifdim\tkz at mathLen pt>\tkzLengthResult pt\relax%
-\def\tkzflagLC{-1}
-\else
-\def\tkzflagLC{1}
-\fi
-}
-%<--------------------------------------------------------------------------–>
-\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},
-	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
-	\tkzCalcLength(#4,#5)
-	\tkzInterLCR(#2,#3)(#4,\tkzLengthResult pt){tkzFirstPointResult}%
-											   {tkzSecondPointResult}
-\or% 1
-    \tkzInterLCR(#2,#3)(#4,#5){tkzFirstPointResult}
-    						   {tkzSecondPointResult}%  
-\or% 2
-    \tkzInterLCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}%
-    						    	  {tkzSecondPointResult}% 
-\fi
-\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
-%     \tkzCalcLength(#3,#4)\tkzGetLength{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
-    \tkzCalcLength(#4,#5)\tkzGetLength{tkz at radius}
-    \tkzInterLCR(#1,#2)(#3,\tkz at radius pt){#6}{#7}
-\endgroup
-}
-
-%<--------------------------------------------------------------------------–>
-%    Intersection de deux cercles  
-%<--------------------------------------------------------------------------–>
-\def\tkz at numcc{0}
-\pgfkeys{
-/circlecircle/.cd,
- node/.code          = {\global\def\tkz at numcc{0}},
- R/.code             = {\global\def\tkz at numcc{1}},
-with nodes/.code     = {\global\def\tkz at numcc{2}}
-}
-%<--------------------------------------------------------------------------–>
-\def\tkzInterCC{\pgfutil at ifnextchar[{\tkz at InterCC}{\tkz at InterCC[]}}
-\def\tkz at InterCC[#1](#2,#3)(#4,#5){%
-\begingroup      
-\pgfkeys{/circlecircle/.cd,node}
-\pgfqkeys{/circlecircle}{#1}
-\ifcase\tkz at numcc%
- % first case 0 
-  \tkz at save@length 
-  \tkzCalcLength(#2,#3)	\tkzGetLength{tkz at rayA}
-  \tkzCalcLength(#4,#5) \tkzGetLength{tkz at rayB}
-  \tkz at restore@length     
-  \tkzInterCCR(#2,\tkz at rayA pt)(#4,\tkz at rayB pt){tkzFirstPointResult}{%
-                                                 tkzSecondPointResult}   
-  \or% 1
- \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
-  \or%2
- \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}    
-\fi   
-\endgroup
-} 
-%<--------------------------------------------------------------------------–>
-%<--------------------------------------------------------------------------–>
-
-% 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;
-% } 
-
-\def\tkzInterCCR(#1,#2)(#3,#4)#5#6{%
-\begingroup
-\pgfinterruptboundingbox  
-\tkz at save@length  
-\tkzCalcLength(#1,#3)\tkzGetLength{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 %
-\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 %
-\tkz at cx#2 %
-\tkz at cy#4 %
-\edef\tkz at aa{\fpeval{((\tkz at cx+\tkz at cy)/(2*\tkz at dd))*(\tkz at cx-\tkz at cy)+\tkz at dd/2}}
-\edef\tkz at xx{\fpeval{\tkz at ax+\tkz at aa/\tkz at dd*(\tkz at bx - \tkz at ax)}}
-\edef\tkz at yy{\fpeval{\tkz at ay+\tkz at aa/\tkz at dd*(\tkz at by - \tkz at ay)}} 
-\path[coordinate](\tkz at xx pt,\tkz at yy pt) coordinate (tkzRadialCenter);
-\edef\tkz at hh{\fpeval{sqrt((\tkz at cx+\tkz at aa)*(\tkz at cx-\tkz at aa))}}
-\edef\tkz at rx{\fpeval{\tkz at hh / \tkz at dd * (\tkz at ay - \tkz at by)}}
-\edef\tkz at ry{\fpeval{\tkz at hh / \tkz at dd * (\tkz at bx - \tkz at ax)}}
-\edef\tkz at xs{\fpeval{\tkz at xx + \tkz at rx}}
-\edef\tkz at ys{\fpeval{\tkz at yy + \tkz at ry}}
-\path[coordinate](\tkz at xs pt,\tkz at ys pt) coordinate (#5);
-\edef\tkz at xss{\fpeval{\tkz at xx - \tkz at rx}}
-\edef\tkz at yss{\fpeval{\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
-%   \tkzCalcLength(#1,#2)\tkzGetLength{tkz at rayA}
-%   \tkzCalcLength(#3,#4)\tkzGetLength{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
-  \tkzCalcLength(#2,#3)\tkzGetLength{tkz at rayA}
-  \tkzCalcLength(#5,#6)\tkzGetLength{tkz at rayB}
-  \tkzInterCCR(#1,\tkz at rayA pt)(#4,\tkz at rayB pt){#7}{#8}
-\endgroup
-} 
-\makeatother
-\endinput
\ No newline at end of file

Deleted: trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-math.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-math.tex	2022-01-04 22:30:53 UTC (rev 61495)
+++ trunk/Master/texmf-dist/tex/latex/tkz-euclide/tkz-tools-math.tex	2022-01-04 22:31:15 UTC (rev 61496)
@@ -1,126 +0,0 @@
-% tkz-tools-math.tex
-% Copyright 2020  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{3.06c}
-\def\filedate{2020/03/18} 
-\typeout{2020/03/18 3.06c  tkz-tools-math.tex}     
-\makeatletter
-%<-------------------------------------------------------------------------->
-%  \tkzpointnormalised    normalise un point A-->A' tq ||v(OA')=1||
-% équivalent de \pgfpointnormalised avec fp
-% 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}%
-\edef\tkz at den{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
-\edef\tkz at coordx{\fpeval{\pgf at x/\tkz at den}}
-\edef\tkz at coordx{\fpeval{round(\tkz at coordx,5)}}
-\edef\tkz at coordy{\fpeval{\pgf at y/\tkz at den}}
-\edef\tkz at coordy{\fpeval{round(\tkz at coordy,5)}}
-\pgf at x = \tkz at coordx pt
-\pgf at y = \tkz at coordy pt
-}
-%<-------------------------------------------------------------------------->
-% 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
-%<-------------------------------------------------------------------------->
-\pgfkeys{tkzcalclen/.cd,
-       cm/.is if         = tkzLengthIncm,
-       cm/.default       = true}   
-
-\def\tkzCalcLength{\pgfutil at ifnextchar[{\tkz at CalcLength}{\tkz at CalcLength[]}}  
-\def\tkz at CalcLength[#1](#2,#3){%
-\pgfkeys{tkzcalclen/.cd, cm = false}
-\pgfqkeys{/tkzcalclen}{#1}%   
-\begingroup
-\tkz@@CalcLength(#2,#3){tkzLengthResult}
-\iftkzLengthIncm 
-   \pgfmathparse{\tkz at xfpMathLen pt/1cm}
-	\edef\tkz at xfpMathLen{\fpeval{round(\pgfmathresult,5)}}
-   \global\let\tkzLengthResult\tkz at xfpMathLen  
-\fi 
-\endgroup
-}%
-\def\tkz@@CalcLength(#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,5)}}
-\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  
-  \pgfmathparse{#1/1cm}
-  \edef\tkz at mathresult{\fpeval{round(\pgfmathresult,5)}}
-  \global\let\tkz at mathresult\tkz at mathresult
-  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
-\endgroup
-}%
-%<-------------------------------------------------------------------------->
-%     \tkzcmtopt  passage de cm   pt mul par 28.45274
-%<--------------------------------------------------------------------------
-\def\tkzcmtopt(#1)#2{%
-\begingroup 
-   \pgfmathparse{#1/1pt}
-  \edef\tkz at mathresult{\fpeval{round(\pgfmathresult,5)}}
-  \global\let\tkz at mathresult\tkz at mathresult
-  \global\expandafter\edef\csname #2\endcsname{\tkz at mathresult}% 
-\endgroup  
-}% 
-%<-------------------------------------------------------------------------->
-%                          Slope
-%<-------------------------------------------------------------------------->
-\def\tkzFindSlope{\tkz at FindSlope}
-\def\tkz at FindSlope(#1,#2)#3{%
-\begingroup
-   \tkzpointnormalised{\pgfpointdiff{\pgfpointanchor{#1}{center}}%
-                                    {\pgfpointanchor{#2}{center}}}
-     \edef\tkz at Slope{\fpeval{\pgfmath at tonumber{\pgf at y}/\pgfmath at tonumber{\pgf at x}}}
-     \edef\tkz at Slope{\fpeval{round(\tkz at Slope,5)}}
-    \global\expandafter\edef\csname #3\endcsname{\tkz at Slope}%  
-\endgroup
-}
-%  Schrodinger's cat idea 03/01/20
-\tikzset{xfp/.code={%
-\pgfmathdeclarefunction*{veclen}{2}{%
-\begingroup%
-    \pgfmath at x##1pt\relax%
-    \pgfmath at y##2pt\relax%
-    \edef\tkz at xfpMathLen{\fpeval{sqrt((\pgf at x)^2+(\pgf at y)^2)}}
-    \pgfmath at returnone\tkz at xfpMathLen pt%
-\endgroup%
-}}}
-\makeatother 
-\endinput
\ No newline at end of file



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