texlive[69140] Master/texmf-dist: tkz-elements (15dec23)

commits+karl at tug.org commits+karl at tug.org
Fri Dec 15 23:01:39 CET 2023


Revision: 69140
          https://tug.org/svn/texlive?view=revision&revision=69140
Author:   karl
Date:     2023-12-15 23:01:39 +0100 (Fri, 15 Dec 2023)
Log Message:
-----------
tkz-elements (15dec23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex
    trunk/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_circle.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_class.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_ellipse.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_circles.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_lines.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_regular.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_line.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_main.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_misc.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_parallelogram.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_quadrilateral.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_rectangle.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_regular.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_square.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_triangle.lua
    trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_vector.lua

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.pdf

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,10 +1,10 @@
 # tkz-elements — for euclidean geometry
 
-Release 1.50c 2023/12/08
+Release 1.60c 2023/12/14
 
 ## Description
 
-`tkz-elements v.1.50c` is the new version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with `LuaLaTeX`. With `tkz-elements`, the definitions and calculations are only done with `Lua`. 
+`tkz-elements v.1.60c` is the new version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with `LuaLaTeX`. With `tkz-elements`, the definitions and calculations are only done with `Lua`. 
 
  The main possibility of programmation  proposed is oriented "object programming" with object classes like point, line, triangle, circle and ellipse.  For the moment, once the calculations are done, it is `tkz-euclide` or `TikZ` which allows the drawings.
 
@@ -56,32 +56,39 @@
 ## Examples
 
 Some  examples  will be stored on my site : [http://altermundus.fr](http://altermundus.fr). 
+An important example  `Golden Arbelos` using the package is on the site.
 
 ## History
-   - version 1.50c Correction of the documentation
+   - version 1.60c 
    
-   Added "swap" option to create triangles from the "line" object.
+       - added Internal and external tangents common to two circles:
+       - function circle : `external_tangent`(C)
+       - function circle : `internal_tangent(C)
+       - radical_center and radical_circle are also valid for two circles
+       - function `radical_center` (C1,C2,C3)
+       - function `radical_circle` (C1,C2,C3)
+       - function `circles_position` (C1,C2)
+       - function `midcircle` (C1,C2) powerful tool for working with inversions
+       - Bug corrected in midarc now use get_angle instead of get_angle_
+       - Modification of a triangle attribute `ca` replaces `ac` to designate the line passing through the third and first points
+       - The center of symmetry of a parallelogram is named "center" instead of "i".
+       - Correction documentation 
+       - Correction of examples using the circle:point (k) method, where k is now a real number rather than an angle.
    
-   "iscyclic" is a new method to know if a quadrilateral is inscribable in a circle.
+   - version 1.50c Correction of the documentation
    
-   Added function "diameter" to create a circle.
+      - Added "swap" option to create triangles from the "line" object.
+      - "iscyclic" is a new method to know if a quadrilateral is inscribable in a circle.
+      - Added function "diameter" to create a circle.
+      - Added function "swap" to swap two points.
+      - Correction method "gold" of object rectangle.
+      - Correction method "in_circle_" of object triangle.
+      - Correction method "incentral_tr_" of object triangle.
+      - Added method "soddy_center" of object triangle.
+      - Added option "swap" for method "square" of object line.
+      - Added method "report" for  object line. Transfer a defined length from a point
+      - Added option "swap" to the function "square : side" 
    
-   Added function "swap" to swap two points.
-   
-   Correction method "gold" of object rectangle.
-   
-   Correction method "in_circle_" of object triangle.
-   
-   Correction method "incentral_tr_" of object triangle.
-   
-   Added method "soddy_center" of object triangle.
-   
-   Added option "swap" for method "square" of object line.
-   
-   Added method "report" for  object line. Transfer a defined length from a point
-   
-   Added option "swap" to the function "square : side" 
-   
    - Version 1.40c Restructuring objects
    
       New version for all transformations. Now, they accept all objects as parameters. 

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -115,8 +115,8 @@
 \midrule 
 \Imeth{circle}{orthogonal\_from (pt)}  & |C = C.OA: orthogonal_from (z.P)|  & \\
 \Imeth{circle}{orthogonal\_through (pta,ptb)}  & |C = C.OA: orthogonal_through (z.z1,z.z2)|\\
-\Imeth{circle}{inversion (circle)} & |L or C = C.AC: inversion (C.EF)|&\\
-
+\Imeth{circle}{inversion (...)} & | C.AC: inversion (pt, pts, L or C )|& see \ref{ssub:inversion}, \ref{ssub:inversion_point},  \ref{ssub:inversion_line},  \ref{ssub:inversion_circle}\\
+\Imeth{circle}{midcircle (C)}  & |C.inv = C.OA: midcircle (C.EF)|  & see \ref{ssub:midcircle} \\
 \midrule 
  \textbf{Miscellaneous} &&\\
 \midrule 
@@ -265,7 +265,7 @@
 \subsubsection{Inversion: point} % (fold)
 \label{ssub:inversion_point}
 
-The "inversion" method can be used on a point, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
+The "inversion" method can be used on a point, a group of points, a line or a circle. Depending on the type of object, the function determines the correct algorithm to use.
 
 \begin{minipage}{.5\textwidth}
 \begin{verbatim}
@@ -424,9 +424,321 @@
       \tkzLabelPoints(a,...,f,o,p,q)
     \end{tikzpicture}
 \end{minipage}
+% subsubsection inversion (end)
 
+\subsubsection{midcircle} % (fold)
+\label{ssub:midcircle}
 
-% subsubsection inversion (end)
+\begin{minipage}{0.95\linewidth }
+\emph{From Eric Danneels and Floor van Lamoen: A midcircle of two given circles is a circle that swaps the two given circles by inversion. Midcircles are in the same pencil of circles as the given circles.  The center of the midcircle(s) is one or both of the centers of similitude. We can distinguish four cases:
+\begin{enumerate}[label=(\roman*)]
+   \item  The two given circles intersect: there are two midcircles with centers at the centers of similitude of the given circles;
+   \item One given circle is in the interior of the other given circle. Then there is one midcircle with center of similitude at the internal center of similitude of the given circles;
+   \item One given circle is in the exterior of the other given circle. Then there is one midcircle with center at the external center of similitude of the given circles.
+Clearly the tangency cases can be seen as limit cases of the above;
+\item  If the circles intersect in a single point, the unique midcircle has center at the external similitude center or at internal similitude center. 
+\end{enumerate} }
+\end{minipage}
+
+
+Let's look at each of these cases:
+\begin{enumerate}[label=(\roman*)]
+\item If the two given circles intersect, then there are two  circles of inversion through their common points, with centers at the centers of similitudes.  The two midcircles bisect their angles and are orthogonal to each other. The centers of the midcircles are the internal center of similitude and the external center of similitude $I$ and $J$.
+
+Consider two intersecting circles $(\mathcal{A})$ and $(\mathcal{B})$.
+We can obtain the centers of similarity of these two circles by constructing $EH$ and $FG$ two diameters parallel of the circles $(\mathcal{A})$ and $(\mathcal{B})$. The  line $(GE)$ intercepts  the line $(AB)$ in $J$ and the line $(EF)$ intercepts the line $(AB)$ in $I$. The circles $(\mathcal{I})$ and $(\mathcal{J})$ are orthogonal and are the midcircles of $(\mathcal{A})$ and $(\mathcal{B})$. The division $(A,B;I,J)$ is harmonic.
+
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+scale = .8
+z.A = point : new ( 1 , 0 ) 
+z.B = point : new ( 3 , 0 ) 
+z.O = point : new ( 2.1, 0 ) 
+z.P = point : new ( 1 ,0 ) 
+C.AO = circle : new (z.A,z.O)
+C.BP = circle : new (z.B,z.P)
+z.E = C.AO.south
+z.H = C.AO.north
+z.F = C.BP.north
+z.G = C.BP.south
+C.IT,C.JV = midcircle_ (C.AO,C.BP)
+z.I,z.T = get_points (   C.IT    ) 
+z.J,z.V = get_points (   C.JV    ) 
+z.X,z.Y = intersection (C.AO,C.BP)
+\end{tkzelements}  
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.6\textwidth}
+   \begin{tkzelements}
+   scale = .8
+   z.A = point : new ( 1 , 0 ) 
+   z.B = point : new ( 3 , 0 ) 
+   z.O = point : new ( 2.1, 0 ) 
+   z.P = point : new ( 1 ,0 ) 
+   C.AO = circle : new (z.A,z.O)
+   C.BP = circle : new (z.B,z.P)
+   z.E = C.AO.south
+   z.H = C.AO.north
+   z.F = C.BP.north
+   z.G = C.BP.south
+   C.IT,C.JV = midcircle_ (C.AO,C.BP)
+   z.I,z.T = get_points (   C.IT    ) 
+   z.J,z.V = get_points (   C.JV    ) 
+   z.X,z.Y = intersection (C.AO,C.BP)
+   \end{tkzelements}
+   \begin{tikzpicture}
+   \tkzGetNodes
+      \tkzDrawCircles[teal,thick](A,O B,P)
+      \tkzDrawSegments[dashed,red](E,F I,B I,G I,F)
+      \tkzDrawLines[gray](I,T J,V)
+      \tkzDrawCircles[teal,thick](A,O B,P)
+       \tkzDrawCircles[red,thick](I,X J,X)
+      \tkzDrawPoints(A,B,I,J,E,F,G,H,X,Y)
+      \tkzDrawPoints[red](I,J)
+      \begin{scope}[font = \scriptsize]
+      \tkzLabelPoints(A,I,J,G)
+      \tkzLabelPoints[below left](E)
+       \tkzLabelPoints[right](B)
+       \tkzLabelPoints[above](F,H,X)
+         \tkzLabelPoints[above right](Y)
+      \end{scope}
+   \end{tikzpicture}
+\end{minipage}
+
+
+\vfill
+
+\item  One given circle is in the interior of the other given circle.
+
+\begin{minipage}{.6\textwidth}
+\begin{verbatim}
+   \begin{tkzelements}
+      scale =.75  
+   z.A = point : new ( 3 , 0 ) 
+   z.B = point : new ( 5 , 0 ) 
+   z.O = point : new ( 2 , 0 ) 
+   z.P = point : new ( 1 , 0 ) 
+   L.AB = line :  new (z.A,z.B)
+   C.AO = circle : new (z.A,z.O)
+   C.BP = circle : new (z.B,z.P)
+   z.R,z.S = intersection (L.AB,C.BP)
+   z.U,z.V = intersection (L.AB,C.AO) 
+   C.SV = circle  :  diameter (z.S,z.V)
+   C.UR = circle  :  diameter (z.U,z.R)
+   z.x = C.SV.center
+   z.y = C.UR.center
+   C.IT = midcircle_ (C.AO,C.BP)
+   z.I,z.T = get_points (   C.IT    ) 
+\end{tkzelements}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.6\textwidth}
+   \begin{tkzelements}
+         scale =.75  
+      z.A = point : new ( 3 , 0 ) 
+      z.B = point : new ( 5 , 0 ) 
+      z.O = point : new ( 2 , 0 ) 
+      z.P = point : new ( 1 , 0 ) 
+      L.AB = line :  new (z.A,z.B)
+      C.AO = circle : new (z.A,z.O)
+      C.BP = circle : new (z.B,z.P)
+      z.R,z.S = intersection (L.AB,C.BP)
+      z.U,z.V = intersection (L.AB,C.AO) 
+      C.SV = circle  :  diameter (z.S,z.V)
+      C.UR = circle  :  diameter (z.U,z.R)
+      z.x = C.SV.center
+      z.y = C.UR.center
+      C.IT = midcircle_ (C.AO,C.BP)
+      z.I,z.T = get_points (   C.IT    ) 
+   \end{tkzelements}
+   \begin{tikzpicture}
+   \tkzGetNodes
+      \tkzDrawCircles[teal,thick](A,O B,P)
+      \tkzDrawCircles[green!20!black](x,S y,R)
+      \tkzDrawPoints(A,B)
+      \tkzDrawPoints[red](I)
+      \tkzLabelPoints(A,B,I)
+      \tkzDrawCircles[red,thick](I,T)
+      \tkzLabelCircle[below](x,V)(270){$(\alpha)$}
+      \tkzLabelCircle[below](y,R)(270){$(\beta)$} 
+      \tkzLabelCircle[below](I,T)(250){$\textcolor{red}{(\gamma)}$}  
+   \end{tikzpicture}  
+   \end{minipage}
+
+
+This case is a little more complicated. We'll construct the two circles $(\alpha)$ and $(\beta)$ tangent to the two given circles. Then we construct the radical circle orthogonal to the circles $(\alpha)$ and $(\beta)$. Its center is the radical center as well as the center of internal similtude of circles of center $A$ and $B$.
+
+\item When the two given circles are external to each other,  we  construct  the external center of similitude of the two given circles.
+$I$ is the center of external similarity of the two given circles. To obtain the inversion circle, simply note that $H$ is such that $IH^2= IE\times IF$
+
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+scale=.75
+local a,b,c,d
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( .5 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+L.AB = line :  new (z.A,z.B)
+z.E = C.Aa.north
+z.F = C.Bb.north
+L.EF = line :  new (z.E,z.F)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (   C.IT   ) 
+L.TF = C.Bb : tangent_from (z.I)
+z.H = intersection (L.TF,C.IT)
+z.E = intersection (L.TF,C.Aa)
+z.F=L.TF.pb
+\end{tkzelements}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.6\textwidth}
+\begin{tkzelements}
+scale=.75
+local a,b,c,d
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( .5 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+L.AB = line :  new (z.A,z.B)
+z.E = C.Aa.north
+z.F = C.Bb.north
+L.EF = line :  new (z.E,z.F)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (	C.IT	) 
+L.TF = C.Bb : tangent_from (z.I)
+z.H = intersection (L.TF,C.IT)
+z.E = intersection (L.TF,C.Aa)
+z.F=L.TF.pb
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[teal,thick](A,a B,b)
+\tkzDrawCircles[red,thick](I,T) 
+\tkzDrawSegments[gray](I,F)
+\tkzDrawPoints(A,B,E,F)
+\tkzDrawPoints[red](I,H) 
+\tkzDrawLine(I,B)  
+\tkzLabelPoints(A,B) 
+\tkzLabelPoints[above](E,F) 
+\tkzLabelPoints[above left,red](I,H) 
+\end{tikzpicture}  
+\end{minipage}
+
+
+\item Consider two tangent circles $(\mathcal{A})$ and $(\mathcal{B})$,
+\begin{itemize}
+
+\item $(\mathcal{B})$ being external and angent to $(\mathcal{A})$. The construction is identical to the previous one.
+
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+scale=.75
+local a,b,c,d
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( 1 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+L.AB = line :  new (z.A,z.B)
+z.E = C.Aa.north
+z.F = C.Bb.north
+L.EF = line :  new (z.E,z.F)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (	C.IT	) 
+L.TF = C.Bb : tangent_from (z.I)
+z.H = intersection (L.TF,C.IT)
+z.E = intersection (L.TF,C.Aa)
+z.F=L.TF.pb
+\end{tkzelements}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.6\textwidth}
+\begin{tkzelements}
+scale=.75
+local a,b,c,d
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( 1 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+L.AB = line :  new (z.A,z.B)
+z.E = C.Aa.north
+z.F = C.Bb.north
+L.EF = line :  new (z.E,z.F)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (	C.IT	) 
+L.TF = C.Bb : tangent_from (z.I)
+z.H = intersection (L.TF,C.IT)
+z.E = intersection (L.TF,C.Aa)
+z.F=L.TF.pb
+\end{tkzelements}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[teal,thick](A,a B,b)
+\tkzDrawCircles[red,thick](I,T) 
+\tkzDrawSegments[gray](I,F)
+\tkzDrawPoints(A,B,E,F)
+\tkzDrawPoints[red](I,H) 
+\tkzDrawLine(I,B)  
+\tkzLabelPoints(A,B) 
+\tkzLabelPoints[above](E,F) 
+\tkzLabelPoints[above left,red](I,H) 
+\end{tikzpicture}  
+\end{minipage}
+
+
+\item   When one of the given circles is inside and tangent to the other, the construction is easy. 
+
+\begin{minipage}{.4\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+z.A = point : new ( 2 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( 1 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (	C.IT	)
+\end{tkzelements}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.6\textwidth}
+\begin{tkzelements}
+z.A = point : new ( 2 , 0 )
+z.B = point : new ( 4 , 0 )
+z.a = point :  new ( 1 , 0)
+z.b = point :  new ( 1 , 0)
+C.Aa = circle  :  new (z.A,z.a)
+C.Bb = circle  :  new (z.B,z.b)
+C.IT =  midcircle_ (C.Aa,C.Bb)
+z.I,z.T = get_points (	C.IT	) 
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircles[teal,thick](A,a B,b)
+\tkzDrawCircles[red,thick](I,T) 
+\tkzDrawPoints(A,B)  
+\tkzDrawPoints[red](I) 
+\tkzLabelPoints(A,B)  
+\tkzLabelPoints[above left,red](I) 
+\end{tikzpicture} 
+\end{minipage}
+\end{itemize}
+\end{enumerate}
+
+% subsubsection midcircle (end)
 % subsection methods_of_the_class_circle (end)
 
 

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -397,7 +397,7 @@
 \tkzGetNodes
 \tkzDrawPoints(A,...,F)
 \tkzLabelPoints(A,...,F)
-\tkzDrawSegments[->,red,> =latex](C,E D,F A,B) )
+\tkzDrawSegments[->,red,> =latex](C,E D,F A,B)
 \end{tikzpicture}
 \end{tkzexample}
 \end{minipage}

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -8,40 +8,38 @@
 
 
 The creation of a point is done using the following method, but there are other possibilities. If a scaling factor has been given, the method takes it into account.
-\setbox\strutbox=\hbox{\vrule height6.8pt depth3.2pt width0pt}
 
    \def\size{42mm}
 \begin{tikzpicture}[remember picture]
-   \node[ draw, fill=red!10] (tbl) {%
+\node[ draw, fill=red!10] (tbl) {%
  \centering
-       \begin{minipage}{\size}
-          \hspace{\fill}    \texttt{Arguments}\hspace{\fill}
-              
-               \tikz\node[minimum width=\size,font=\small,
-           draw, fill=cyan!10,
-           rectangle split, rectangle split parts=5
-         ] {
-           \texttt{re (real)\strutbox}
-           \nodepart{two}\texttt{im (real)\strutbox}
-           \nodepart{three}\texttt{type = 'point'\strutbox}
-           \nodepart{four}\texttt{argument (rad)\strutbox}
-            \nodepart{five}\texttt{modulus (cm)\strutbox}
-         };
-         
-           \hspace{\fill}  \texttt{Methods}\hspace{\fill}
-           
-               \tikz\node[minimum width=\size,font=\small,
-           draw, fill=orange!20,sharp corners,
-           rectangle split, rectangle split parts=4
-         ] {
-          \texttt{homothety(coeff,obj)\strutbox}
-           \nodepart{two}\texttt{rotation (angle,object)\strutbox}
-           \nodepart{three}\texttt{symmetry (object)\strutbox}
-           \nodepart{four}\texttt{\ldots}
-         };
-                
-           \end{minipage}
-     };
+\begin{minipage}{\size}
+
+   \hspace{\fill} \texttt{Arguments}\hspace{\fill}
+       
+       \tikz\node[minimum width=\size,font=\small,
+    draw, fill=cyan!10,
+    rectangle split, rectangle split parts=5
+  ] {
+    \texttt{re (real)}
+    \nodepart{two}\texttt{im (real)}
+    \nodepart{three}\texttt{type = 'point'}
+    \nodepart{four}\texttt{argument (rad)}
+     \nodepart{five}\texttt{modulus (cm)}
+  };
+  
+    \hspace{\fill}  \texttt{Methods}\hspace{\fill}
+    
+        \tikz\node[minimum width=\size,font=\small,
+    draw, fill=orange!20,sharp corners,
+    rectangle split, rectangle split parts=4
+  ] {
+   \texttt{homothety(coeff,obj)}
+    \nodepart{two}\texttt{rotation (angle,object)}
+    \nodepart{three}\texttt{symmetry (object)}
+    \nodepart{four}\texttt{\ldots}
+  };
+\end{minipage}};
  \node[ draw, fill=red!10,,minimum height = 2em,
   rounded corners,anchor=south] (tc) at (tbl.north){Class |Point|};
 \end{tikzpicture}
@@ -48,33 +46,32 @@
 \hspace{5cm}\begin{tikzpicture}[remember picture]
    \node[ draw, fill=red!10] (tbl) {%
  \centering
-       \begin{minipage}{\size}
-          \hspace{\fill}    \texttt{Arguments}\hspace{\fill}
-              
-               \tikz\node[minimum width=\size,font=\small,
-           draw, fill=cyan!10,
-           rectangle split, rectangle split parts=5
-         ] {
-           \texttt{re = 1\strutbox}
-           \nodepart{two}\texttt{im = 2\strutbox}
-           \nodepart{three}\texttt{type = 'point'\strutbox}
-           \nodepart{four}\texttt{argument = atan(2)\strutbox}
-            \nodepart{five}\texttt{modulus = $\sqrt{5}$\strutbox}
-         };
-         
-           \hspace{\fill}  \texttt{Methods}\hspace{\fill}
-           
-               \tikz\node[minimum width=\size,font=\small,
-           draw, fill=orange!20,sharp corners,
-           rectangle split, rectangle split parts=4
-         ] {
-          \texttt{homothety(coeff,obj)\strutbox}
-           \nodepart{two}\texttt{rotation (angle,object)\strutbox}
-           \nodepart{three}\texttt{symmetry (object)\strutbox}
-           \nodepart{four}\texttt{\ldots\strutbox}
-         };
-                
-           \end{minipage}
+\begin{minipage}{\size}
+   \hspace{\fill}    \texttt{Arguments}\hspace{\fill}
+       
+        \tikz\node[minimum width=\size,font=\small,
+    draw, fill=cyan!10,
+    rectangle split, rectangle split parts=5
+  ] {
+    \texttt{re = 1}
+    \nodepart{two}\texttt{im = 2}
+    \nodepart{three}\texttt{type = 'point'}
+    \nodepart{four}\texttt{argument = atan(2)}
+     \nodepart{five}\texttt{modulus = $\sqrt{5}$}
+  };
+  
+    \hspace{\fill}  \texttt{Methods}\hspace{\fill}
+    
+        \tikz\node[minimum width=\size,font=\small,
+    draw, fill=orange!20,sharp corners,
+    rectangle split, rectangle split parts=4
+  ] {
+   \texttt{homothety(coeff,obj)}
+    \nodepart{two}\texttt{rotation (angle,object)}
+    \nodepart{three}\texttt{symmetry (object)}
+    \nodepart{four}\texttt{\ldots}
+  };
+\end{minipage}
      };
  \node[ draw, fill=red!10,remember picture,minimum height = 2em,
   rounded corners,anchor=south] (to) at (tbl.north){object |z.A|};

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -34,8 +34,8 @@
 \Iattr{triangle}{beta}& Vertex angle of the second vertex\\
 \Iattr{triangle}{gamma}& Vertex angle of the third vertex\\
 \Iattr{triangle}{ab}& Line defined by the first two points of the triangle\\
-\Iattr{triangle}{ac}& Line defined by the first point and the last point\\
-\Iattr{triangle}{bc}&  Line defined by the last two points of the triangle\\
+\Iattr{triangle}{bc}& Line defined by the last two points \\
+\Iattr{triangle}{ca}&  Line defined by the last and the first points of the triangle\\
 \bottomrule %
 \end{tabular}
 \egroup
@@ -87,7 +87,7 @@
    b = T.abc.b
    c = T.abc.c
    alpha =  T.abc.alpha
-   beta =  T.abc.beta
+   beta  =  T.abc.beta
    gamma =  T.abc.gamma
 \end{tkzelements}
 \hspace*{\fill}

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -2467,7 +2467,7 @@
    \tkzLabelPoints(C_1,C_2)
    \tkzLabelPoints[above](T)
    \tkzLabelSegment[left](C_1,T){r}
-   \tkzLabelSegments[right](C_2,T){\gamma}
+   \tkzLabelSegments[right](C_2,T){$\gamma$}
    \tkzLabelSegment[below](C_1,C_2){d}
    \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
    \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
@@ -2494,7 +2494,7 @@
 \tkzLabelPoints(C_1,C_2)
 \tkzLabelPoints[above](T)
 \tkzLabelSegment[left](C_1,T){r}
-\tkzLabelSegments[right](C_2,T){\gamma}
+\tkzLabelSegments[right](C_2,T){$\gamma$}
 \tkzLabelSegment[below](C_1,C_2){d}
 \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
 \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
@@ -2507,21 +2507,20 @@
 
 \begin{tkzexample}[latex=0cm,small,code only]
 \begin{tkzelements}
-   scale       = .75
-   z.O         = point: new (2,2)
-   z.Op        = point: new (-4,1)
-   z.P         = point: polar (4,0)
-   C.OP        = circle: new (z.O,z.P)
-   C.Oz1,C.Oz2 = C.OP : orthogonal_from (z.Op)
-   z.z1        = C.Oz1.through
-   z.z2        = C.Oz2.through
-   L.OP        = line : new (z.O,z.P)
-   C.Opz1      = circle: new (z.Op,z.z1)
-   L.T,L.Tp    = C.Opz1 : tangent_from (z.O)
-   z.T         = L.T.pb
-   z.Tp        = L.Tp.pb
-   L.OOp       = line : new (z.O,z.Op)
-   z.M         = L.OOp.mid
+scale    = .75
+z.O      = point: new (2,2)
+z.Op     = point: new (-4,1)
+z.P      = point: polar (4,0)
+C.OP     = circle: new (z.O,z.P)
+C.Oz1    =  C.OP : orthogonal_from (z.Op)
+z.z1     = C.Oz1.through
+L.OP     = line : new (z.O,z.P)
+C.Opz1   = circle: new (z.Op,z.z1)
+L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+z.T      = L.T.pb
+z.Tp     = L.Tp.pb
+L.OOp    = line : new (z.O,z.Op)
+z.M      = L.OOp.mid
 \end{tkzelements}
 \begin{tikzpicture}
    \tkzGetNodes  
@@ -2543,20 +2542,19 @@
 
 \begin{tkzelements}
 scale = .75
-z.O     = point: new (2,2)
-z.Op    = point: new (-4,1)
-z.P     = point: polar (4,0)
-C.OP    = circle: new (z.O,z.P)
-C.Oz1,C.Oz2 =  C.OP : orthogonal_from (z.Op)
-z.z1  = C.Oz1.through
-z.z2  = C.Oz2.through
-L.OP    = line : new (z.O,z.P)
-C.Opz1  = circle: new (z.Op,z.z1)
-L.T,L.Tp   = C.Opz1 : tangent_from (z.O)
-z.T   = L.T.pb
-z.Tp   = L.Tp.pb
-L.OOp   = line : new (z.O,z.Op)
-z.M     = L.OOp.mid
+z.O      = point: new (2,2)
+z.Op     = point: new (-4,1)
+z.P      = point: polar (4,0)
+C.OP     = circle: new (z.O,z.P)
+C.Oz1    =  C.OP : orthogonal_from (z.Op)
+z.z1     = C.Oz1.through
+L.OP     = line : new (z.O,z.P)
+C.Opz1   = circle: new (z.Op,z.z1)
+L.T,L.Tp = C.Opz1 : tangent_from (z.O)
+z.T      = L.T.pb
+z.Tp     = L.Tp.pb
+L.OOp    = line : new (z.O,z.Op)
+z.M      = L.OOp.mid
 \end{tkzelements}
 
 \hspace*{\fill}

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

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -21,10 +21,10 @@
                headings    = small
                ]{tkz-doc}
 \gdef\tkznameofpack{tkz-elements}
-\gdef\tkzversionofpack{1.50c}
+\gdef\tkzversionofpack{1.60c}
 \gdef\tkzdateofpack{\today}
 \gdef\tkznameofdoc{tkz-elements.pdf}
-\gdef\tkzversionofdoc{1.50c}
+\gdef\tkzversionofdoc{1.60c}
 \gdef\tkzdateofdoc{\today}
 \gdef\tkzauthorofpack{Alain Matthes}
 \gdef\tkzadressofauthor{}
@@ -97,7 +97,7 @@
 \usepackage[english]{babel}
 \usepackage[normalem]{ulem}
 \usepackage{multirow,multido,booktabs,cellspace}
-\usepackage{shortvrb,bookmark,caption} 
+\usepackage{shortvrb,bookmark,caption,enumitem} 
 \usepackage{makeidx}
 \usepackage[most]{tcolorbox}
 
@@ -175,7 +175,7 @@
 
 \defoffile{\lefthand\
  This document brings together some notes about  \tkzname{\tkznameofpack}, the first version of a library written in lua, allowing to make all the necessary calculations to define the objects of a Euclidean geometry figure. You need to compile with Lua\LaTeX.\\ With \pkg{tkz-elements}, the definitions and calculations are only done with \pkg{lua}. \\ The main possibility of programmation  proposed is oriented "object programming" with object classes like point, line, triangle, circle and ellipse.  For the moment, once the calculations are done, it is \pkg{tkz-euclide} or   \pkg{TikZ} which allows the drawings.\\
- I discovered Lua and object-oriented programming when I created this package, so it's highly probable that I've made a few mistakes.  If you'd like to participate in the development of this package or give me advice on how to proceed, please contact me via my email. \\ This version \tkzversionofpack\ is a beta version.\\
+ I discovered Lua and object-oriented programming when I created this package, so it's highly probable that I've made a few mistakes.  If you'd like to participate in the development of this package or give me advice on how to proceed, please contact me via my email. \\
 English is  not my native language so there  might be some errors.
 }
 
@@ -183,7 +183,8 @@
 
 \vspace*{1cm}
 
-\lefthand\ Acknowledgements : I received much valuable advice, remarks, corrections  from \\ \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Carlisle}, \tkzimp{Roberto Giacomelli} and \tkzimp{Qrrbrbirlbel}.
+\lefthand\ Acknowledgements : I received much valuable advice, remarks, corrections  from \\ \tkzimp{Nicolas Kisselhoff}, \tkzimp{David Carlisle}, \tkzimp{Roberto Giacomelli} and \tkzimp{Qrrbrbirlbel}.\\
+ Thanks to Wolfgang Büchel, for correcting the examples.
 
 \vspace*{12pt}
 \lefthand\ I would also like to thank \tkzimp{Eric Weisstein}, creator of 

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -130,25 +130,25 @@
 
 \begin{tkzelements}
 z.A     = point: new (0 , 0)
-z.B     = point: new (10 , 0)          creation of two fixed points $A$ and $B$
+z.B     = point: new (10 , 0)        --  creation of two fixed points $A$ and $B$
 L.AB    = line:  new ( z.A, z.B)
-z.C     = L.AB:  gold_ratio ()         use of a method linked to "line"
-z.O_0   = line:  new ( z.A, z.B).mid   midpoint of segment with an attribute of "line"
-z.O_1   = line:  new ( z.A, z.C).mid   objects are not stored and cannot be reused.
+z.C     = L.AB:  gold_ratio ()       --  use of a method linked to "line"
+z.O_0   = line:  new ( z.A, z.B).mid  -- midpoint of segment with an attribute of "line"
+z.O_1   = line:  new ( z.A, z.C).mid --  objects are not stored and cannot be reused.
 z.O_2   = line:  new ( z.C, z.B).mid   
-C.AB    = circle: new ( z.O_0, z.B)    new object "circle" stored and reused
+C.AB    = circle: new ( z.O_0, z.B)  --  new object "circle" stored and reused
 C.AC    = circle: new ( z.O_1, z.C) 
 C.CB    = circle: new ( z.O_2, z.B)
-z.P     = C.CB.north                   "north" atrributes of a circle
+z.P     = C.CB.north                 --  "north" atrributes of a circle
 z.Q     = C.AC.north
 z.O     = C.AB.south
-z.c     = z.C : north (2)              "north" method of a point (needs a parameter)
+z.c     = z.C : north (2)           --   "north" method of a point (needs a parameter)
 C.PC    = circle: new ( z.P, z.C) 
 C.QA    = circle: new ( z.Q, z.A)  
-z.P_0   = intersection (C.PC,C.AB)     search for intersections of two circles.
-z.P_1   = intersection (C.PC,C.AC)     idem
-_,z.P_2 = intersection (C.QA,C.CB)     idem
-z.O_3   = triangle: new ( z.P_0, z.P_1, z.P_2).circumcenter attribute of "triangle"
+z.P_0   = intersection (C.PC,C.AB)   --  search for intersections of two circles.
+z.P_1   = intersection (C.PC,C.AC)  --   idem
+_,z.P_2 = intersection (C.QA,C.CB)   --  idem
+z.O_3   = triangle: new ( z.P_0, z.P_1, z.P_2) -- circumcenter attribute of "triangle"
 \end{tkzelements}
 
 \begin{tikzpicture}

Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex	2023-12-15 22:01:39 UTC (rev 69140)
@@ -134,12 +134,8 @@
        \tkzLabelPoints(a,...,d)
    \end{tikzpicture}
    \hspace{\fill} 
-
-
-
 % subsubsection other_transfers (end)
 % subsubsection points_transfer (end)
-
 % section transferts (end)
 
 \endinput
\ No newline at end of file

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

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,5 +1,5 @@
 % encoding : utf8 
-% tkz-elements.sty v1.50c
+% tkz-elements.sty v1.60c
 % Copyright 2023  Alain Matthes
 % This work may be distributed and/or modified under the
 % conditions of the LaTeX Project Public License, either version 1.3
@@ -11,7 +11,7 @@
 % This work has the LPPL maintenance status “maintained”.
 % The Current Maintainer of this work is Alain Matthes.
 
-\ProvidesPackage{tkz-elements}[23/12/08 v1.50c Graphic Object Library]
+\ProvidesPackage{tkz-elements}[23/12/14 v1.60c Graphic Object Library]
 \RequirePackage{luacode}
 \directlua{require "tkz_elements_main"}
 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_circle.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_circle.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_circle.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements-circles.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -95,7 +95,7 @@
 end
 
 function circle: midarc (z1,z2)
-   local phi = 0.5 * get_angle_(self.center,z1,z2 )
+   local phi = 0.5 * get_angle (self.center,z1,z2 )
    return rotation_ (self.center,phi,z1)
 end
 
@@ -112,11 +112,11 @@
 end
 
 function circle: internal_similitude (C)
-  return barycenter_ ({self.center,C.radius},{C.center,self.radius})
+  return internal_similitude_ (self.center,self.radius,C.center,C.radius)
 end
 
 function circle: external_similitude (C)
-  return  barycenter_ ({C.center,self.radius},{self.center,-C.radius})
+  return  external_similitude_ (self.center,self.radius,C.center,C.radius)
 end
 -----------------------
 -- lines --
@@ -136,6 +136,26 @@
     t1,t2 = radical_axis_ (self.center,self.through,C.center,C.through)
  return line : new (t1,t2)
  end
+ -- version 1.60 new
+ function circle : external_tangent(C)
+   local i,t1,t2,k,T1,T2
+      i     = barycenter_ ({C.center,self.radius},{self.center,-C.radius})
+      t1,t2 = tangent_from_ (self.center,self.through,i) 
+      k     = point.mod((C.center-i)/(self.center-i))
+      T1    = homothety_(i,k,t1)
+      T2    = homothety_(i,k,t2)
+   return line : new (t1,T1),line : new (t2,T2)
+ end
+  -- version 1.60 new
+ function circle : internal_tangent(C)
+   local i,t1,t2,k,T1,T2
+      i = barycenter_ ({C.center,self.radius},{self.center,C.radius})
+      t1,t2 = tangent_from_ (self.center,self.through,i) 
+      k = -point.mod((C.center-i)/(self.center-i))
+      T1 = homothety_(i,k,t1)
+      T2 = homothety_(i,k,t2)
+   return line : new (t1,T1),line : new (t2,T2)
+ end
  -----------------------
  -- circles --
  -----------------------
@@ -142,7 +162,7 @@
 function circle: orthogonal_from (pt)
     local t1,t2
      t1,t2 = tangent_from_ (self.center,self.through,pt) 
-    return circle : new (pt,t1), circle : new (pt,t2)
+    return circle : new (pt,t1)
 end
  
 function circle: orthogonal_through (pta,ptb)
@@ -215,5 +235,6 @@
     local frmt = '\\draw (%0.3f,%0.3f) circle [radius=%0.3f];'
     tex.sprint(string.format(frmt, x,y,r))
 end 
+  
        
 return circle
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_class.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_class.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_class.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_class.lua 
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- from class.lua (Simple Lua Classes from Lua-users wiki)
 -- Compatible with Lua 5.1 (not 5.0).
 --  http://lua-users.org/wiki/SimpleLuaClasses DavidManura 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_ellipse.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_ellipse.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_ellipse.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements-ellipses.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_circles.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_circles.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_circles.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_circles.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -29,10 +29,10 @@
  return  intersection_cc_ (o,c,c,p)
 end
 
-function tangent_at_ (a,b,p)
+function tangent_at_ (a,p)
    return rotation_ (p,math.pi/2,a),rotation_ (p,-math.pi/2,a)
 end
-
+ 
 function orthogonal_from_ (a,b,p)
     return tangent_from_ (a,b,p)
 end
@@ -98,3 +98,19 @@
 function antipode_ (c,pt)
    return 2 * c - pt
 end
+
+function internal_similitude_ (c1,r1,c2,r2)
+  return barycenter_ ({c2,r1},{c1,r2})
+end
+
+function  external_similitude_ (c1,r1,c2,r2)
+  return  barycenter_ ({c2,r1},{c1,-r2})
+end
+
+function circlepoint_ (c,t,k)
+   local phi = 2*k* math.pi
+   return rotation_ (c,phi,t) 
+end
+ 
+
+ 
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_intersections.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_lines.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_lines.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_lines.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_lines.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -129,4 +129,16 @@
 
 function square_ (a,b)
     return rotation_ (b,-math.pi/2,a), rotation_ (a,math.pi/2,b)
+end
+
+function in_segment_ (a,b,pt)
+    local sc,epsilon
+    epsilon = 10^(-12)
+    sc = point.mod (pt-a) + point.mod (pt-b) - point.mod(b-a)
+    if sc <= epsilon
+     then
+       return true
+    else
+       return false
+    end
 end
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_maths.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -76,7 +76,6 @@
     end
 end
 
-
 function parabola (a,b,c)
    local xa,xb,xc,ya,yb,yc
    xa = a.re
@@ -101,7 +100,7 @@
 end
 
 function get_angle (a,b,c)
-  return angle_normalize(get_angle_( a,b,c ))
+  return angle_normalize_(get_angle_( a,b,c ))
 end 
    
 function get_angle_( a,b,c )
@@ -109,6 +108,10 @@
 end
 
 function angle_normalize (a)
+return angle_normalize_ (a)
+end
+
+function angle_normalize_ (a)
 local dblpi 
  dblpi = 2 * math.pi
  if a > dblpi 

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_points.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_regular.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_regular.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_regular.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_regular.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_triangles.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_line.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_line.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_line.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_lines.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -69,6 +69,17 @@
     end
 end
 
+function line: in_out_segment (pt)
+    local sc,epsilon
+    epsilon = 10^(-12)
+    sc = point.mod (pt-self.pa) + point.mod (pt-self.pb) - point.mod(self.pb-self.pa)
+    if sc <= epsilon
+     then
+       return true
+    else
+       return false
+    end
+end
 -------------------
 -- Result -> point
 -------------------

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_main.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_main.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_main.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements-main.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_misc.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_misc.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_misc.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_functions_maths.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -33,16 +33,78 @@
     token.set_macro(v,_ENV[v],'global')
    end
 end  
-
+-- version 1.60 center pour deux cercles ?
 function radical_center (C1,C2,C3)
    local t1,t2,t3,t4
-   t1,t2 = radical_axis_ (C3.center,C3.through,C1.center,C1.through)
+   t1,t2 = radical_axis_ (C1.center,C1.through,C2.center,C2.through)
+   if C3 == nil then
+    return  intersection_ll_ (t1,t2,C1.center,C2.center)
+   else
    t3,t4 = radical_axis_ (C3.center,C3.through,C2.center,C2.through)
 return intersection_ll_ (t1,t2,t3,t4)
 end
-
+end
+-- version 1.60 modif case 2 circles
 function  radical_circle (C1,C2,C3)
    local rc
+    if C3 == nil then
+       rc = radical_center (C1,C2)
+       return C1 : orthogonal_from (rc)
+    else
    rc = radical_center (C1,C2,C3)
  return C1 : orthogonal_from (rc)
 end
+end
+-- version 1.60 new
+function circles_position(C1,C2)
+   local d,max,min
+   d = point.mod(C1.center-C2.center)
+   max = C1.radius + C2.radius
+   min = math.abs ( C1.radius - C2.radius)
+   if d > max then return "outside"
+      elseif d == max then return "outside tangent" -- epsilon
+      elseif d == min then return "inside tangent" -- epsilon
+      elseif d < min then return "inside"
+      else return "intersect"
+   end
+end
+-- version 1.60 new
+function midcircle_(C1,C2)
+   local state,r,s,t1,t2,T1,T2,p,a,b,c,d,Cx,Cy,i,j
+   state = circles_position(C1,C2)
+   i = barycenter_ ({C2.center,C1.radius},{C1.center,-C2.radius})
+   j = barycenter_ ({C2.center,C1.radius},{C1.center,C2.radius})
+   t1,t2 = tangent_from_ (C1.center,C1.through,i)
+   T1,T2 = tangent_from_ (C2.center,C2.through,i)
+      
+   if (state == 'outside') or (state == 'outside tangent')then
+         p = math.sqrt(point.mod(i-t1)*point.mod(i-T1))
+   return circle  : radius (i,p)
+   elseif state == 'intersect' then
+        r,s = intersection (C1,C2)
+   return circle  : radius (i,point.mod(r-i)) , circle  : radius (j,point.mod(r-j))
+   elseif (state == 'inside') or (state == 'inside tangent') then
+      a,b = intersection_lc_ (C1.center,C2.center,C1.center,C1.through)
+      c,d = intersection_lc_ (C1.center,C2.center,C2.center,C2.through)
+       
+      if C1.radius < C2.radius then 
+         z.u, z.v, z.r, z.s = a, b, c, d
+      else
+         z.u, z.v, z.r, z.s = c, d, a, b
+      end
+      
+      if  (in_segment_ (z.s,z.v,z.u) == true) 
+      then 
+      Cx = circle  :  diameter (z.r,z.v)
+      Cy = circle  :  diameter (z.u,z.s)
+      else
+      Cx = circle  :  diameter (z.s,z.v)
+      Cy = circle  :  diameter (z.u,z.r)
+      end
+      if (Cx.radius) < (Cy.radius) then
+         return Cy : orthogonal_from (j) 
+      else
+         return Cx : orthogonal_from (j)
+ end
+ end
+end
\ No newline at end of file

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_parallelogram.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_parallelogram.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_parallelogram.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_parallelogram.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3
@@ -24,7 +24,7 @@
    if point.abs (zj-zi) < epsilon  then  else error ("it's not a parallelogram")    
    end
    local type              = 'parallelogram'
-   local i                 = midpoint_ (za,zc)
+   local center                 = midpoint_ (za,zc)
    local ab                 = line : new (za,zb)
    local bc                 = line : new (zb,zc)
    local cd                 = line : new (zc,zd)
@@ -41,7 +41,7 @@
                   da       = da,
                   cd       = cd,
                   bd       = bd,
-                  i   = i,
+                  center   = center,
                   type     = type  }
     setmetatable(o, self)
     self.__index = self

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_point.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_quadrilateral.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_quadrilateral.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_quadrilateral.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_quadrilateral.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_rectangle.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_rectangle.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_rectangle.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements-rectangle.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_regular.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_regular.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_regular.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_regular.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_square.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_square.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_square.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements-square.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_triangle.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_triangle.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_triangle.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_triangles.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3

Modified: trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_vector.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_vector.lua	2023-12-15 22:01:19 UTC (rev 69139)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_vector.lua	2023-12-15 22:01:39 UTC (rev 69140)
@@ -1,6 +1,6 @@
 -- tkz_elements_vectors.lua
--- date 23/12/08
--- version 1.50c
+-- date 23/12/14
+-- version 1.60c
 -- Copyright 2023  Alain Matthes
 -- This work may be distributed and/or modified under the
 -- conditions of the LaTeX Project Public License, either version 1.3



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