texlive[69213] Master/texmf-dist: tkz-elements (24dec23)
commits+karl at tug.org
commits+karl at tug.org
Sun Dec 24 22:27:27 CET 2023
Revision: 69213
https://tug.org/svn/texlive?view=revision&revision=69213
Author: karl
Date: 2023-12-24 22:27:27 +0100 (Sun, 24 Dec 2023)
Log Message:
-----------
tkz-elements (24dec23)
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-misc.tex
trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex
trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-rectangle.tex
trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex
trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.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
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/README.md 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,10 +1,10 @@
# tkz-elements — for euclidean geometry
-Release 1.60c 2023/12/14
+Release 1.72c 2023/12/24
## Description
-`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`.
+`tkz-elements v.1.72c` 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,9 +56,21 @@
## 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.
+An important example `Golden Arbelos` using the package is on the site. All the files of the documentation
+are on the site.
## History
+
+ - version 1.72c
+ - added a line method (apollonius) set of points M with MA/MB = k
+ - example with line : apollonius
+ - example: three circle
+ - example: pentagons on golden arbelos
+ - descriptions of several cases with 'midcircle'
+ - added soddy method and examples
+ - added example with circles_position
+ - correction of the documentation
+
- version 1.60c
- added Internal and external tangents common to two circles:
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -124,6 +124,7 @@
\Imeth{circle}{in\_out (pt)} & |C.OA : in_out (z.M)| & boolean \\
\Imeth{circle}{in\_out\_disk (pt)} & |C.OA : in_out_disk (z.M)| & boolean \\
\Imeth{circle}{draw ()} & for further use &\\
+\Imeth{circle}{circles\_position (C1,C2)} & see \ref{sub:circles_position} \\
\bottomrule
\end{tabular}
\egroup
@@ -462,7 +463,7 @@
z.H = C.AO.north
z.F = C.BP.north
z.G = C.BP.south
-C.IT,C.JV = midcircle_ (C.AO,C.BP)
+C.IT,C.JV = C.AO : midcircle (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)
@@ -482,7 +483,7 @@
z.H = C.AO.north
z.F = C.BP.north
z.G = C.BP.south
- C.IT,C.JV = midcircle_ (C.AO,C.BP)
+ C.IT,C.JV = C.AO : midcircle (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)
@@ -528,7 +529,7 @@
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)
+ C.IT = C.AO : midcircle (C.BP)
z.I,z.T = get_points ( C.IT )
\end{tkzelements}
\end{verbatim}
@@ -549,7 +550,7 @@
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)
+ C.IT = C.AO : midcircle (C.BP)
z.I,z.T = get_points ( C.IT )
\end{tkzelements}
\begin{tikzpicture}
@@ -566,7 +567,6 @@
\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.
@@ -587,7 +587,7 @@
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)
+C.IT = C.Aa : midcircle (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)
@@ -610,7 +610,7 @@
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)
+C.IT = C.Aa : midcircle (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)
@@ -652,7 +652,7 @@
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)
+C.IT = C.Aa : midcircle (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)
@@ -675,7 +675,7 @@
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)
+C.IT = C.Aa : midcircle (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)
@@ -702,14 +702,14 @@
\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 )
+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 = C.Aa : midcircle (C.Bb)
+z.I,z.T = get_points ( C.IT )
\end{tkzelements}
\end{verbatim}
\end{minipage}
@@ -721,7 +721,7 @@
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)
+C.IT = C.Aa : midcircle (C.Bb)
z.I,z.T = get_points ( C.IT )
\end{tkzelements}
@@ -741,6 +741,59 @@
% subsubsection midcircle (end)
% subsection methods_of_the_class_circle (end)
+\subsection{Circles\_position} % (fold)
+\label{sub:circles_position}
+Cette fonction retourne une chaîne qui indique la position du cercle par rapport à un autre. Utile pour créer une fonction. Les cas sont:
+
+\begin{itemize}
+ \item "outside"
+ \item "outside tangent"
+ \item "inside tangent"
+ \item "inside"
+ \item "intersect"
+\end{itemize}
+
+\begin{minipage}{.5\textwidth}
+\begin{verbatim}
+\begin{tkzelements}
+ z.A = point : new ( 0 , 0 )
+ z.a = point : new ( 3 , 0 )
+ z.B = point : new ( 2 , 0 )
+ z.b = point : new ( 3 , 0 )
+ C.Aa = circle: new (z.A,z.a)
+ C.Bb ·= circle: new (z.B,z.b)
+ position = circles_position (C.Aa,C.Bb)
+ if position == "inside tangent"
+ then color = "orange"
+ else color = "blue" end
+\end{tkzelements}
+
+\begin{tikzpicture}
+ \tkzGetNodes
+ \tkzDrawCircle(A,a)
+ \tkzDrawCircle[color=\tkzUseLua{color}](B,b)
+\end{tikzpicture}
+\end{verbatim}
+\end{minipage}
+\begin{minipage}{.5\textwidth}
+\begin{tkzelements}
+z.A = point : new ( 1 , 0 )
+z.a = point : new ( 3 , 0 )
+z.B = point : new ( 2 , 0 )
+z.b = point : new ( 3 , 0 )
+C.Aa = circle: new (z.A,z.a)
+C.Bb = circle: new (z.B,z.b)
+position = circles_position (C.Aa,C.Bb)
+if position == "inside tangent" then color = "orange" else color = "blue" end
+\end{tkzelements}
+\hspace{\fill}
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawCircle(A,a)
+\tkzDrawCircle[color=\tkzUseLua{color}](B,b)
+\end{tikzpicture}\hspace{\fill}
+\end{minipage}
+% subsection circles__position (end)
% section class_circle (end)
\endinput
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -196,6 +196,7 @@
\midrule
\Imeth{line}{circle ()} & |C.AB = L.AB : circle ()| & center pa through pb \\
\Imeth{line}{circle\_swap ()} & |C.BA = L.AB : circle\_swap ()|& center pb through pa \\
+ \Imeth{line}{apollonius (k)} & |C.apo = L.AB : apollonius (2)|& Ensemble des points tq. |MA/MB = 2| \\
\midrule
\textbf{Transformations} &&\\
\midrule
@@ -513,9 +514,41 @@
\tkzDrawSegment[red,dashed](E,E')
\end{tikzpicture}
\end{minipage}
+% subsubsection reflection_of_object (end)
-% subsubsection reflection_of_object (end)
+\subsection{Apollonius circle MA/MB = k} % (fold)
+\label{sub:apollonius_circle_ma_mb_k}
+
+\begin{tkzelements}
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 6 , 0 )
+L.AB =line: new (z.A,z.B)
+C.apo = L.AB : apollonius (2)
+z.O,z.C = get_points ( C.apo )
+z.D = C.apo : antipode (z.C)
+z.P = C.apo : point (0.30)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzFillCircle[blue!20,opacity=.2](O,C)
+\tkzDrawCircle[blue!50!black](O,C)
+\tkzDrawPoints(A,B,O,C,D,P)
+\tkzLabelPoints[below right](A,B,O,C,D,P)
+\tkzDrawSegments[orange](P,A P,B P,D B,D P,C)
+\tkzDrawSegments[red](A,C)
+\tkzDrawPoints(A,B)
+\tkzLabelCircle[draw,fill=green!10,%
+ text width=3cm,text centered,left=24pt](O,D)(60)%
+ {$CA/CB=2$\\$PA/PB=2$\\$DA/DB=2$}
+\tkzMarkRightAngle[opacity=.3,fill=lightgray](O,P,C)
+\tkzMarkAngles[mark=||](A,P,D D,P,B)
+\end{tikzpicture}
+
+Remark: |\tkzUseLua{point.mod(z.P-z.A)/point.mod(z.P-z.B)}| = \tkzUseLua{point.mod(z.P-z.A)/point.mod(z.P-z.B)}
+% subsection apollonius_circle_ma_mb_k (end)
+
% subsection methods_from_class_line (end)
% section class_line (end)
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-misc.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -25,15 +25,15 @@
\Igfct{math}{value (v) } & apply |scale * value | \\
\Igfct{math}{real (v) } & apply | value /scale | \\
\Igfct{math}{angle\_normalize (a) } & to get a value between 0 and $2\pi$ \\
-\Igfct{math}{radical\_center (C1,C2,C3)} & see \ref{sub:radical_center} \\
-\Igfct{math}{radical\_circle (C1,C2,C3)} & see \ref{sub:radical_circle} \\
-\Igfct{math}{barycenter (\{z1,n1\},\{z2,n2\}, ...)} & barycenter of list of points \\
+\Igfct{misc}{radical\_center (C1,C2,C3)} & see \ref{sub:radical_center} \\
+\Igfct{misc}{radical\_circle (C1,C2,C3)} & see \ref{sub:radical_circle} \\
+\Igfct{misc}{barycenter (\{z1,n1\},\{z2,n2\}, ...)} & barycenter of list of points \\
\bottomrule
\end{tabular}
\egroup
-\subsubsection{Harmonic division with tkzphi } % (fold)
-\label{ssub:harmonic_division_with_tkzphi}
+\subsection{Harmonic division with tkzphi } % (fold)
+\label{sub:harmonic_division_with_tkzphi}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale =.5
@@ -66,10 +66,10 @@
\tkzLabelPoints(a,b,n,m)
\end{tikzpicture}
\hspace*{\fill}
-% subsubsection harmonic_division_with_tkzphi (end)
+% subsection harmonic_division_with_tkzphi (end)
-\subsubsection{Function islinear} % (fold)
-\label{ssub:function_islinear}
+\subsection{Function islinear} % (fold)
+\label{sub:function_islinear}
\begin{minipage}{0.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
@@ -109,10 +109,10 @@
\hspace*{\fill}
\end{minipage}
-% subsubsection function_islinear (end)
+% subsection function_islinear (end)
-\subsubsection{Function \tkzfname{value} }% (fold)
-\label{ssub:function_value}
+\subsection{Function \tkzfname{value} }% (fold)
+\label{sub:function_value}
value to apply scaling if necessary
@@ -125,11 +125,11 @@
If |scale = 1.2| with a = 6 then real(a) = $6 / 1.2 = 5$ .
-% subsubsection function_real (end)
+% subsection function_real (end)
-\subsubsection{Transfer from lua to \TEX} % (fold)
-\label{ssub:transfer_from_lua_to_tex}
+\subsection{Transfer from lua to \TEX} % (fold)
+\label{sub:transfer_from_lua_to_tex}
It's possible to transfer variable from Lua to \TEX{} with
\Igfct{package}{\textbackslash{tkzUseLua}}.
@@ -175,9 +175,9 @@
\tkzLabelSegment[below left,draw](C,H){$AB = \tkzUseLua{l}$}
\end{tikzpicture}
\end{minipage}
-% subsubsection transfer_from_lua_to_tex (end)
+% subsection transfer_from_lua_to_tex (end)
-\subsubsection{Normalized angles : Slope of lines (ab), (ac) and (ad)} % (fold)
+\subsection{Normalized angles : Slope of lines (ab), (ac) and (ad)} % (fold)
\label{sub:normalized_angles}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
@@ -227,14 +227,12 @@
\tkzLabelPoints(a,b,c,d)
\end{tikzpicture}
\hspace*{\fill}
- % \caption{Normalized angles}
+% subsection normalized_angles (end)
-% subsubsection normalized_angles (end)
+\subsection{Get angle} % (fold)
+\label{sub:get_angle}
-\subsubsection{Get angle} % (fold)
-\label{ssub:get_angle}
-
The function |get_angle (a,b,c)| gives the angle normalized of $(\overrightarrow{ab},\overrightarrow{ac})$.
\begin{minipage}{0.6\textwidth}
@@ -283,11 +281,10 @@
\hspace*{\fill}
\end{minipage}
-% \caption{Get angle}
-% subsubsection get_angle (end)
+% subsection get_angle (end)
-\subsubsection{Dot or scalar product} % (fold)
-\label{ssub:dot_or_scalar_product}
+\subsection{Dot or scalar product} % (fold)
+\label{sub:dot_or_scalar_product}
\begin{minipage}{0.5\textwidth}
\begin{tkzexample}[latex=0cm,small,code only]
@@ -335,13 +332,11 @@
\hspace*{\fill}
\end{minipage}
-%\caption{Dot or scalar product}
-
The scalar product of the vectors $\overrightarrow{AC}$ and $\overrightarrow{AB}$ is equal to $\tkzUseLua{x}$, so these vectors are orthogonal.
-% subsubsection dot_or_scalar_product (end)
+% subsection dot_or_scalar_product (end)
-\subsubsection{Alignment or orthogonality} % (fold)
-\label{ssub:alignment_or_orthogonality}
+\subsection{Alignment or orthogonality} % (fold)
+\label{sub:alignment_or_orthogonality}
With the functions |islinear| and |isortho|. |islinear(z.a,z.b,z.c)| gives |true| idf the points $a$, $b$ and $c$ are aligned.
@@ -348,12 +343,12 @@
|isortho(z.a,z.b,z.c)| gives |true| if the line $(ab)$ is orthogonal to the line $(ac)$.
% subsection alignment_or_orthogonality (end)
-\subsubsection{Other functions} % (fold)
-\label{ssub:other_functions}
+\subsection{Other functions} % (fold)
+\label{sub:other_functions}
Not documented because still in beta version: |parabola|, |Cramer22|, |Cramer33|.
-% subsubsection other_functions (end)
+% subsection other_functions (end)
% section math_functions (end)
% % section classes_and_objects (end)
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-parallelogram.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -48,7 +48,7 @@
z.B = P.new.pb
z.C = P.new.pc
z.D = P.new.pd
-z.I = P.new.i
+z.I = P.new.center
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
@@ -70,7 +70,7 @@
z.B = P.new.pb
z.C = P.new.pc
z.D = P.new.pd
-z.I = P.new.i
+z.I = P.new.center
\end{tkzelements}
\hspace{\fill}
\begin{tikzpicture}
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-rectangle.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-rectangle.tex 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-rectangle.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -257,7 +257,7 @@
\begin{tkzelements}
z.X = point : new ( 0 , 0 )
z.Y = point : new ( 4 , 2 )
-R.gold = rectangle : gold (z.A,z.B)
+R.gold = rectangle : gold (z.X,z.Y)
z.C = R.gold.pc
z.D = R.gold.pd
z.I = R.gold.center
@@ -270,7 +270,7 @@
\tkzLabelPoints(X,Y)
\tkzLabelPoints[above](Z,W)
\tkzDrawPoints[red](I)
-\tkzLabelSegment[sloped,above](X,Y){|rectangle : gold (z.X,z.Y)|}
+\tkzLabelSegment[sloped,above](X,Y){rectangle : gold (z.X,z.Y)}
\end{tikzpicture}
\end{verbatim}
\end{minipage}
@@ -291,7 +291,7 @@
\tkzLabelPoints(X,Y)
\tkzLabelPoints[above](Z,W)
\tkzDrawPoints[red](I)
-\tkzLabelSegment[sloped,above](X,Y){|rectangle : gold (z.X,z.Y)|}
+\tkzLabelSegment[sloped,above](X,Y){rectangle : gold (z.X,z.Y)}
\end{tikzpicture}
\end{minipage}
% subsubsection gold_method (end)
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1370,7 +1370,7 @@
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB = line: new (z.A,z.B)
- z.X,z.Y = L.AB: square ()
+ _,_,z.X,z.Y = get_points(L.AB: square ())
L.BX = line: new (z.B,z.X)
z.M = L.BX.mid
C.MA = circle: new (z.M,z.A)
@@ -1424,7 +1424,7 @@
z.A = point: new (0 , 0)
z.C = point: new (6 , 0)
L.AC = line: new (z.A,z.C)
- z.x,z.y = L.AC: square ()
+ _,_,z.x,z.y = get_points(L.AC: square ())
z.O_1 = L.AC . mid
C = circle: new (z.O_1,z.x)
z.B = intersection (L.AC,C)
@@ -2370,7 +2370,7 @@
z.L = T.ABC: lemoine_point ()
z.S = T.ABC: spieker_center ()
C.euler = T.ABC: euler_circle ()
- z.N,z.Ma = get_points (C.euler)
+ z.N,z.Ma = get_points (C.euler)
C.exA = T.ABC : ex_circle ()
z.Ja,z.Xa = get_points (C.exA)
C.exB = T.ABC : ex_circle (1)
@@ -2388,7 +2388,7 @@
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawLines[add=1 and 1](A,B A,C B,C)
+ \tkzDrawLines[add=1 and 1](A,B A,C B,C)
\tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
\tkzClipCircle(o,t)
\tkzDrawLines[red](o,L N,o Ma,t)
@@ -2411,7 +2411,7 @@
z.L = T.ABC: lemoine_point ()
z.S = T.ABC: spieker_center ()
C.euler = T.ABC: euler_circle ()
-z.N,z.Ma = get_points (C.euler)
+z.N,z.Ma = get_points (C.euler)
C.exA = T.ABC : ex_circle ()
z.Ja,z.Xa = get_points (C.exA)
C.exB = T.ABC : ex_circle (1)
@@ -2431,7 +2431,7 @@
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
-\tkzDrawLines[add=1 and 1](A,B A,C B,C)
+\tkzDrawLines[add=1 and 1](A,B A,C B,C)
\tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
\tkzClipCircle(o,t)
\tkzDrawLines[red](o,L N,o Ma,t)
@@ -2523,7 +2523,7 @@
z.M = L.OOp.mid
\end{tkzelements}
\begin{tikzpicture}
- \tkzGetNodes
+ \tkzGetNodes
\tkzDrawCircle[red](O,P)
\tkzDrawCircle[purple](O',z1)
\tkzDrawCircle[cyan](M,T)
@@ -2559,7 +2559,7 @@
\hspace*{\fill}
\begin{tikzpicture}
-\tkzGetNodes
+\tkzGetNodes
\tkzDrawCircle[red](O,P)
\tkzDrawCircle[purple](O',z1)
\tkzDrawCircle[cyan](M,T)
@@ -2576,7 +2576,7 @@
\end{tikzpicture}
\hspace*{\fill}
% subsection orthogonal_circles_v2 (end)
-
+%
\subsection{Orthogonal circle to two circles} % (fold)
\label{sub:orthogonal_circle_to_two_circles}
@@ -2599,7 +2599,7 @@
z.Kp = L.Kp.pb
\end{tkzelements}
\begin{tikzpicture}
- \tkzGetNodes
+ \tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine[add=1 and 2,cyan](E,F)
\tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
@@ -2628,10 +2628,10 @@
z.Tp = L.Tp.pb
z.Kp = L.Kp.pb
\end{tkzelements}
-
+
\hspace*{\fill}
\begin{tikzpicture}
-\tkzGetNodes
+\tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine[add=1 and 2,cyan](E,F)
\tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
@@ -2662,12 +2662,12 @@
C.O2C = circle : new (z.O_2,z.B)
z.Q = C.O1C : midarc (z.C,z.A)
z.P = C.O2C : midarc (z.B,z.C)
- L.O1O2 = line : new (z.O_1,z.O_2)
- L.O0O1 = line : new (z.O_0,z.O_1)
+ L.O1O2 = line : new (z.O_1,z.O_2)
+ L.O0O1 = line : new (z.O_0,z.O_1)
L.O0O2 = line : new (z.O_0,z.O_2)
z.M_0 = L.O1O2 : harmonic_ext (z.C)
z.M_1 = L.O0O1 : harmonic_int (z.A)
- z.M_2 = L.O0O2 : harmonic_int (z.B)
+ z.M_2 = L.O0O2 : harmonic_int (z.B)
L.BQ = line : new (z.B,z.Q)
L.AP = line : new (z.A,z.P)
z.S = intersection (L.BQ,L.AP)
@@ -2739,12 +2739,12 @@
C.O2C = circle : new (z.O_2,z.B)
z.Q = C.O1C : midarc (z.C,z.A)
z.P = C.O2C : midarc (z.B,z.C)
-L.O1O2 = line : new (z.O_1,z.O_2)
-L.O0O1 = line : new (z.O_0,z.O_1)
+L.O1O2 = line : new (z.O_1,z.O_2)
+L.O0O1 = line : new (z.O_0,z.O_1)
L.O0O2 = line : new (z.O_0,z.O_2)
z.M_0 = L.O1O2 : harmonic_ext (z.C)
z.M_1 = L.O0O1 : harmonic_int (z.A)
-z.M_2 = L.O0O2 : harmonic_int (z.B)
+z.M_2 = L.O0O2 : harmonic_int (z.B)
L.BQ = line : new (z.B,z.Q)
L.AP = line : new (z.A,z.P)
z.S = intersection (L.BQ,L.AP)
@@ -2966,7 +2966,7 @@
z.Ap = C.OA : antipode (z.A)
z.B = intersection (L.AM, C.OA)
\end{tkzelements}
-
+
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
@@ -3253,7 +3253,7 @@
\subsection{Tangent and circle} % (fold)
\label{sub:tangent_and_circle}
\begin{minipage}{.5\textwidth}
-\begin{verbatim}
+\begin{verbatim}
\begin{tkzelements}
z.A = point: new (1,0)
z.B = point: new (2,2)
@@ -3888,21 +3888,21 @@
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
- z.a = point: new(1,0)
- z.b = point: new(6,2)
- z.c = point: new(2,5)
- T = triangle : new (z.a,z.b,z.c)
- z.g = T : gergonne_point ()
- z.i = T.incenter
- z.ta,z.tb,z.tc = get_points (T : intouch ())
-end{tkzelements}
+z.a = point: new(1,0)
+z.b = point: new(6,2)
+z.c = point: new(2,5)
+T = triangle : new (z.a,z.b,z.c)
+z.g = T : gergonne_point ()
+z.i = T.incenter
+z.ta,z.tb,z.tc = get_points (T : intouch ())
+\end{tkzelements}
\begin{tikzpicture}
- \tkzGetNodes
- \tkzDrawPolygons(a,b,c)
- \tkzDrawPoints(a,b,c,g)
- \tkzLabelPoints(a,b,c)
- \tkzDrawSegments (a,ta b,tb c,tc)
- \tkzDrawCircle(i,ta)
+\tkzGetNodes
+\tkzDrawPolygons(a,b,c)
+\tkzDrawPoints(a,b,c,g)
+\tkzLabelPoints(a,b,c)
+\tkzDrawSegments (a,ta b,tb c,tc)
+\tkzDrawCircle(i,ta)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
@@ -3986,4 +3986,494 @@
\tkzDrawCircle(L,x_0)
\end{tikzpicture}
\end{minipage}
-% subsection antiparallel_through_lemoine_point (end)
\ No newline at end of file
+% subsection antiparallel_through_lemoine_point (end)
+
+\subsection{Soddy circle without function} % (fold)
+\label{sub:soddy}
+
+\begin{verbatim}
+\begin{tkzelements}
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new ( 0.5 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+C.ins = circle : new (z.I,z.E)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.CF = circle : new ( z.C , z.F )
+C.AG = circle : new ( z.A , z.G )
+C.BE = circle : new ( z.B , z.E )
+L.Ah = line : new ( z.A , z.Ha )
+L.Bh = line : new ( z.B , z.Hb )
+L.Ch = line : new ( z.C , z.Hc )
+z.X,z.Xp = intersection (L.Ah,C.AG)
+z.Y,z.Yp = intersection (L.Bh,C.BE)
+z.Z,z.Zp = intersection (L.Ch,C.CF)
+L.XpE = line : new (z.Xp,z.E)
+L.YpF = line : new (z.Yp,z.F)
+L.ZpG = line : new (z.Zp,z.G)
+z.S = intersection (L.XpE,L.YpF)
+z.Xi = intersection(L.XpE,C.AG)
+z.Yi = intersection(L.YpF,C.BE)
+_,z.Zi = intersection(L.ZpG,C.CF)
+z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
+C.soddy_int = circle : new (z.S,z.Xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.s = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
+\tkzDrawPoints(Xi',Yi',Zi',S)
+\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
+\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
+\tkzDrawLines(X',Ha Y',Hb Z',Hc)
+\tkzDrawLines(X',E Y',F Z',G)
+\end{tikzpicture}
+\end{verbatim}
+
+\begin{tkzelements}
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new ( 0.5 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+C.ins = circle : new (z.I,z.E)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.CF = circle : new ( z.C , z.F )
+C.AG = circle : new ( z.A , z.G )
+C.BE = circle : new ( z.B , z.E )
+L.Ah = line : new ( z.A , z.Ha )
+L.Bh = line : new ( z.B , z.Hb )
+L.Ch = line : new ( z.C , z.Hc )
+z.X,z.Xp = intersection (L.Ah,C.AG)
+z.Y,z.Yp = intersection (L.Bh,C.BE)
+z.Z,z.Zp = intersection (L.Ch,C.CF)
+L.XpE = line : new (z.Xp,z.E)
+L.YpF = line : new (z.Yp,z.F)
+L.ZpG = line : new (z.Zp,z.G)
+z.S = intersection (L.XpE,L.YpF)
+z.Xi = intersection(L.XpE,C.AG)
+z.Yi = intersection(L.YpF,C.BE)
+_,z.Zi = intersection(L.ZpG,C.CF)
+z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
+C.soddy_int = circle : new (z.S,z.Xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.s = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
+\tkzDrawPoints(Xi',Yi',Zi',S)
+\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
+\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
+\tkzDrawLines(X',Ha Y',Hb Z',Hc)
+\tkzDrawLines(X',E Y',F Z',G)
+\end{tikzpicture}
+% subsection soddy (end)
+
+\subsection{Soddy circle with function} % (fold)
+\label{sub:soddy_circle_with_function}
+
+\begin{verbatim}
+\begin{tkzelements}
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new (4 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.ins = circle : new (z.I,z.E)
+z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
+C.soddy_int = circle : new (z.s,z.xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.t = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
+ \end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
+\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
+\tkzLabelPoints(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
+\tkzDrawPoints(Xi',Yi',Zi')
+\tkzLabelPoints(A,B,C,E,F,G)
+\tkzDrawCircles(A,G B,E C,F I,E w,s)
+\end{tikzpicture}
+\end{verbatim}
+
+\begin{tkzelements}
+z.A = point : new ( 0 , 0 )
+z.B = point : new ( 5 , 0 )
+z.C = point : new (4 , 4 )
+T.ABC = triangle : new ( z.A,z.B,z.C )
+z.I = T.ABC.incenter
+z.E,z.F,z.G = T.ABC : projection (z.I)
+T.orthic = T.ABC : orthic ()
+z.Ha,z.Hb,z.Hc = get_points (T.orthic)
+C.ins = circle : new (z.I,z.E)
+z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
+C.soddy_int = circle : new (z.s,z.xi)
+C.soddy_ext = C.ins : inversion (C.soddy_int)
+z.w = C.soddy_ext.center
+z.t = C.soddy_ext.through
+z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
+ \end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawPolygon(A,B,C)
+\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
+\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
+\tkzLabelPoints(A,B,C)
+\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
+\tkzDrawPoints(Xi',Yi',Zi')
+\tkzLabelPoints(A,B,C,E,F,G)
+\tkzDrawCircles(A,G B,E C,F I,E w,s)
+\end{tikzpicture}
+
+% subsection soddy_circle_with_function (end)
+
+\subsubsection{Pappus chain} % (fold)
+\label{ssub:pappus_chain}
+ Soit le point $D$ appartenant à la droite $(AC)$ tel que
+ \[ DB \cdot DA = AC^2\]
+ alors $B$ est l'image de $D$ dans l'inversion de centre $A$ et puissance $AC^2$.
+ Les demi-cercles de diamètre $[AB]$ et$[AC]$ passent par le pôle $A$. Ils ont pour images les demi-droites $\mathcal{L'}$ et $\mathcal{L}$.
+
+Les cercles de centre $J_i$ et de diamètre $S_iT_i$ ont pour images les cercles de diamètre $S'_iT'_i$.
+
+ \pgfmathsetmacro{\xB}{6}%
+ \pgfmathsetmacro{\xC}{9}%
+ \pgfmathsetmacro{\xD}{(\xC*\xC)/\xB}%
+ \pgfmathsetmacro{\xJ}{(\xC+\xD)/2}%
+ \pgfmathsetmacro{\r}{\xD-\xJ}%
+ \pgfmathsetmacro{\nc}{2}%
+
+\begin{tikzpicture}[scale=1,ultra thin]
+ \tkzDefPoints{0/0/A,\xB/0/B,\xC/0/C,\xD/0/D}
+ \tkzDefPointBy[rotation = center C angle -90](B) \tkzGetPoint{c}
+ \tkzDefPointBy[rotation = center A angle 90](C) \tkzGetPoint{a}
+ \tkzDefPointBy[rotation = center D angle -90](C) \tkzGetPoint{d}
+ \tkzDrawLines[add=0 and 2.25](C,c)
+ \tkzDrawLines[add=0 and 1.5](D,d)
+ \tkzDefCircle[diameter](A,C) \tkzDrawSemiCircle(tkzPointResult,C)
+ \tkzDefCircle[diameter](A,B) \tkzDrawSemiCircle(tkzPointResult,B)
+ \tkzDefCircle[diameter](B,C) \tkzDrawSemiCircle(tkzPointResult,C)
+ \tkzDefCircle[diameter](C,D) \tkzDrawSemiCircle(tkzPointResult,D)
+ \tkzDrawArc[red](A,C)(a)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzLabelPoints(A,B,C,D)
+ \tkzLabelLine[left,pos=3](C,c){$\mathcal{L}$}
+ \tkzLabelLine[right,pos=2.5](D,d){$\mathcal{L'}$}
+ \foreach \i in {1,...,\nc}
+{\tkzDefPoint(\xJ,2*\r*\i){J}
+ \tkzDefPoint(\xJ,2*\r*\i-\r){H}
+ \tkzDefCircleBy[inversion = center A through C](J,H)\tkzGetPoints{J'}{H'}
+ \tkzInterLC(A,J)(J,H) \tkzGetPoints{S}{T}
+ \tkzDefPointsBy[inversion = center A through C](S,T){S',T'}
+ \tkzDrawCircle(J,H)
+ \tkzDefCircle[diameter](S',T') \tkzGetPoint{I'}
+ \tkzDrawCircle(I',T')
+ \tkzDrawLines[dashed,add = 0 and .15](A,T A,S A,H)
+ \tkzDrawPoints(J,H,H',S,S',T,T')
+ \tkzLabelPoint(J){$J_\i$}
+ \tkzLabelPoint(S){$S_\i$}
+ \tkzLabelPoint(T){$T_\i$}
+ \tkzLabelPoint(H){$H_\i$}
+ \tkzLabelPoint(S'){$S'_\i$}
+ \tkzLabelPoint(T'){$T'_\i$}
+ \tkzLabelPoint(H'){$H'_\i$}}
+\end{tikzpicture}
+
+\begin{verbatim}
+\begin{tkzelements}
+ xC,nc = 10,16
+ xB = xC/tkzphi
+ xD = (xC*xC)/xB
+ xJ = (xC+xD)/2
+ r = xD-xJ
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( xB , 0)
+ z.C = point : new ( xC , 0)
+ L.AC = line : new (z.A,z.C)
+ z.i = L.AC.mid
+ L.AB = line:new (z.A,z.B)
+ z.j = L.AB.mid
+ z.D = point : new ( xD , 0)
+ C.AC = circle: new (z.A,z.C)
+ for i = -nc,nc do
+ z["J"..i] = point: new (xJ,2*r*i)
+ z["H"..i] = point: new (xJ,2*r*i-r)
+ z["J"..i.."p"], z["H"..i.."p"] = C.AC : inversion (z["J"..i],z["H"..i])
+ L.AJ = line : new (z.A,z["J"..i])
+ C.JH = circle: new ( z["J"..i] , z["H"..i])
+ z["S"..i], z["T"..i] = intersection (L.AJ,C.JH)
+ z["S"..i.."p"], z["T"..i.."p"] = C.AC : inversion (z["S"..i],z["T"..i])
+ L.SpTp = line:new ( z["S"..i.."p"], z["T"..i.."p"])
+ z["I"..i] = L.SpTp.mid
+ end
+\end{tkzelements}
+
+\def\nc{\tkzUseLua{nc}}
+
+\begin{tikzpicture}[ultra thin]
+ \tkzGetNodes
+ \tkzDrawCircle[fill=teal!20](i,C)
+ \tkzDrawCircle[fill=PineGreen!60](j,B)
+ \foreach \i in {-\nc,...,0,...,\nc} {
+ \tkzDrawCircle[fill=teal]({I\i},{S\i'})
+ }
+\end{tikzpicture}
+
+\end{verbatim}
+
+\begin{tkzelements}
+ xC,nc = 10,16
+ xB = xC/tkzphi
+ xD = (xC*xC)/xB
+ xJ = (xC+xD)/2
+ r = xD-xJ
+ z.A = point : new ( 0 , 0 )
+ z.B = point : new ( xB , 0)
+ z.C = point : new ( xC , 0)
+ L.AC = line : new (z.A,z.C)
+ z.i = L.AC.mid
+ L.AB = line:new (z.A,z.B)
+ z.j = L.AB.mid
+ z.D = point : new ( xD , 0)
+ C.AC = circle: new (z.A,z.C)
+ for i = -nc,nc do
+ z["J"..i] = point: new (xJ,2*r*i)
+ z["H"..i] = point: new (xJ,2*r*i-r)
+ z["J"..i.."p"], z["H"..i.."p"] = C.AC : inversion (z["J"..i],z["H"..i])
+ L.AJ = line : new (z.A,z["J"..i])
+ C.JH = circle: new ( z["J"..i] , z["H"..i])
+ z["S"..i], z["T"..i] = intersection (L.AJ,C.JH)
+ z["S"..i.."p"], z["T"..i.."p"] = C.AC : inversion (z["S"..i],z["T"..i])
+ L.SpTp = line:new ( z["S"..i.."p"], z["T"..i.."p"])
+ z["I"..i] = L.SpTp.mid
+ end
+\end{tkzelements}
+
+\def\nc{\tkzUseLua{nc}}
+
+\begin{tikzpicture}[ultra thin]
+ \tkzGetNodes
+ \tkzDrawCircle[fill=teal!20](i,C)
+ \tkzDrawCircle[fill=PineGreen!60](j,B)
+ \foreach \i in {-\nc,...,0,...,\nc} {
+ \tkzDrawCircle[fill=teal]({I\i},{S\i'})
+ }
+\end{tikzpicture}
+
+
+% subsubsection pappus_chain (end)
+
+\subsection{Three Circles} % (fold)
+\label{sub:three_circles}
+
+\begin{verbatim}
+\begin{tkzelements}
+function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
+ local xk = math.sqrt (r1*r2)
+ local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
+ local cy = (r1*r2)/(math.sqrt(r1)+math.sqrt(r2))^2
+ z[c2] = point : new ( 2*xk , r2 )
+ z[h2] = point : new (2*xk,0)
+ z[c1] = point : new (0,r1)
+ z[h1] = point : new (0,0)
+ L.h1h2 = line: new(z[h1],z[h2])
+ z[c3] = point : new (cx,cy)
+ z[h3] = L.h1h2: projection (z[c3])
+end
+ threecircles("A",4,"B",3,"C","E","G","F")
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSegment[color = red](E,F)
+\tkzDrawCircle[orange,fill=orange!20](A,E)
+\tkzDrawCircle[purple,fill=purple!20](B,F)
+\tkzDrawCircle[teal,fill=teal!20](C,G)
+\end{tikzpicture}
+\end{verbatim}
+
+\begin{tkzelements}
+function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
+ local xk = math.sqrt (r1*r2)
+ local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
+ local cy = (r1*r2)/(math.sqrt(r1)+math.sqrt(r2))^2
+ z[c2] = point : new ( 2*xk , r2 )
+ z[h2] = point : new (2*xk,0)
+ z[c1] = point : new (0,r1)
+ z[h1] = point : new (0,0)
+ L.h1h2 = line: new(z[h1],z[h2])
+ z[c3] = point : new (cx,cy)
+ z[h3] = L.h1h2: projection (z[c3])
+end
+ threecircles("A",4,"B",3,"C","E","G","F")
+\end{tkzelements}
+
+\begin{tikzpicture}
+\tkzGetNodes
+\tkzDrawSegment[color = red](E,F)
+\tkzDrawCircle[orange,fill=orange!20](A,E)
+\tkzDrawCircle[purple,fill=purple!20](B,F)
+\tkzDrawCircle[teal,fill=teal!20](C,G)
+\end{tikzpicture}
+
+% subsection three_circles (end)
+
+\subsection{pentagons in a golden arbelos} % (fold)
+\label{sub:golden_arbelos}
+
+\begin{verbatim}
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (10 , 0)
+L.AB = line: new ( z.A, z.B)
+z.C = L.AB : gold_ratio ()
+L.AC = line: new ( z.A, z.C)
+L.CB = line: new ( z.C, z.B)
+z.O_0 = L.AB.mid
+z.O_1 = L.AC.mid
+z.O_2 = L.CB.mid
+C.O0B = circle: new ( z.O_0, z.B)
+C.O1C = circle: new ( z.O_1, z.C)
+C.O2B = circle: new ( z.O_2, z.B)
+z.M_0 = C.O1C : external_similitude (C.O2B)
+L.O0C = line:new(z.O_0,z.C)
+T.golden = L.O0C : golden ()
+z.L = T.golden.pc
+L.O0L = line:new(z.O_0,z.L)
+z.D = intersection (L.O0L,C.O0B)
+L.DB = line:new(z.D,z.B)
+z.Z = intersection (L.DB,C.O2B)
+L.DA = line:new(z.D,z.A)
+z.I = intersection (L.DA,C.O1C)
+L.O2Z = line:new(z.O_2,z.Z)
+z.H = intersection (L.O2Z,C.O0B)
+C.BD = circle:new (z.B,z.D)
+C.DB = circle:new (z.D,z.B)
+_,z.G = intersection (C.BD,C.O0B)
+z.E = intersection (C.DB,C.O0B)
+C.GB = circle:new (z.G,z.B)
+_,z.F = intersection (C.GB,C.O0B)
+k = 1/tkzphi^2
+kk = tkzphi
+z.D_1,z.E_1,z.F_1,z.G_1 = z.B : homothety (k, z.D,z.E,z.F,z.G)
+z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
+\end{tkzelements}
+\end{verbatim}
+
+\begin{verbatim}
+\begin{tikzpicture}[scale=.8]
+\tkzGetNodes
+\tkzDrawPolygon[red](O_2,O_0,I,D,H)
+\tkzDrawPolygon[blue](B,D_1,E_1,F_1,G_1)
+\tkzDrawPolygon[green](C,D_2,E_2,F_2,G_2)
+\tkzDrawPolygon[purple](B,D,E,F,G)
+\tkzDrawCircles(O_0,B O_1,C O_2,B)
+\tkzFillPolygon[fill=red!20,opacity=.20](O_2,O_0,I,D,H)
+\tkzFillPolygon[fill=blue!20,opacity=.20](B,D_1,E_1,F_1,G_1)
+\tkzFillPolygon[fill=green!60,opacity=.20](C,D_2,E_2,F_2,G_2)
+\tkzFillPolygon[fill=purple!20,opacity=.20](B,D,E,F,G)
+\tkzDrawCircles(O_0,B O_1,C O_2,B)
+\tkzDrawSegments[new](A,B)
+\tkzDrawPoints(A,B,C,O_0,O_1,O_2,Z,I,H,B,D,E,F)
+\tkzDrawPoints(D_1,E_1,F_1,G_1)
+\tkzDrawPoints(D_2,E_2,F_2,G_2)
+\tkzDrawPoints[red](F_1)
+\tkzLabelPoints(A,B,C,O_0,O_2)
+\tkzLabelPoints[below](O_1,G)
+\tkzLabelPoints[above right](D,H)
+\tkzLabelPoints[above left](E,E_1,E_2)
+\tkzLabelPoints[below left](F,F_1,F_2)
+\tkzLabelPoints(D_1,G_1)
+\tkzLabelPoints(D_2,G_2)
+\end{tikzpicture}
+\vspace{\fill}
+\end{verbatim}
+
+\begin{tkzelements}
+z.A = point: new (0 , 0)
+z.B = point: new (10 , 0)
+L.AB = line: new ( z.A, z.B)
+z.C = L.AB : gold_ratio ()
+L.AC = line: new ( z.A, z.C)
+L.CB = line: new ( z.C, z.B)
+z.O_0 = L.AB.mid
+z.O_1 = L.AC.mid
+z.O_2 = L.CB.mid
+C.O0B = circle: new ( z.O_0, z.B)
+C.O1C = circle: new ( z.O_1, z.C)
+C.O2B = circle: new ( z.O_2, z.B)
+z.M_0 = C.O1C : external_similitude (C.O2B)
+L.O0C = line:new(z.O_0,z.C)
+T.golden = L.O0C : golden ()
+z.L = T.golden.pc
+L.O0L = line:new(z.O_0,z.L)
+z.D = intersection (L.O0L,C.O0B)
+L.DB = line:new(z.D,z.B)
+z.Z = intersection (L.DB,C.O2B)
+L.DA = line:new(z.D,z.A)
+z.I = intersection (L.DA,C.O1C)
+L.O2Z = line:new(z.O_2,z.Z)
+z.H = intersection (L.O2Z,C.O0B)
+C.BD = circle:new (z.B,z.D)
+C.DB = circle:new (z.D,z.B)
+_,z.G = intersection (C.BD,C.O0B)
+z.E = intersection (C.DB,C.O0B)
+C.GB = circle:new (z.G,z.B)
+_,z.F = intersection (C.GB,C.O0B)
+k = 1/tkzphi^2
+kk = tkzphi
+z.D_1,z.E_1,z.F_1,z.G_1 = z.B : homothety (k, z.D,z.E,z.F,z.G)
+z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
+\end{tkzelements}
+\vspace{\fill}
+\begin{tikzpicture}[scale=.8]
+\tkzGetNodes
+\tkzDrawPolygon[red](O_2,O_0,I,D,H)
+\tkzDrawPolygon[blue](B,D_1,E_1,F_1,G_1)
+\tkzDrawPolygon[green](C,D_2,E_2,F_2,G_2)
+\tkzDrawPolygon[purple](B,D,E,F,G)
+\tkzDrawCircles(O_0,B O_1,C O_2,B)
+\tkzFillPolygon[fill=red!20,opacity=.20](O_2,O_0,I,D,H)
+\tkzFillPolygon[fill=blue!20,opacity=.20](B,D_1,E_1,F_1,G_1)
+\tkzFillPolygon[fill=green!60,opacity=.20](C,D_2,E_2,F_2,G_2)
+\tkzFillPolygon[fill=purple!20,opacity=.20](B,D,E,F,G)
+\tkzDrawCircles(O_0,B O_1,C O_2,B)
+\tkzDrawSegments[new](A,B)
+\tkzDrawPoints(A,B,C,O_0,O_1,O_2,Z,I,H,B,D,E,F)
+\tkzDrawPoints(D_1,E_1,F_1,G_1)
+\tkzDrawPoints(D_2,E_2,F_2,G_2)
+\tkzDrawPoints[red](F_1)
+\tkzLabelPoints(A,B,C,O_0,O_2)
+\tkzLabelPoints[below](O_1,G)
+\tkzLabelPoints[above right](D,H)
+\tkzLabelPoints[above left](E,E_1,E_2)
+\tkzLabelPoints[below left](F,F_1,F_2)
+\tkzLabelPoints(D_1,G_1)
+\tkzLabelPoints(D_2,G_2)
+\end{tikzpicture}
+\vspace{\fill}
+% subsection golden_arbelos (end)
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-indepthstudy.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -216,7 +216,7 @@
|z1..z2 = (a+ib) .. (c+id) = (a+ib) (c-id) = ac+bd + i(bc-ad) |
- There's also a mathematical function, |dot_product|, which takes three arguments. See example \ref{ssub:dot_or_scalar_product}
+ There's also a mathematical function, |dot_product|, which takes three arguments. See example \ref{sub:dot_or_scalar_product}
\item With the same idea, the operation associated with |^| is the determinant i.e.
@@ -667,7 +667,7 @@
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
- \tkzDrawline(A,B)
+ \tkzDrawLine(A,B)
\tkzDrawCircle(A,B)
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,I,J,K)
@@ -699,4 +699,37 @@
% subsection point_method (end)
+\subsection{Behind the objects} % (fold)
+\label{sub:behind_the_objects}
+
+Before introducing objects, I only used functions whose parameters were points (comlexes).
+For example, |z.m = midpoint_ (z.a,z.b)| defines the midpoint of points $a$ and $b$. Avec les objets, il faut d'abord définir la droite/sgment |L.ab| puis on obtient le milieu avec |z.m = L.ab.mid|.
+
+I've kept the functions (which I'll call "primary") whose only arguments are points. They are distinguished from the others by a terminal underscore. In fact, all (almost) object-related functions depend on a primary function.
+
+We've just seen the case of the midpoint of a point, so let's look at two other cases:
+
+\begin{itemize}
+ \item Rotation around a point. |c| is the center of rotation, |a| the angle and |pt| the point to be affected.
+ For example: |z.Mp = rotation (z.A,math.pi/6,z.M)|
+
+\begin{mybox}
+ function rotation\_ (c,a,pt)\\
+ local z = point( math.cos(a) , math.sin(a) )\\
+ return z*(pt-c)+c\\
+ end \end{mybox}
+
+ With objects, this gives |z.Mp = z.A : rotation (math.pi/6,z.M)|
+
+
+\item The intersection of a line and a circle is obtained using |intersection_lc_ (z.A,z.B,z.O,z.T)|.
+ using the straight line $(A,B)$ and the circle $C(O,T)$.
+
+ This will result in the objects: | intersection (L.AB,C.OT)|
+\end{itemize}
+
+The difference is that programming is more direct with primary functions and a little more efficient, but loses visibility.
+
+
+% subsection behind_the_objects (end)
% section in_depth_study (end)
\ No newline at end of file
Modified: trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-intersection.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -176,9 +176,10 @@
\label{sub:line_ellipse}
The following example is complex, but it shows the possibilities of Lua.
The designation of intersection points is a little more complicated than the previous one, as the argument characterizing the major axis must be taken into account. The principle is the same, but this argument must be subtracted. In concrete terms, you need to consider the slopes of the lines formed by the center of the ellipse and the points of intersection, and the slope of the major axis.
+\vspace{1em}
\begin{minipage}{0.5\textwidth}
-\begin{tkzexample}[code only,small]
+\begin{verbatim}
\begin{tkzelements}
scale = .5
z.a = point: new (5 , 2)
@@ -206,7 +207,7 @@
\tkzFillAngles[green!30,opacity=.4](e,c,v)
\tkzFillAngles[green!80,opacity=.4](e,c,u)
\end{tikzpicture}
-\end{tkzexample}
+\end{verbatim}
\end{minipage}
\begin{minipage}{0.5\textwidth}
\begin{tkzelements}
@@ -241,73 +242,6 @@
\end{minipage}
Other examples: \ref{ssub:function_tkzname_ellipse__foci}, \ref{sub:hexagram}
-%\caption{Intersection line and ellipse}
-% \begin{tkzexample}[code only,small]
-% \begin{tkzelements}
-% scale = .5
-% z.a = point: new (5 , 2)
-% z.b = point: new (-4 , 0)
-% z.m = point: new (2 , -3)
-% z.n = point: new (4 , -3)
-% L.ab = line : new (z.a,z.b)
-% L.mn = line : new (z.m,z.n)
-% z.c = L.ab. mid
-% z.e = L.ab: point (-.2)
-% E = ellipse: foci (z.a,z.b,z.e)
-% z.u,z.v = intersection (E,L.mn)
-% -- transfer to tex
-% a = E.Rx
-% b = E.Ry
-% ang = math.deg(E.slope)
-% \end{tkzelements}
-%
-% \begin{tikzpicture}
-% \tkzGetNodes
-% \tkzDrawLines[red](a,b u,v) % p,s p,t
-% \tkzDrawPoints(a,b,c,e,u,v) %
-% \tkzLabelPoints(a,b,c,u,v)
-% \tkzDrawEllipse[teal](c,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
-% \tkzFillAngles[green!30,opacity=.4](e,c,v)
-% \tkzDrawSegments(c,u c,v)
-% \tkzFillAngles[green!30,opacity=.4,size=1.2](e,c,v)
-% \tkzFillAngles[green!80,opacity=.4](e,c,u)
-% \end{tikzpicture}
-% \end{tkzexample}
-%
-% \begin{tkzelements}
-% scale=.5
-% z.a = point: new (5 , 2)
-% z.b = point: new (-4 , 0)
-% z.m = point: new (2 , -3)
-% z.n = point: new (4 , -3)
-% L.ab = line : new (z.a,z.b)
-% L.mn = line : new (z.m,z.n)
-% z.c = L.ab. mid
-% z.e = L.ab: point (-.2)
-% E = ellipse: foci (z.a,z.b,z.e)
-% z.u,z.v = intersection (E,L.mn)
-% -- transfer to tex
-% a = E.Rx
-% b = E.Ry
-% ang = math.deg(E.slope)
-% \end{tkzelements}
-%
-%
-% \hspace*{\fill}
-% \begin{tikzpicture}
-% \tkzGetNodes
-% \tkzDrawLines[red](a,b u,v) % p,s p,t
-% \tkzDrawPoints(a,b,c,e,u,v) %
-% \tkzLabelPoints(a,b,c,u,v)
-% \tkzDrawEllipse[teal](c,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
-% \tkzFillAngles[green!30,opacity=.4](e,c,v)
-% \tkzDrawSegments(c,u c,v)
-% \tkzFillAngles[green!30,opacity=.4,size=1.2](e,c,v)
-% \tkzFillAngles[green!80,opacity=.4](e,c,u)
-% \end{tikzpicture}
-% \hspace*{\fill}
-%\caption{Intersection line and ellipse}
-
% subsection line_ellipse (end)
% section intersections (end)
\ No newline at end of file
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -21,10 +21,10 @@
headings = small
]{tkz-doc}
\gdef\tkznameofpack{tkz-elements}
-\gdef\tkzversionofpack{1.60c}
+\gdef\tkzversionofpack{1.72c}
\gdef\tkzdateofpack{\today}
\gdef\tkznameofdoc{tkz-elements.pdf}
-\gdef\tkzversionofdoc{1.60c}
+\gdef\tkzversionofdoc{1.72c}
\gdef\tkzdateofdoc{\today}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
@@ -168,6 +168,7 @@
\AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb
\begin{document}
+% \LuaCodeDebugOn
\parindent=0pt
\tkzTitleFrame{tkz-elements \tkzversionofpack\\Euclidean Geometry}
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -148,7 +148,7 @@
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.O_3 = triangle: new ( z.P_0, z.P_1, z.P_2).circumcenter -- circumcenter attribute of "triangle"
\end{tkzelements}
\begin{tikzpicture}
@@ -176,21 +176,21 @@
\documentclass{standalone}
\usepackage{tkz-euclide,tkz-elements}
\begin{document}
-\begin{tkzelements} we create environment tkzelements
- z.A = point: new (2 , 4) three fixed points are used
- z.B = point: new (0 , 0)
+\begin{tkzelements}
+ z.A = point: new (2 , 4) -- we create environment tkzelements
+ z.B = point: new (0 , 0) -- three fixed points are used
z.C = point: new (8 , 0)
- T.ABC = triangle: new (z.A,z.B,z.C) we create a new triangle object
- C.ins = T.ABC: in_circle () we get the incircle of this triangle
- z.I = C.ins.center center is an attribute of the circle
- z.T = C.ins.through through is also an attribute
- -- z.I,z.T = get_points (C.ins) get_points is a shortcut
- C.cir = T.ABC : circum_circle () we get the circumscribed circle
- z.W = C.cir.center we get the center of this circle
- z.O = C.cir.south now we get the south pole of this circle
- L.AO = line: new (z.A,z.O) we create an object "line"
- L.BC = T.ABC.bc we get the line (BC)
- z.I_A = intersection (L.AO,L.BC) we search the intersection of the last lines
+ T.ABC = triangle: new (z.A,z.B,z.C) -- we create a new triangle object
+ C.ins = T.ABC: in_circle () -- we get the incircle of this triangle
+ z.I = C.ins.center -- center is an attribute of the circle
+ z.T = C.ins.through -- through is also an attribute
+ -- z.I,z.T = get_points (C.ins) -- get_points is a shortcut
+ C.cir = T.ABC : circum_circle () -- we get the circumscribed circle
+ z.W = C.cir.center -- we get the center of this circle
+ z.O = C.cir.south -- now we get the south pole of this circle
+ L.AO = line: new (z.A,z.O) -- we create an object "line"
+ L.BC = T.ABC.bc -- we get the line (BC)
+ z.I_A = intersection (L.AO,L.BC) -- we search the intersection of the last lines
\end{tkzelements}
\end{verbatim}
\begin{tkzelements}
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex 2023-12-24 21:27:27 UTC (rev 69213)
@@ -73,7 +73,7 @@
\subsubsection{Other transfers} % (fold)
\label{ssub:other_transfers}
-Sometimes it's useful to transfer angle, length measurements or boolean. For this purpose, I have created the macro (see \ref{ssub:transfer_from_lua_to_tex})
+Sometimes it's useful to transfer angle, length measurements or boolean. For this purpose, I have created the macro (see \ref{sub:transfer_from_lua_to_tex})
\IEmacro{tkzUseLua(value)}
\begin{verbatim}
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz-elements.sty 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,5 +1,5 @@
% encoding : utf8
-% tkz-elements.sty v1.60c
+% tkz-elements.sty v1.72c
% 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/14 v1.60c Graphic Object Library]
+\ProvidesPackage{tkz-elements}[23/12/24 v1.72c 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_circle.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements-circles.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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
@@ -17,6 +17,9 @@
circle = {}
function circle: new (c, t) -- c --> center t --> through
local type = 'circle'
+ local ra = line :new (c,t)
+ local anti = antipode_ (c,t)
+ local di = line : new (anti, t)
local radius = point.abs ( c - t )
local south = c - point (0,radius)
local east = c + point (radius,0)
@@ -24,6 +27,8 @@
local west = c - point (radius,0)
local o = { center = c,
through = t,
+ ra = ra,
+ di = di,
radius = radius,
south = south,
east = east,
@@ -69,6 +74,19 @@
return false
end
end
+
+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
-----------------------
-- real --
-----------------------
@@ -217,16 +235,6 @@
return table.unpack ( t )
end
end
-
- function circle: set_inversion (...)
- local tp = table.pack(...)
- local i
- local t = {}
- for i=1,tp.n do
- table.insert( t , inversion_ (self.center,self.through , tp[i]) )
- end
- return table.unpack ( t )
- end
function circle: draw ()
local x,y
@@ -235,6 +243,9 @@
local frmt = '\\draw (%0.3f,%0.3f) circle [radius=%0.3f];'
tex.sprint(string.format(frmt, x,y,r))
end
-
-
+
+function circle: midcircle(C)
+ return midcircle_ (self,C)
+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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_class.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_class.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_ellipse.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements-ellipses.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_circles.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_circles.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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
@@ -53,7 +53,7 @@
end
function radical_axis_ (c1,p1,c2,p2)
- local d,m,m1,m2,epsilon,ci,cj,ck,cm,cn,r1,r2
+ local d,m,m1,m2,epsilon,ci,cj,ck,cm,cn,r1,r2,t
r1 = point.abs(c1-p1)
r2 = point.abs(c2-p2)
epsilon = 10^(-12)
@@ -66,8 +66,10 @@
cj = rotation_ (p1,-math.pi/2,c2)
return ci,cj
elseif m1 < epsilon then -- circles tangent
- ci = rotation_ (p1,math.pi/2,c2)
- cj = rotation_ (p1,-math.pi/2,c2)
+ -- z.A = point : new ( x , y ) contact
+ t,t = intersection_cc_ (c1,p1,c2,p2)
+ ci = rotation_ (t,math.pi/2,c2)
+ cj = rotation_ (t,-math.pi/2,c2)
return ci,cj
-- circles disjoints
elseif m > 0 then
@@ -75,7 +77,7 @@
ci,cj = intersection_cc_ (c1,p1,ck,c1)
cm,cn = intersection_cc_ (c2,p2,ck,c1)
ci = intersection_ll_ (ci,cj,cm,cn)
- cj = projection_ (c1,c2,ci)
+ cj = symmetry_axial_ (c1,c2,ci) -- projection_ (c1,c2,ci)
return ci,cj
else
ci,cj = intersection_cc_ (c1,p1,c2,p2)
@@ -112,5 +114,44 @@
return rotation_ (c,phi,t)
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_functions_intersections.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_intersections.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_intersections.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_lines.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_lines.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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_maths.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_maths.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_maths.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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_points.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_points.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_points.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_regular.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_regular.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_functions_triangles.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_triangles.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_line.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_lines.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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
@@ -268,7 +268,7 @@
function line: mediator ()
local m
m = midpoint_ (self.pa,self.pb)
- return line : new (m,rotation_ (m,math.pi/2,self.pb))
+ return line : new (rotation_ (m,-math.pi/2,self.pb),rotation_ (m,math.pi/2,self.pb))
end
-------------------
-- Result -> circle
@@ -281,6 +281,19 @@
return circle : new (self.pb,self.pa)
end
+function line : diameter ()
+ local c = midpoint_ (self.pa,self.pb)
+ return circle : new (c,self.pb)
+end
+
+function line : apollonius (k)
+ local z1,z2,c
+ z1 = barycenter_ ({self.pa,1},{self.pb,k})
+ z2 = barycenter_ ({self.pa,1},{self.pb,-k})
+ c = midpoint_ (z1,z2)
+ return circle : new (c,z2)
+end
+
----------------------
-- Result -> triangle
----------------------
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_main.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements-main.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_misc.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_functions_maths.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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
@@ -55,56 +55,4 @@
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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_parallelogram.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_parallelogram.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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_point.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua 2023-12-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_point.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_point.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_quadrilateral.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_quadrilateral.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_rectangle.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements-rectangle.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_regular.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_regular.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_square.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements-square.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_triangle.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_triangles.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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-24 21:27:15 UTC (rev 69212)
+++ trunk/Master/texmf-dist/tex/latex/tkz-elements/tkz_elements_vector.lua 2023-12-24 21:27:27 UTC (rev 69213)
@@ -1,6 +1,6 @@
-- tkz_elements_vectors.lua
--- date 23/12/14
--- version 1.60c
+-- date 23/12/24
+-- version 1.72c
-- 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.