From 1bb740255f4f87c18a61c6bc9e15fef63df09301 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 29 Apr 2024 20:31:34 +0000 Subject: tkz-elements (29apr24) git-svn-id: svn://tug.org/texlive/trunk@71130 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/tkz-elements/README.md | 136 +++++---- .../TKZdoc-elements-classes-circle.tex | 8 +- .../TKZdoc-elements-classes-ellipse.tex | 133 ++++----- .../tkz-elements/TKZdoc-elements-classes-line.tex | 70 ++++- .../tkz-elements/TKZdoc-elements-classes-point.tex | 1 + .../TKZdoc-elements-classes-regular.tex | 2 +- .../TKZdoc-elements-classes-triangle.tex | 225 ++++++++++++++- .../tkz-elements/TKZdoc-elements-examples.tex | 308 ++++++++------------- .../latex/tkz-elements/TKZdoc-elements-main.tex | 30 +- .../tkz-elements/TKZdoc-elements-organization.tex | 3 +- .../tkz-elements/TKZdoc-elements-presentation.tex | 3 +- .../tkz-elements/TKZdoc-elements-structure.tex | 2 +- .../tkz-elements/TKZdoc-elements-transfers.tex | 2 +- .../tkz-elements/TKZdoc-elements-transferts.tex | 150 ---------- .../tkz-elements/examples/tkz-elements-demo_1.pdf | Bin 20611 -> 20614 bytes .../tkz-elements/examples/tkz-elements-demo_1.tex | 2 +- .../tkz-elements/examples/tkz-elements-demo_2.pdf | Bin 16392 -> 16396 bytes .../tkz-elements/examples/tkz-elements-demo_2.tex | 2 +- .../tkz-elements/examples/tkz-elements-demo_3.pdf | Bin 17158 -> 17162 bytes .../tkz-elements/examples/tkz-elements-demo_3.tex | 2 +- .../tkz-elements/examples/tkz-elements-demo_4.pdf | Bin 11343 -> 11341 bytes .../tkz-elements/examples/tkz-elements-demo_4.tex | 2 +- .../doc/latex/tkz-elements/tkz-elements.pdf | Bin 696762 -> 704147 bytes 23 files changed, 563 insertions(+), 518 deletions(-) delete mode 100644 Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex/tkz-elements/README.md b/Master/texmf-dist/doc/latex/tkz-elements/README.md index 1f2043e4353..a4d8d90fadd 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/README.md +++ b/Master/texmf-dist/doc/latex/tkz-elements/README.md @@ -1,12 +1,12 @@ # tkz-elements — for euclidean geometry -Release 2.20c 2024/03/26 +Release 2.25c 2024/04/28 ## Description -`tkz-elements v.2.20c` 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.2.25c` 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. + 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. You can use the option `mini` with `tkz-euclide` to load only the modules required for tracing. ## Licence @@ -39,7 +39,9 @@ To use the package `tkz-elements`, place the following lines in the preamble of your LaTeX document: ``` -\usepackage{tkz-euclide,tkz-elements} +% !TEX TS-program = lualatex +\usepackage[mini]{tkz-euclide} +\usepackage{tkz-elements} \begin{document} \begin{tkzelements} your code @@ -60,27 +62,32 @@ An important example `Golden Arbelos` using the package is on the site. All the are on the site. ## History + - version 2.25c + - French documentation at my site: [http://altermundus.fr](http://altermundus.fr) + - Added `colinear_at` a new method for the classe `line` + - Added `cevian`, `pedal`, `conway_circle`, `conway_points` new methods to the class `triangle`. + - version 2.20c - - Package: - - Added class matrix; methods are mainly of order 2, sometimes of order 3. - - Added function solve_quadratic. This function can be used to solve second-degree equations with real or complex numbers. - - Added method print for the class point. Example z.A : print () - - Correction of the macro tkzDN. I deleted a spurious space - - Modification of vector class attributes. Attributes h and t become head and tail. - - The mtx attribute is introduced for point and vector. - z.A.mtx represents the column matrix whose coefficients are the point's coordinates. Same for vectors. - - Documentation: - - Rewriting of all texts - - Correction of example: pentagon - - Documentation about matrices + - Package: + - Added class matrix; methods are mainly of order 2, sometimes of order 3. + - Added function solve_quadratic. This function can be used to solve second-degree equations with real or complex numbers. + - Added method print for the class point. Example z.A : print () + - Correction of the macro tkzDN. I deleted a spurious space + - Modification of vector class attributes. Attributes h and t become head and tail. + - The mtx attribute is introduced for point and vector. + z.A.mtx represents the column matrix whose coefficients are the point's coordinates. Same for vectors. + - Documentation: + - Rewriting of all texts + - Correction of example: pentagon + - Documentation about matrices - version 2.00c - - class development “vector” - - added attribute “vec” - - added “at” and “orthogonal” methods to the class “point” + - class development `vector` + - added attribute `vec` + - added `at` and `orthogonal` methods to the class `point` - rewriting the function angle\_normalize\_ - - modification of the slope attribute for the “line”, now the result is normalized. + - modification of the slope attribute for the `line`, now the result is normalized. - the angles of a triangle are also normalized - added function format\_number(number,decimal) sets the number of digits in the decimal part. - added \tkzDN a macro pour formater les nombres dans la partie TikZ @@ -115,7 +122,7 @@ are on the site. - method trilinear (to use trilinear coordinates) - method barycentric (to use barycentric coordinates) - Added some functions - - bisector (a,b,c) altitude (a,b,c) bisector_ext(a,b,c) equilateral (a,b) midpoint (a,b) to avoid creating unnecessary objects. + - `bisector (a,b,c)` `altitude (a,b,c)` `bisector_ext(a,b,c)` `equilateral (a,b)` `midpoint (a,b)` to avoid creating unnecessary objects. - Added new examples and a cheat sheet in the documentation @@ -133,72 +140,55 @@ are on the site. - version 1.60c - added Internal and external tangents common to two circles: - - function circle : `external_tangent`(C) - - function circle : `internal_tangent(C) + - 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 + - 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". + - 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. - version 1.50c Correction of the documentation - - 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 `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" - Version 1.40c Restructuring objects - New version for all transformations. Now, they accept all objects as parameters. - - Symmetry_axial has changed its name to reflection. - - Added scale to north south etc.. (point object). - - Change the "point" method of the objects circle and ellipse. now the parameter is un real t (between 0 and 1) and not an angle - - Added the method `check_equilateral` to know if a triangle is equilateral. - - - Added option "indirect" to the method equilateral for a line object. - - Correction of the documentation. (Added sections). - - - - + - New version for all transformations. Now, they accept all objects as parameters. + - Symmetry_axial has changed its name to reflection. + - Added scale to north south etc.. (point object). + - Change the "point" method of the objects circle and ellipse. now the parameter is un real t (between 0 and 1) and not an angle + - Added the method `check_equilateral` to know if a triangle is equilateral. + - Added option "indirect" to the method equilateral for a line object. + - Correction of the documentation. (Added sections). + - Version 1.20 Memory management: tables are emptied when the tkzelements environment is opened. - `set_lua_to_tex` has been replaced by `tkzUseLua` to transfer data between the `tkzelements` and `tikzpicture` environments. - - New version of `inversion` with respect to a circle method. It selects the correct algorithm based on the object passed as a parameter. - - Added an `in_out_disk` method for the `circle` object, which indicates whether or not a point is in the disk. `in_out` is for the circle. - - Added two methods: `radical_center (C1,C2,C3)` radical center of three circles. - `radical_circle (C1,C2,C3)` orthogonal circle of three circles. - - Added function `circle : radius` to define a circle with a centre and a radius. - - Added methods `normalize` and `normalize_inv` for `line`. - - Added methods `translation` and `set_translation` to the `line` object. - - Added an example to illustrate combinations of methods and attributes. + - `set_lua_to_tex` has been replaced by `tkzUseLua` to transfer data between the `tkzelements` and `tikzpicture` environments. + - New version of `inversion` with respect to a circle method. It selects the correct algorithm based on the object passed as a parameter. + - Added an `in_out_disk` method for the `circle` object, which indicates whether or not a point is in the disk. `in_out` is for the circle. + - Added two methods: `radical_center (C1,C2,C3)` radical center of three circles. + `radical_circle (C1,C2,C3)` orthogonal circle of three circles. + - Added function `circle : radius` to define a circle with a centre and a radius. + - Added methods `normalize` and `normalize_inv` for `line`. + - Added methods `translation` and `set_translation` to the `line` object. + - Added an example to illustrate combinations of methods and attributes. - First version 1.00b diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex index f84c58d9413..7ae96c7ada5 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-circle.tex @@ -121,9 +121,9 @@ Three attributes are used (south, west, radius). \midrule \textbf{Circles}& &\\ \midrule -\Imeth{circle}{orthogonal\_from (pt)} & |C = C.OA: orthogonal_from (z.P)| & Refer to (\ref{ssub:altshiller} ; \ref{sub:common_tangent_orthogonality} ; \ref{sub:orthogonal_circles_v1} ; \ref{sub:pencil_v1}) \\ -\Imeth{circle}{orthogonal\_through (pta,ptb)} & |C = C.OA: orthogonal_through (z.z1,z.z2)| & Refer to (\ref{sub:orthogonal_circle_through})\\ -\Imeth{circle}{inversion (...)} & | C.AC: inversion (pt, pts, L or C )|& Refer to \ref{ssub:inversion}, \ref{ssub:inversion_point}, \ref{ssub:inversion_line}, \ref{ssub:inversion_circle}\\ +\Imeth{circle}{orthogonal\_from (pt)} &|C=C.OA:orthogonal_from (z.P)| & Refer to (\ref{ssub:altshiller} ; \ref{sub:common_tangent_orthogonality} ; \ref{sub:orthogonal_circles_v1} ; \ref{sub:pencil_v1}) \\ +\Imeth{circle}{orthogonal\_through (pta,ptb)}&|C=C.OA:orthogonal_through (z.z1,z.z2)| & Refer to (\ref{sub:orthogonal_circle_through})\\ +\Imeth{circle}{inversion (...)} &|C.AC:inversion (pt, pts, L or C)|& Refer to \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)| & Refer to \ref{ssub:midcircle} \\ \Imeth{circle}{radical\_circle (C1<,C2>)} & or only (C1) & Refer to \ref{sub:radical_circle}\\ \midrule @@ -208,7 +208,7 @@ Three attributes are used (south, west, radius). \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} - scale = 1.6 + scale = 1.25 z.A = point: new (1,0) z.B = point: new (5,2) z.C = point: new (1.2,2) diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex index 5ea44a57b7e..3146f73461e 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-ellipse.tex @@ -56,23 +56,6 @@ The first attributes are the three points that define the ellipse: : the \Iattr z.Co = E.covertex z.Ve = E.vertex \end{tkzelements} -\begin{tikzpicture} - \pgfkeys{/pgf/number format/.cd,fixed,precision=2} - \tkzGetNodes - \tkzDrawCircles[teal](C,A) - \tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b}, - \tkzUseLua{slope}) - \tkzDrawPoints(C,A,B,b,W,S,F1,F2) - \tkzLabelPoints(C,A,B) - \tkzDrawLine[add = .5 and .5](A,W) - \tkzLabelSegment[pos=1.5,above,sloped](A,W){% - slope = \pgfmathprintnumber{\tkzUseLua{slope}}} - \tkzLabelPoint[below](S){South} - \tkzLabelPoint[below left](F1){Focus 1} - \tkzLabelPoint[below left](F2){Focus 2} - \tkzLabelPoint[above right](Ve){Vertex ; East} - \tkzLabelPoint[above right](Co){Covertex ; North} -\end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} @@ -96,9 +79,8 @@ The first attributes are the three points that define the ellipse: : the \Iattr z.Co = E.covertex z.Ve = E.vertex \end{tkzelements} - \hspace*{\fill} \begin{tikzpicture} - \pgfkeys{/pgf/number format/.cd,fixed,precision=2} +\pgfkeys{/pgf/number format/.cd,fixed,precision=2} \tkzGetNodes \tkzDrawCircles[teal](C,A) \tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{slope}) @@ -113,6 +95,28 @@ The first attributes are the three points that define the ellipse: : the \Iattr \tkzLabelPoint[above right](Co){Covertex ; North} \end{tikzpicture} \end{minipage} + +\begin{Verbatim} +\begin{tikzpicture} + \pgfkeys{/pgf/number format/.cd,fixed,precision=2} + \tkzGetNodes + \tkzDrawCircles[teal](C,A) + \tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b}, + \tkzUseLua{slope}) + \tkzDrawPoints(C,A,B,b,W,S,F1,F2) + \tkzLabelPoints(C,A,B) + \tkzDrawLine[add = .5 and .5](A,W) + \tkzLabelSegment[pos=1.5,above,sloped](A,W){% + slope = \pgfmathprintnumber{\tkzUseLua{slope}}} + \tkzLabelPoint[below](S){South} + \tkzLabelPoint[below left](F1){Focus 1} + \tkzLabelPoint[below left](F2){Focus 2} + \tkzLabelPoint[above right](Ve){Vertex ; East} + \tkzLabelPoint[above right](Co){Covertex ; North} +\end{tikzpicture} +\end{Verbatim} + + % \caption{Class Ellipse} % subsection attributes_of_an_ellipse (end) @@ -202,46 +206,7 @@ The function \Igfct{package}{tkzUseLua (variable)} is used to transfer values to The first two points are the foci of the ellipse, and the third one is the vertex. We can deduce all the other characteristics from these points. \emph{The function launches the |new| method, defining all the characteristics of the ellipse.} -\begin{tkzelements} - scale =1 - z.A = point: new (0 , 0) - z.B = point: new (5 , 1) - L.AB = line : new (z.A,z.B) - z.C = point: new (.8 , 3) - T.ABC = triangle: new (z.A,z.B,z.C) - z.N = T.ABC.eulercenter - z.H = T.ABC.orthocenter - z.O = T.ABC.circumcenter - _,_,z.Mc = get_points (T.ABC: medial ()) - L.euler = line: new (z.H,z.O) - C.circum = circle: new (z.O,z.A) - C.euler = circle: new (z.N,z.Mc) - z.i,z.j = intersection (L.euler,C.circum) - z.I,z.J = intersection (L.euler,C.euler) - E = ellipse: foci (z.H,z.O,z.I) - L.AH = line: new (z.A,z.H) - z.X = intersection (L.AH,C.circum) - L.XO = line: new (z.X,z.O) - z.R,z.S = intersection (L.XO,E) - a,b = E.Rx,E.Ry - ang = math.deg(E.slope) -\end{tkzelements} -\hspace*{\fill} -\begin{tikzpicture} -\tkzGetNodes -\tkzDrawPolygon(A,B,C) -\tkzDrawCircles[cyan](O,A N,I) -\tkzDrawSegments(X,R A,X) -\tkzDrawEllipse[red](N,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang}) -\tkzDrawLines[add=.2 and .5](I,H) -\tkzDrawPoints(A,B,C,N,O,X,H,R,S,I) -\tkzLabelPoints[above](C,X) -\tkzLabelPoints[above right](N,O) -\tkzLabelPoints[above left](R) -\tkzLabelPoints[left](A) -\tkzLabelPoints[right](B,I,S,H) -\end{tikzpicture} -\hspace*{\fill} +\begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new (0 , 0) @@ -267,6 +232,50 @@ The first two points are the foci of the ellipse, and the third one is the verte ang = math.deg(E.slope) \end{tkzelements} \end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} + \begin{tkzelements} + scale =1 + z.A = point: new (0 , 0) + z.B = point: new (5 , 1) + L.AB = line : new (z.A,z.B) + z.C = point: new (.8 , 3) + T.ABC = triangle: new (z.A,z.B,z.C) + z.N = T.ABC.eulercenter + z.H = T.ABC.orthocenter + z.O = T.ABC.circumcenter + _,_,z.Mc = get_points (T.ABC: medial ()) + L.euler = line: new (z.H,z.O) + C.circum = circle: new (z.O,z.A) + C.euler = circle: new (z.N,z.Mc) + z.i,z.j = intersection (L.euler,C.circum) + z.I,z.J = intersection (L.euler,C.euler) + E = ellipse: foci (z.H,z.O,z.I) + L.AH = line: new (z.A,z.H) + z.X = intersection (L.AH,C.circum) + L.XO = line: new (z.X,z.O) + z.R,z.S = intersection (L.XO,E) + a,b = E.Rx,E.Ry + ang = math.deg(E.slope) + \end{tkzelements} + \hspace*{\fill} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygon(A,B,C) + \tkzDrawCircles[cyan](O,A N,I) + \tkzDrawSegments(X,R A,X) + \tkzDrawEllipse[red](N,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang}) + \tkzDrawLines[add=.2 and .5](I,H) + \tkzDrawPoints(A,B,C,N,O,X,H,R,S,I) + \tkzLabelPoints[above](C,X) + \tkzLabelPoints[above right](N,O) + \tkzLabelPoints[above left](R) + \tkzLabelPoints[left](A) + \tkzLabelPoints[right](B,I,S,H) + \end{tikzpicture} + \hspace*{\fill} +\end{minipage} + \begin{Verbatim} \begin{tikzpicture} \tkzGetNodes @@ -283,11 +292,7 @@ The first two points are the foci of the ellipse, and the third one is the verte \tkzLabelPoints[left](A) \tkzLabelPoints[right](B,I,S,H) \end{tikzpicture} -\end{Verbatim} - - - - + \end{Verbatim} % subsubsection function_tkzname_ellipse__foci (end) \subsubsection{Method \Imeth{ellipse}{point} and \Imeth{ellipse}{radii}} % (fold) diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex index 741938eb66c..435ad9bcc63 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-line.tex @@ -181,6 +181,7 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be \Imeth{line}{\_north\_pb(d)} &|z.M=L.AB:_north_pb(2)| &|BM=2|; $BM\perp BA$ ; $\overrightarrow{BA},\overrightarrow{BM}$ clockwise \\ \Imeth{line}{\_south\_pb(d)} &|z.M=L.AB:_south_pb(2)| &|BM=2|; $BM\perp BA$ ; $\overrightarrow{AB},\overrightarrow{AM}$ counterclockwise \\ \Imeth{line}{report(d,pt)} &|z.M=L.AB:report(2,z.N)| &|MN=2|; $AB\parallel MN$ ; Refer to ex. (\ref{ssub:method_report})\\ +\Imeth{line}{colinear\_at(pt,k)} &|z.D=L.AB:colinear_at(z.C,2)| &|CD=2AB|; $AB\parallel CD$ ; Refer to ex. (\ref{ssub:method_imeth_line_colinear__at})\\ \midrule \textbf{Lines} &&\\ \midrule @@ -229,7 +230,7 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be \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 (r)} & |C.apo = L.AB : apollonius (2)|& Ensemble des points tq. |MA/MB = 2| \\ +\Imeth{line}{apollonius (r)} & |C.apo = L.AB : apollonius (2)|& Set of points tq. |MA/MB = 2| \\ \midrule \textbf{Transformations} &&\\ \midrule @@ -248,7 +249,7 @@ Here's the list of methods for the \tkzNameObj{line} object. The results can be \egroup \end{minipage} -\subsubsection{Method report} % (fold) +\subsubsection{Method \Imeth{line}{report}} % (fold) \label{ssub:method_report} |report (d,pt)| If the point is absent, the transfer is made from the first point that defines the line. @@ -289,7 +290,7 @@ z.O = L.AB : report (3) \end{minipage} % subsubsection method_report (end) -\subsubsection{Triangle with two\_angles} % (fold) +\subsubsection{Method \Imeth{line}{two\_angles} } % (fold) \label{ssub:triangle_with_two__angles} The angles are on either side of the given segment @@ -332,7 +333,7 @@ The angles are on either side of the given segment \end{minipage} % subsubsection triangle_with_two__angles (end) -\subsubsection{Triangle with three given sides} % (fold) +\subsubsection{Method \Imeth{line}{sss}} % (fold) \label{ssub:triangle_with_three_given_sides} In the following example, a small difficulty arises. The given lengths are not affected by scaling, so it's necessary to use the \Igfct{math}{value (r) } function, which will modify the lengths according to the scale. @@ -498,7 +499,7 @@ The side lengths are proportional to the lengths given in the table. They depend \end{minipage} % subsubsection about_triangles (end) -\subsubsection{Method point }% (fold) +\subsubsection{Method \Imeth{line}{point} }% (fold) \label{ssub:method_point} This method is very useful. It allows you to place a point on the line under consideration. If |r = 0| then the point is |pa|, if |r = 1| it's |pb|. @@ -544,9 +545,50 @@ This method exists for all objects except quadrilaterals. \end{minipage} % subsubsection method_point (end) -\subsubsection{Normalize} % (fold) -\label{ssub:normalize} +\subsubsection{Method \Imeth{line}{colinear\_at}} % (fold) +\label{ssub:method_imeth_line_colinear__at} +If the coefficient is missing then it defaults to $1$ and in the following example we obtain: $CE=AB$ and $(AB)\parallel (CE)$. For point $D$: $CD = .5AB$ and $(AB)\parallel (CD)$. +\begin{minipage}{.5\textwidth} +\begin{Verbatim} +\begin{tkzelements} + z.A = point: new (0 , 0) + z.B = point: new (4 , 0) + z.C = point: new (1 , 3) + L.AB = line : new (z.A,z.B) + z.D = L.AB : colinear_at (z.C,.5) + z.E = L.AB : colinear_at (z.C) +\end{tkzelements} +\begin{tikzpicture} + \tkzGetNodes + \tkzDrawSegments(A,B C,E) + \tkzDrawPoints(A,B,C,D,E) + \tkzLabelPoints(A,B,C,D,E) +\end{tikzpicture} +\end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} +\begin{tkzelements} + z.A = point: new (0 , 0) + z.B = point: new (4 , 0) + z.C = point: new (1 , 3) + L.AB = line : new (z.A,z.B) + z.D = L.AB : colinear_at (z.C,.5) + z.E = L.AB : colinear_at (z.C) +\end{tkzelements} +\begin{tikzpicture} + \tkzGetNodes + \tkzDrawSegments(A,B C,E) + \tkzDrawPoints(A,B,C,D,E) + \tkzLabelPoints(A,B,C,D,E) +\end{tikzpicture} +\end{minipage} + +% subsubsection method_imeth_line_colinear__at (end) + + +\subsubsection{Method \Imeth{line}{normalize}} % (fold) +\label{ssub:normalize} \begin{minipage}{.4\textwidth} \begin{Verbatim} @@ -586,7 +628,7 @@ This method exists for all objects except quadrilaterals. % subsubsection normalize (end) -\subsubsection{Barycenter with a line} % (fold) +\subsubsection{Method \Imeth{line}{barycenter}} % (fold) \label{ssub:barycenter_with_a_line} \begin{minipage}{.4\textwidth} @@ -621,7 +663,7 @@ This method exists for all objects except quadrilaterals. \end{minipage} % subsubsection barycenter_with_a_line (end) -\subsubsection{Example: new line from a defined line} % (fold) +\subsubsection{method \Imeth{line}{ll\_from}} % (fold) \label{ssub:new_line_from_a_defined_line} \begin{minipage}{0.5\textwidth} \begin{Verbatim} @@ -673,7 +715,7 @@ _,z.E = get_points ( L.CD: ll_from (z.B)) % subsubsection new_line_from_a_defined_line (end) -\subsubsection{Example: projection of several points} % (fold) +\subsubsection{Method \Imeth{line}{projection}} % (fold) \label{ssub:example_projection_of_several_points} \begin{minipage}{0.5\textwidth} \begin{Verbatim} @@ -788,7 +830,7 @@ z.a,z.b = L.ab.pa,L.ab.pb % subsubsection example_combination_of_methods (end) -\subsubsection{Example: translation} % (fold) +\subsubsection{Method \Imeth{line}{translation}} % (fold) \label{ssub:example_translation} \begin{minipage}{0.6\textwidth} @@ -830,7 +872,7 @@ z.a,z.b = L.ab.pa,L.ab.pb % subsubsection example_translation (end) -\subsubsection{Example: distance and projection} % (fold) +\subsubsection{Method \Imeth{line}{distance}} % (fold) \label{ssub:example_distance_and_projection} \begin{minipage}{0.5\textwidth} @@ -876,7 +918,7 @@ z.a,z.b = L.ab.pa,L.ab.pb % \caption{Method distance with line object} % subsubsection example_distance_and_projection (end) -\subsubsection{Reflection of object} % (fold) +\subsubsection{Method \Imeth{line}{reflection} of an object} % (fold) \label{ssub:reflection_of_object} \begin{minipage}{.5\textwidth} @@ -924,7 +966,7 @@ z.a,z.b = L.ab.pa,L.ab.pb % subsubsection reflection_of_object (end) -\subsection{Apollonius circle MA/MB = k} % (fold) +\subsection{Method \Imeth{line}{apollonius} Apollonius circle MA/MB = k} % (fold) \label{sub:apollonius_circle_ma_mb_k} \begin{Verbatim} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex index 68c5a73e5a7..e404dc763bb 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-point.tex @@ -605,6 +605,7 @@ Rotate a triangle by an angle of $\pi/6$ around $O$. \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} + scale = .75 z.O = point : new ( -1 , -1 ) z.A = point : new ( 2 , 0 ) z.B = point : new ( 5 , 0 ) diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex index 2413a97d91c..3ec9e777a64 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-regular.tex @@ -81,7 +81,7 @@ z.H = RP.five.proj \bgroup \catcode`_=12 \small -\captionof{table}{Circle methods.}\label{regular:met} +\captionof{table}{regular\_polygon methods.}\label{regular:met} \begin{tabular}{ll} \toprule \textbf{Methods} & \textbf{Comments} \\ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex index f54a53f39eb..80b711e46f6 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-classes-triangle.tex @@ -202,7 +202,9 @@ Through the Lemoine point draw lines parallel to the triangle's sides. The point then lie on a circle known as the first Lemoine circle. } \\ \Imeth{triangle}{second\_lemoine\_circle ()} & Refer to example \ref{sub:antiparallel_through_lemoine_point}\\ \Imeth{triangle}{spieker\_circle ()} & The incircle of the medial triangle\\ - +\Imeth{triangle}{cevian\_circle ()} & Circumscribed circle of a Cevian triangle Refer to (\ref{ssub:method_imeth_triangle_cevian})\\ +\Imeth{triangle}{pedal\_circle ()} & Circumscribed circle of the podar triangle Refer to (\ref{ssub:method_imeth_triangle_pedal})\\ +\Imeth{triangle}{conway\_circle ()} & Circumscribed circle of Conway points Refer to (\ref{ssub:method_imeth_triangle_conway})\\ \bottomrule \end{tabular} \end{minipage} @@ -234,7 +236,8 @@ Remark: If you don't need to use the triangle object several times, you can obta \Imeth{triangle}{tangential ()} & Triangle formed by the lines tangent to the circumcircle at the vertices\\ \Imeth{triangle}{feuerbach ()} & Triangle formed by the points of tangency of the euler circle with the excircles\\ \Imeth{triangle}{anti () }& Anticomplementary Triangle The given triangle is its medial triangle. \\ -\Imeth{triangle}{cevian (pt)} & Triangle formed with the endpoints of the three cevians with respect to |pt|.\\ +\Imeth{triangle}{cevian (pt)} & Triangle formed with the endpoints of the three cevians with respect to |pt|. refer to (\ref{ssub:method_imeth_triangle_cevian})\\ +\Imeth{triangle}{pedal (pt)} & Triangle formed by projections onto the sides of |pt| Refer to \ref{ssub:method_imeth_triangle_pedal}\\ \Imeth{triangle}{symmedian ()} & Triangle formed with the intersection points of the symmedians. \\ \Imeth{triangle}{euler ()} & Triangle formed with the euler points \\ \midrule @@ -256,6 +259,171 @@ Remark: If you don't need to use the triangle object several times, you can obta \egroup % subsubsection methods_of_the_class_triangle (end) + +\subsubsection{Méthodes \Imeth{triangle}{cevian} et \Imeth{triangle}{cevian\_circle}} % (fold) +\label{ssub:method_imeth_triangle_cevian} +\begin{minipage}{.5\textwidth} +\begin{Verbatim} +\begin{tkzelements} + scale = 2 + z.a = point: new (1,2) + z.b = point: new (5,1) + z.c = point: new (3,5) + T = triangle: new (z.a,z.b,z.c) + z.i = T.orthocenter + T.cevian = T : cevian (z.i) + z.ta,z.tb,z.tc = get_points (T.cevian) + C.cev = T : cevian_circle (z.i) + z.w = C.cev.center +\end{tkzelements} +\begin{tikzpicture} +\tkzGetNodes +\tkzDrawPolygons(a,b,c ta,tb,tc) +\tkzDrawSegments(a,ta b,tb c,tc) +\tkzDrawPoints(a,b,c,i,ta,tb,tc) +\tkzLabelPoints(a,b,c,i) +\tkzDrawCircles(w,ta) +\end{tikzpicture} +\end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} +\begin{tkzelements} +scale = 2 +z.a = point: new (1,2) +z.b = point: new (5,1) +z.c = point: new (3,5) +T = triangle: new (z.a,z.b,z.c) +z.i = T.orthocenter +T.cevian = T : cevian (z.i) +z.ta,z.tb,z.tc = get_points (T.cevian) +C.cev = T : cevian_circle (z.i) +z.w = C.cev.center +\end{tkzelements} +\begin{tikzpicture} +\tkzGetNodes +\tkzDrawPolygons(a,b,c ta,tb,tc) +\tkzDrawSegments(a,ta b,tb c,tc) +\tkzDrawPoints(a,b,c,i,ta,tb,tc) +\tkzLabelPoints(a,b,c,i) +\tkzDrawCircles(w,ta) +\end{tikzpicture} +\end{minipage} +% subsubsection method_imeth_triangle_cevian (end) + + +\subsubsection{Méthodes \Imeth{triangle}{pedal} et \Imeth{triangle}{pedal\_circle}} % (fold) +\label{ssub:method_imeth_triangle_pedal} + +\begin{minipage}{.5\textwidth} +\begin{Verbatim} + \begin{tkzelements} + z.A = point: new(0,0) + z.B = point: new(5,0) + z.C = point: new(1.5,3) + z.O = point: new (2,1) + T.ABC = triangle: new (z.A,z.B,z.C) + T.pedal = T.ABC : pedal (z.O) + z.E,z.F,z.G = get_points(T.pedal) + C.pedal = T.ABC : pedal_circle (z.O) + z.w = C.pedal.center + z.T = C.pedal.through + \end{tkzelements} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygon(A,B,C) + \tkzDrawPolygon[red](E,F,G) + \tkzDrawCircle(w,T) + \tkzDrawPoints(A,B,C,E,F,G,O) + \tkzLabelPoints(A,B,C,E,F,G) + \tkzDrawSegments(O,E O,F O,G) + \end{tikzpicture} +\end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} + \begin{tkzelements} + z.A = point: new(0,0) + z.B = point: new(5,0) + z.C = point: new(1.5,3) + z.O = point: new (2,1) + T.ABC = triangle: new (z.A,z.B,z.C) + T.pedal = T.ABC : pedal (z.O) + z.E,z.F,z.G = get_points(T.pedal) + C.pedal = T.ABC : pedal_circle (z.O) + z.w = C.pedal.center + z.T = C.pedal.through + \end{tkzelements} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygon(A,B,C) + \tkzDrawPolygon[red](E,F,G) + \tkzDrawCircle(w,T) + \tkzDrawPoints(A,B,C,E,F,G,O) + \tkzLabelPoints(A,B,C,E,F,G) + \tkzDrawSegments(O,E O,F O,G) + \end{tikzpicture} +\end{minipage} +% subsubsection method_imeth_triangle_pedal (end) + +\subsubsection{Méthodes \Imeth{triangle}{conway\_points} et \Imeth{triangle}{conway\_circle}} % (fold) +\label{ssub:method_imeth_triangle_conway} + +En géométrie plane, le théorème du cercle de Conway stipule que lorsque les côtés se rencontrant à chaque sommet d'un triangle sont prolongés par la longueur du côté opposé, les six points d'extrémité des trois segments de droite résultants se trouvent sur un cercle dont le centre est le centre d'incidence du triangle. + +\begin{minipage}{.5\textwidth} + \begin{Verbatim} + \begin{tkzelements} + z.A = point:new (0,0) + z.C = point:new (5,0) + z.B = point:new (1,3) + T.ABC = triangle : new (z.A,z.B,z.C) + C.conway = T.ABC : conway_circle () + z.w,z.t = get_points(C.conway) + z.t1,z.t2,z.t3,z.t4, + z.t5,z.t6= T.ABC : conway_points () + \end{tkzelements} + \hspace*{5cm} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygon(A,B,C) + \tkzDrawCircles(w,t) + \tkzDrawPoints(t1,t2,t3,t4,t5,t6) + \tkzLabelPoints(t1,t2,t3,t4,t5,t6) + \tkzDrawSegments[dashed](t1,A t2,A t3,B) + \tkzDrawSegments[dashed](t4,B t5,C t6,C) + \tkzMarkSegments(B,C t1,A t2,A) + \tkzMarkSegments[mark=||](A,C t3,B t4,B) + \tkzMarkSegments[mark=|||](A,B t5,C t6,C) + \end{tikzpicture} + \end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} + \begin{tkzelements} + scale = .5 + z.A = point:new (0,0) + z.C = point:new (5,0) + z.B = point:new (1,3) + T.ABC = triangle : new (z.A,z.B,z.C) + C.conway = T.ABC : conway_circle () + z.w,z.t = get_points(C.conway) + z.t1,z.t2,z.t3, + z.t4,z.t5,z.t6= T.ABC : conway_points () + \end{tkzelements} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygon(A,B,C) + \tkzDrawCircles(w,t) + \tkzDrawPoints(t1,t2,t3,t4,t5,t6) + \tkzLabelPoints(t1,t2,t3,t4,t5,t6) + \tkzDrawSegments[dashed](t1,A t2,A t3,B t4,B t5,C t6,C) + \tkzMarkSegments(B,C t1,A t2,A) + \tkzMarkSegments[mark=||](A,C t3,B t4,B) + \tkzMarkSegments[mark=|||](A,B t5,C t6,C) + \end{tikzpicture} +\end{minipage} + +% subsubsection methode_imeth_triangle_conway (end) + + \subsubsection{Euler line} % (fold) \label{ssub:euler_line} @@ -549,10 +717,61 @@ z.T2 = L.T2.pb \tkzMarkSegments(B,E B,M B,F) \end{tikzpicture} \end{Verbatim} +% subsection harmonic_division_and_bisector (end) + +\subsubsection{Method \Imeth{triangle}{cevan}} % (fold) +\label{ssub:method_imeth_triangle_cevan} + +\begin{minipage}{.5\textwidth} + \begin{Verbatim} + \begin{tkzelements} + scale = 2 + z.a = point: new (1,2) + z.b = point: new (5,1) + z.c = point: new (3,5) + T = triangle: new (z.a,z.b,z.c) + z.i = T.orthocenter + T.cevian = T : cevian (z.i) + z.ta,z.tb,z.tc = get_points (T.cevian) + C.cev = T : cevian_circle (z.i) + z.w = C.cev.center + \end{tkzelements} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygons(a,b,c ta,tb,tc) + \tkzDrawSegments(a,ta b,tb c,tc) + \tkzDrawPoints(a,b,c,i,ta,tb,tc) + \tkzLabelPoints(a,b,c,i) + \tkzDrawCircles(w,ta) + \end{tikzpicture} + \end{Verbatim} +\end{minipage} +\begin{minipage}{.5\textwidth} + \begin{tkzelements} + scale = 2 + z.a = point: new (1,2) + z.b = point: new (5,1) + z.c = point: new (3,5) + T = triangle: new (z.a,z.b,z.c) + z.i = T.orthocenter + T.cevian = T : cevian (z.i) + z.ta,z.tb,z.tc = get_points (T.cevian) + C.cev = T : cevian_circle (z.i) + z.w = C.cev.center + \end{tkzelements} + \begin{tikzpicture} + \tkzGetNodes + \tkzDrawPolygons(a,b,c ta,tb,tc) + \tkzDrawSegments(a,ta b,tb c,tc) + \tkzDrawPoints(a,b,c,i,ta,tb,tc) + \tkzLabelPoints(a,b,c,i) + \tkzDrawCircles(w,ta) + \end{tikzpicture} +\end{minipage} +% subsubsection method_imeth_triangle_cevan (end) -% subsection harmonic_division_and_bisector (end) % subsection methods_of_the_class_triangle (end) % section class_triangle (end) \endinput diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex index 1b35c272633..4f46d4a1278 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-examples.tex @@ -720,6 +720,7 @@ Same result using the function |T.ABC.ab : apollonius (k) | \subsection{Orthogonal circle through} % (fold) \label{sub:orthogonal_circle_through} +\begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.O = point: new (0,1) @@ -738,8 +739,8 @@ Same result using the function |T.ABC.ab : apollonius (k) | \tkzLabelPoints[right](O,A,z1,z2,c) \end{tikzpicture} \end{Verbatim} - -\begin{tkzelements} +\end{minipage} +\begin{minipage}{.5\textwidth}\begin{tkzelements} z.O = point: new (0,1) z.A = point: new (1,0) z.z1 = point: new (-1.5,-1.5) @@ -748,7 +749,6 @@ Same result using the function |T.ABC.ab : apollonius (k) | C = C.OA: orthogonal_through (z.z1,z.z2) z.c = C.center \end{tkzelements} - \hspace*{\fill} \begin{tikzpicture} \tkzGetNodes @@ -758,6 +758,7 @@ Same result using the function |T.ABC.ab : apollonius (k) | \tkzLabelPoints[right](O,A,z1,z2,c) \end{tikzpicture} \hspace*{\fill} +\end{minipage} % subsection orthogonal_circle_through (end) \subsection{Divine ratio} % (fold) @@ -1516,70 +1517,50 @@ z.O_0 = L.AB.mid \begin{minipage}[t]{.4\textwidth}\vspace{0pt}% \begin{Verbatim} \begin{tkzelements} - scale=.75 - z.A = point: new (0 , 0) - z.B = point: new (4 , 0) - z.D = point: new (12,0) - L.AB = line : new (z.A,z.B) - z.X = L.AB.north_pa - L.XB = line : new (z.X,z.B) - z.E = L.XB.mid - L.DE = line : new (z.D,z.E) - L.XA = line : new (z.X,z.A) - z.F = intersection (L.DE,L.XA) - L.AE = line : new (z.A,z.E) - L.BF = line : new (z.B,z.F) - z.G = intersection (L.AE,L.BF) - L.XG = line : new (z.X,z.G) -z.C = intersection (L.XG,L.AB) + scale=.75 + z.A = point: new (0 , 0) + z.B = point: new (4 , 0) + z.G = point: new (2,2) + L.AG = line : new (z.A,z.G) + L.AB = line : new (z.A,z.B) + z.E = L.AG : colinear_at (z.B,.5) + L.GE = line : new (z.G,z.E) + z.D = intersection (L.GE,L.AB) + z.F = z.B : symmetry (z.E) + L.GF = line :new (z.G,z.F) + z.C = intersection (L.GF,L.AB) \end{tkzelements} \begin{tikzpicture} - \tkzGetNodes - \tkzDefPoints{0/0/A,4/0/B} - \tkzDefPoints{2/2/G} - \tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E} - \tkzInterLL(G,E)(A,B) \tkzGetPoint{D} - \tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F} - \tkzInterLL(G,F)(A,B) \tkzGetPoint{C} - \tkzDrawLines(A,D A,G F,E G,F G,D) - \tkzDrawPoints(A,B,G,E,F,C,D) - \tkzLabelPoints(A,B,G,E,F,C,D) - \tkzMarkSegments(F,B B,E) + \tkzGetNodes + \tkzDrawLines(A,B A,G A,D A,G F,E G,F G,D) + \tkzDrawPoints(A,B,G,E,F,C,D) + \tkzLabelPoints(A,B,G,E,F,C,D) + \tkzMarkSegments(F,B B,E) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}[t]{.6\textwidth}\vspace{0pt}% \begin{tkzelements} -scale=.75 -z.A = point: new (0 , 0) -z.B = point: new (4 , 0) -z.D = point: new (12,0) -L.AB = line : new (z.A,z.B) -z.X = L.AB.north_pa -L.XB = line : new (z.X,z.B) -z.E = L.XB.mid -L.DE = line : new (z.D,z.E) -L.XA = line : new (z.X,z.A) -z.F = intersection (L.DE,L.XA) -L.AE = line : new (z.A,z.E) -L.BF = line : new (z.B,z.F) -z.G = intersection (L.AE,L.BF) -L.XG = line : new (z.X,z.G) -z.C = intersection (L.XG,L.AB) + scale=.75 + z.A = point: new (0 , 0) + z.B = point: new (4 , 0) + z.G = point: new (2,2) + L.AG = line : new (z.A,z.G) + L.AB = line : new (z.A,z.B) + z.E = L.AG : colinear_at (z.B,.5) + L.GE = line : new (z.G,z.E) + z.D = intersection (L.GE,L.AB) + z.F = z.B : symmetry (z.E) + L.GF = line :new (z.G,z.F) + z.C = intersection (L.GF,L.AB) \end{tkzelements} \hspace*{\fill} \begin{tikzpicture} -\tkzGetNodes -\tkzDefPoints{0/0/A,4/0/B} -\tkzDefPoints{2/2/G} -\tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E} -\tkzInterLL(G,E)(A,B) \tkzGetPoint{D} -\tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F} -\tkzInterLL(G,F)(A,B) \tkzGetPoint{C} -\tkzDrawLines(A,D A,G F,E G,F G,D) -\tkzDrawPoints(A,B,G,E,F,C,D) -\tkzLabelPoints(A,B,G,E,F,C,D) -\tkzMarkSegments(F,B B,E) + \tkzGetNodes + \tkzDrawLines(A,B A,G A,D A,G F,E G,F G,D) + \tkzDrawPoints(A,B,G,E,F,C,D) + \tkzLabelPoints(A,B,G,E,F,C,D) + \tkzMarkSegments(F,B B,E) \end{tikzpicture} \hspace*{\fill} \end{minipage} @@ -1590,22 +1571,22 @@ z.C = intersection (L.XG,L.AB) \begin{minipage}[t]{.5\textwidth}\vspace{0pt}% \begin{Verbatim} \begin{tkzelements} - scale = .5 - z.A = point: new (0 , 0) - z.B = point: new (6 , 0) - z.D = point: new (12 , 0) - L.AB = line: new (z.A,z.B) - z.X = L.AB.north_pa - L.XB = line: new (z.X,z.B) - z.E = L.XB.mid - L.ED = line: new (z.E,z.D) - L.AX = line: new (z.A,z.X) - L.AE = line: new (z.A,z.E) - z.F = intersection (L.ED,L.AX) - L.BF = line: new (z.B,z.F) - z.G = intersection (L.AE,L.BF) - L.GX = line: new (z.G,z.X) - z.C = intersection (L.GX,L.AB) +scale = .5 +z.A = point: new (0 , 0) +z.B = point: new (6 , 0) +z.D = point: new (12 , 0) +L.AB = line: new (z.A,z.B) +z.X = L.AB.north_pa +L.XB = line: new (z.X,z.B) +z.E = L.XB.mid +L.ED = line: new (z.E,z.D) +L.AX = line: new (z.A,z.X) +L.AE = line: new (z.A,z.E) +z.F = intersection (L.ED,L.AX) +L.BF = line: new (z.B,z.F) +z.G = intersection (L.AE,L.BF) +L.GX = line: new (z.G,z.X) +z.C = intersection (L.GX,L.AB) \end{tkzelements} \begin{tikzpicture} \tkzGetNodes @@ -2015,7 +1996,7 @@ z.H = L.OOp : projection (z.X) \begin{minipage}[t]{.5\textwidth}\vspace{0pt}% \begin{Verbatim} \begin{tkzelements} - scale = .25 + scale = .5 z.A = point: new (0,0) z.B = point: new (6,0) z.C = point: new (0.8,4) @@ -2039,7 +2020,8 @@ z.H = L.OOp : projection (z.X) \end{tikzpicture} \end{Verbatim} \end{minipage} -\begin{minipage}[t]{.5\textwidth}\vspace{0pt}% + + \begin{tkzelements} scale = .5 z.A = point: new (0,0) @@ -2066,7 +2048,7 @@ z.H = L.OOp : projection (z.X) \tkzLabelPoints(A,B,C) \end{tikzpicture} \hspace*{\fill} -\end{minipage} + % subsection radical_circle (end) \subsection{Euler ellipse} % (fold) @@ -2112,44 +2094,44 @@ _,z.W = intersection (L.ZO,E) \begin{minipage}{.4\textwidth} \begin{Verbatim} \begin{tkzelements} - scale = 1.3 - z.A = point: new (0 , 0) - z.B = point: new (5 , 1) - L.AB = line : new (z.A,z.B) - z.C = point: new (.8 , 3) - T.ABC = triangle: new (z.A,z.B,z.C) - z.N = T.ABC.eulercenter - z.G = T.ABC.centroid - z.O = T.ABC.circumcenter - z.H = T.ABC.orthocenter + scale = 1.3 + z.A = point: new (0 , 0) + z.B = point: new (5 , 1) + L.AB = line : new (z.A,z.B) + z.C = point: new (.8 , 3) + T.ABC = triangle: new (z.A,z.B,z.C) + z.N = T.ABC.eulercenter + z.G = T.ABC.centroid + z.O = T.ABC.circumcenter + z.H = T.ABC.orthocenter z.Ma,z.Mb, - z.Mc = get_points (T.ABC : medial ()) + z.Mc = get_points(T.ABC:medial ()) z.Ha,z.Hb, - z.Hc = get_points (T.ABC : orthic ()) + z.Hc = get_points(T.ABC:orthic ()) z.Ea,z.Eb, - z.Ec = get_points (T.ABC: extouch()) - L.euler = T.ABC : euler_line () - C.circum = T.ABC : circum_circle () - C.euler = T.ABC : euler_circle () - z.I,z.J = intersection (L.euler,C.euler) - E = ellipse: foci (z.H,z.O,z.I) - a = E.Rx - b = E.Ry - ang = math.deg(E.slope) - L.AH = line: new (z.A,z.H) - L.BH = line: new (z.B,z.H) - L.CH = line: new (z.C,z.H) - z.X = intersection (L.AH,C.circum) - _,z.Y = intersection (L.BH,C.circum) - _,z.Z = intersection (L.CH,C.circum) - L.BC = line: new (z.B,z.C) - L.XO = line: new (z.X,z.O) - L.YO = line: new (z.Y,z.O) - L.ZO = line: new (z.Z,z.O) - z.x = intersection (L.BC,L.XO) - z.U = intersection (L.XO,E) - _,z.V = intersection (L.YO,E) - _,z.W = intersection (L.ZO,E) + z.Ec = get_points(T.ABC:extouch()) + L.euler = T.ABC : euler_line () + C.circum = T.ABC : circum_circle () + C.euler = T.ABC : euler_circle () + z.I,z.J = intersection (L.euler,C.euler) + E = ellipse: foci (z.H,z.O,z.I) + a = E.Rx + b = E.Ry + ang = math.deg(E.slope) + L.AH = line: new (z.A,z.H) + L.BH = line: new (z.B,z.H) + L.CH = line: new (z.C,z.H) + z.X = intersection (L.AH,C.circum) + _,z.Y = intersection (L.BH,C.circum) + _,z.Z = intersection (L.CH,C.circum) + L.BC = line: new (z.B,z.C) + L.XO = line: new (z.X,z.O) + L.YO = line: new (z.Y,z.O) + L.ZO = line: new (z.Z,z.O) + z.x = intersection (L.BC,L.XO) + z.U = intersection (L.XO,E) + _,z.V = intersection (L.YO,E) + _,z.W = intersection (L.ZO,E) \end{tkzelements} \end{Verbatim} \end{minipage} @@ -2169,7 +2151,6 @@ _,z.W = intersection (L.ZO,E) \tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc) \tkzDrawEllipse[blue](N,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang}) \end{tikzpicture} -\hspace*{\fill} \end{minipage} \begin{Verbatim} @@ -3539,24 +3520,24 @@ z.Cp,_ = intersection (L.GD,C.xD) \begin{minipage}[t]{.5\textwidth}\vspace{0pt}% \begin{Verbatim} - \begin{tikzpicture} - \tkzGetNodes - \tkzDrawCircles(O,B) - \tkzDrawCircles[cyan](P,B) - \tkzDrawCircles[red](w,E) - \tkzDrawCircles[new](x,F) - \tkzDrawSegments(A,G E,G C,G) - \tkzDrawPolygons[new](A,E,C A',E',C') - \tkzDrawPoints(A,...,G,A',E',C',O,P) - \begin{scope}[font=\scriptsize] - \tkzLabelPoints(A,...,F) - \tkzLabelPoints[above left](G,A',E',C') - \tkzLabelCircle[left](O,B)(30){$(\beta)$} - \tkzLabelCircle[below](P,A)(40){$(\gamma)$} - \tkzLabelCircle[right](w,C)(90){$(\alpha)$} - \tkzLabelCircle[left](x,B)(-230){$((\delta))$} - \end{scope} - \end{tikzpicture} +\begin{tikzpicture} + \tkzGetNodes + \tkzDrawCircles(O,B) + \tkzDrawCircles[cyan](P,B) + \tkzDrawCircles[red](w,E) + \tkzDrawCircles[new](x,F) + \tkzDrawSegments(A,G E,G C,G) + \tkzDrawPolygons[new](A,E,C A',E',C') + \tkzDrawPoints(A,...,G,A',E',C',O,P) + \begin{scope}[font=\scriptsize] + \tkzLabelPoints(A,...,F) + \tkzLabelPoints[above left](G,A',E',C') + \tkzLabelCircle[left](O,B)(30){$(\beta)$} + \tkzLabelCircle[below](P,A)(40){$(\gamma)$} + \tkzLabelCircle[right](w,C)(90){$(\alpha)$} + \tkzLabelCircle[left](x,B)(-230){$((\delta))$} + \end{scope} +\end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}[t]{.5\textwidth}\vspace{0pt}% @@ -3639,7 +3620,6 @@ L.TA = C.wE : tangent_at (z.A) L.TC = C.xE : tangent_at (z.C) z.I = intersection (L.TA,L.TC) \end{tkzelements} - \hspace*{\fill} \begin{tikzpicture} \tkzGetNodes @@ -3652,6 +3632,7 @@ z.I = intersection (L.TA,L.TC) \tkzLabelPoints[above right](E,F) \tkzLabelPoints[below](C) \end{tikzpicture} +\hspace*{\fill} \end{minipage} % subsection three_tangents (end) @@ -3802,7 +3783,7 @@ z.B = point: new (5,1) z.C = point: new (2,3) T = triangle: new (z.A,z.B,z.C) z.O = T.circumcenter -z.o,z.w = get_points (T : first_lemoine_circle ()) +z.o,z.w = get_points(T:first_lemoine_circle()) z.L = T : lemoine_point () \end{tkzelements} \hspace*{\fill} @@ -3813,7 +3794,6 @@ z.L = T : lemoine_point () \tkzLabelPoints(A,B,C,o,w,O,L) \tkzDrawCircles(o,w O,A) \end{tikzpicture} -\hspace*{\fill} \end{minipage} % subsection first_lemoine_circle (end) @@ -4233,61 +4213,10 @@ z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi) \tkzLabelPoints(A,B,C,E,F,G) \end{tikzpicture} \end{Verbatim} - - % 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} +\subsection{Pappus chain} % (fold) +\label{sub:pappus_chain} \begin{tkzelements} scale =.75 @@ -4374,7 +4303,7 @@ Les cercles de centre $J_i$ et de diamètre $S_iT_i$ ont pour images les cercles \end{tikzpicture} \vfill \end{minipage} -% subsubsection pappus_chain (end) +% subsection pappus_chain (end) \subsection{Three Circles} % (fold) \label{sub:three_circles} @@ -4449,7 +4378,7 @@ 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) +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 @@ -4488,7 +4417,7 @@ 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) 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) + 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 @@ -4514,6 +4443,7 @@ 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{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} + \hfill \begin{tikzpicture}[scale=.7] \tkzGetNodes \tkzDrawPolygon[red](O_2,O_0,I,D,H) diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex index cd967f1af07..55608bb26b0 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-main.tex @@ -1,7 +1,7 @@ % !TEX TS-program = lualatex % encoding : utf8 -% Documentation of tkz-elements v2.20c -% Copyright 2023 Alain Matthes +% Documentation of tkz-elements v2.25c +% Copyright 2024 Alain Matthes % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. @@ -21,10 +21,10 @@ headings = small ]{tkz-doc} \gdef\tkznameofpack{tkz-elements} -\gdef\tkzversionofpack{2.20c} +\gdef\tkzversionofpack{2.25c} \gdef\tkzdateofpack{\today} \gdef\tkznameofdoc{tkz-elements.pdf} -\gdef\tkzversionofdoc{2.20c} +\gdef\tkzversionofdoc{2.25c} \gdef\tkzdateofdoc{\today} \gdef\tkzauthorofpack{Alain Matthes} \gdef\tkzadressofauthor{} @@ -33,11 +33,12 @@ \gdef\tkzengine{lualatex} \gdef\tkzurlauthorcom{http://altermundus.fr} \nameoffile{\tkznameofpack} + % -- Packages --------------------------------------------------- \usepackage[dvipsnames,svgnames]{xcolor} \usepackage{calc} \usepackage{tkz-base} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements} \usepackage{pgfornament} \usetikzlibrary{backgrounds} @@ -144,6 +145,7 @@ sharp corners \newcommand*{\IEmacro}[1]{\index{#1_1@\texttt{\textbackslash#1}}\texttt{#1}} \newcommand*{\tkzimpbf}[1]{\texttt{\textbf{#1}}} \newcommand*{\tkzEHand}{\textcolor{red}{\lefthand}} +\newcommand*{\ItkzPopt}[2]{\texttt{#2}\index{#1_3@\texttt{#1: options}!\texttt{#2}}} %<---------------------------------------------------------------------------> % settings styles @@ -181,8 +183,7 @@ sharp corners This document compiles some notes about \tkzname{\tkznameofpack}, the initial version of a \code{Lua} library designed to perform all the necessary calculations for defining objects in Euclidean geometry figures. Your document must be compiled using Lua\LaTeX.\\ With \pkg{tkz-elements}, definitions and calculations are exclusively conducted using \pkg{Lua}. \\ The primary programming approach offered is oriented towards \code{object programming}, utilizing object classes such as point, line, triangle, circle, and ellipse. Currently, after the calculations are completed, \pkg{tkz-euclide} or \pkg{TikZ} is used for drawing purposes.\\ - I discovered Lua and object-oriented programming while developing this package, so it's highly likely that I've made a few mistakes. If you'd like to contribute to the development of this package or provide advice on how to proceed, please contact me via email. \\ -Please note: English is not my native language, so there may be some errors." + I discovered Lua and object-oriented programming while developing this package, so it's highly likely that I've made a few mistakes. If you'd like to contribute to the development of this package or provide advice on how to proceed, please contact me via email. } \presentation @@ -197,8 +198,8 @@ Special thanks to \tkzimp{Wolfgang Büchel} for his invaluable contribution in c \href{http://mathworld.wolfram.com/about/author.html}{MathWorld}. \vspace*{12pt} -\lefthand\ You can find some examples on my site: -\href{http://altermundus.fr}{altermundus.fr}. \hspace{2cm} under construction! +\lefthand\ You can find some examples on my site and a french documentation: +\href{http://altermundus.fr}{altermundus.fr}. \vfill Please report typos or any other comments to this documentation to: \href{mailto:al.ma@mac.com}{\textcolor{blue}{Alain Matthes}}. @@ -248,7 +249,6 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |r| denotes a real number, |cx| complex number, |d| a positive real number, |n| an integer, |an| an angle, |b| a boolean, |s| a character string, |pt| a point, |t| a table, |m| a matrix, |v| variable, |L| a straight line, |C| a circle, |T| a triangle, |E| an ellipse, |V| a vector,|Q| a quadrilateral, |P| a parallelogram, |R| a rectangle, |S| a square, |RP| a regular polygon, |M| a matrix, |O| an object (pt, L,C,T), . . a list of points or an object, < > optional argument. \begin{multicols}{3} - \fbox{\textbf{point}}\\ \textbf{Attributes} table(\ref{point:att}) \\ |re -> r| \\ @@ -320,7 +320,9 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |_south_pa (d) -> pt| \\ |_south_pb (d) -> pt| \\ |_east (d) -> pt| \\ -|_west (d) -> pt| \\ +|_west (d) -> pt| \\ +|report (r,pt) -> pt| \\ +|colinear_at (pt,k) -> pt| \\ |translation (...) -> O| \\ |projection (...) -> O| \\ |reflection (...) -> O| \\ @@ -348,7 +350,6 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |sublime () -> T| \\ |egyptian () -> T| \\ |square () -> T| \\ -|report (r,pt) -> T| \\ \\ \fbox{\textbf{triangle}} \\ \textbf{Attributes} table(\ref{triangle:att}) \\ @@ -387,6 +388,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |nine_points () -> pt| \\ |point (t) -> pt| \\ |soddy_center () -> pt| \\ +|conway_points () -> pts| \\ |euler_line () -> L| \\ |symmedian_line (n) -> L| \\ |altitude (n) -> L| \\ @@ -401,6 +403,9 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |second_lemoine_circle() -> C| \\ |spieker_circle() -> C| \\ |soddy_circle () -> C| \\ +|conway_circle () -> C| \\ +|pedal_circle () -> C| \\ +|cevian_circle () -> C| \\ |orthic() -> T| \\ |medial() -> T| \\ |incentral() -> T| \\ @@ -414,6 +419,7 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch |cevian (pt) -> T| \\ |symmedian () -> T| \\ |euler () -> T| \\ +|pedal (pt) -> T| \\ |projection (pt) -> pt,pt,pt| \\ |parallelogram () -> pt| \\ |area () -> d| \\ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex index 13b17d6a5d8..1778a7c8fb8 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-organization.tex @@ -5,6 +5,7 @@ Here's a sample organization. The line |% !TEX TS-program = lualatex| ensures that you compile with Lua\LATEX{}. The \code{standalone} class is useful, as all you need to do here is create a figure. +You can load \tkzname{tkz-euclide} in three different ways. The simplest is |\usepackage[mini]{tkz-euclide}| and you have full access to the package. You also have the option to use the \ItkzPopt{tkz-euclide}{lua} option. This will allow you, if you want to perform calculations outside of \tkzname{\tkznameofpack}, to obtain them using \code{lua}. Finally, the recommended method is to use the \ItkzPopt{tkz-euclide}{mini} option. This allows you to load only the modules necessary for drawing. You can still optionally draw using \TIKZ. The package \pkg{ifthen} is useful if you need to use some Boolean. @@ -25,7 +26,7 @@ A third advantage is that the code can be reused. % Created by Alain Matthes on 2024-01-09. \documentclass[margin = 12pt]{standalone} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements,ifthen} \begin{document} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex index 2687f9debe3..f0689fcc74d 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-presentation.tex @@ -148,7 +148,8 @@ 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 -- 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} \end{Verbatim} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-structure.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-structure.tex index 15b167a793d..d1958d4763f 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-structure.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-structure.tex @@ -1,6 +1,6 @@ \section{Structure} % (fold) \label{sec:structure} -\tkzNamePack{tkz-elements.sty} loads the \tkzNamePack{luacode} package to create the \tkzNameEnv{tkzelements} environment, which is based on the \tkzNameEnv{luacode} environment. +\tkzNamePack{tkz-elements} loads the \tkzNamePack{luacode} package to create the \tkzNameEnv{tkzelements} environment, which is based on the \tkzNameEnv{luacode} environment. Within the \tkzNameEnv{tkzelements} environment, the scale is initialized to 1, and then all values in various tables are cleared. diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex index a66f4936045..264097e9b82 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transfers.tex @@ -2,7 +2,7 @@ \newpage \section{Transfers} % (fold) \label{sec:transfers} -\subsection{Fom Lua to tkz-euclide or TikZ} % (fold) +\subsection{From Lua to tkz-euclide or TikZ} % (fold) \label{sub:fom_lua_to_tkz_euclide_or_tikz} In this section, we'll explore how to transfer points, Booleans, and numerical values. diff --git a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex b/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex deleted file mode 100644 index 39d5940e726..00000000000 --- a/Master/texmf-dist/doc/latex/tkz-elements/TKZdoc-elements-transferts.tex +++ /dev/null @@ -1,150 +0,0 @@ - -\newpage -\section{Transfers} % (fold) -\label{sec:transfers} -\subsection{Fom Lua to tkz-euclide or TikZ} % (fold) -\label{sub:fom_lua_to_tkz_euclide_or_tikz} - -In this section, we'll look at how to transfer points, Booleans and numerical values. - -\subsubsection{Points transfer} % (fold) -\label{ssub:points_transfer} -We use an environment \tkzname{tkzelements} outside an environment \tkzname{tikzpicture} which allows us to carry out all the necessary calculations, then we launch the macro \Imacro{tkzGetNodes} which transforms the affixes of the table \tkzname{z} into \tkzname{Nodes}. It only remains to draw. - -Currently the drawing program is either \TIKZ\ or \pkg{tkz-euclide}. You have the possibility to use another package to trace but for that you have to create a macro similar to \tkzcname{tkzGetNodes}. Of course, this package must be able to store the points as does \TIKZ\ or \pkg{tkz-euclide}. - -\vspace*{1em} - -\begin{mybox} -\begin{verbatim} -\def\tkzGetNodes{\directlua{% - for K,V in pairs(z) do - local n,sd,ft - n = string.len(K) - if n >1 then - _,_,ft, sd = string.find( K , "(.+)(.)" ) - if sd == "p" then K=ft.."'" end - _,_,xft, xsd = string.find( ft , "(.+)(.)" ) - if xsd == "p" then K=xft.."'".."'" end - end - tex.print("\\coordinate ("..K..") at ("..V.re..","..V.im..") ;\\\\") -end} -} -\end{verbatim} -\end{mybox} -See the section In-depth Study \ref{sec:in_depth_study} for an explanation of the previous code. - -The environment \tkzNameEnv{tkzelements} allows to use the underscore |_| and the macro \tkzcname{tkzGetNodes} allows to obtain names of nodes containing \tkzname{prime} or \tkzname{double prime}. (see the next example) - -\begin{minipage}{0.5\textwidth} -\begin{verbatim} -\begin{tkzelements} - scale = 1.2 - z.o = point: new (0,0) - z.a_1 = point: new (2,1) - z.a_2 = point: new (1,2) - z.ap = z.a_1 + z.a_2 - z.app = z.a_1 - z.a_2 -\end{tkzelements} -\begin{tikzpicture} - \tkzGetNodes - \tkzDrawSegments(o,a_1 o,a_2 o,a' o,a'') - \tkzDrawSegments[red](a_1,a' a_2,a') - \tkzDrawSegments[blue](a_1,a'' a_2,a'') - \tkzDrawPoints(a_1,a_2,a',o,a'') - \tkzLabelPoints(o,a_1,a_2,a',a'') -\end{tikzpicture} -\end{verbatim} -\end{minipage} -\begin{minipage}{0.5\textwidth} -\begin{tkzelements} - scale = 1.2 - z.o = point: new (0,0) - z.a_1 = point: new (2,1) - z.a_2 = point: new (1,2) - z.ap = z.a_1 + z.a_2 - z.app = z.a_1 - z.a_2 -\end{tkzelements} -\hspace{\fill} -\begin{tikzpicture} - \tkzGetNodes - \tkzDrawSegments(o,a_1 o,a_2 o,a' o,a'') - \tkzDrawSegments[red](a_1,a' a_2,a') - \tkzDrawSegments[blue](a_1,a'' a_2,a'') - \tkzDrawPoints(a_1,a_2,a',o,a'') - \tkzLabelPoints(o,a_1,a_2,a',a'') -\end{tikzpicture} -\hspace{\fill} -\end{minipage}% - -\newpage -% subsection fom_lua_to_tkz_euclide_or_tikz (end) -\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{sub:transfer_from_lua_to_tex}) -\IEmacro{tkzUseLua(value)} - -\begin{verbatim} -\begin{tkzelements} - z.b = point: new (1,1) - z.a = point: new (4,2) - z.c = point: new (2,2) - z.d = point: new (5,2) - L.ab = line : new (z.a,z.b) - L.cd = line : new (z.c,z.d) - det = (z.b-z.a)^(z.d-z.c) - if det == 0 then bool = true - else bool = false - end - x = intersection (L.ab,L.cd) -\end{tkzelements} - -The intersection of the two lines lies at - a point whose affix is:\tkzUseLua{x} - -\begin{tikzpicture} - \tkzGetNodes - \tkzDrawPoints(a,...,d) - \ifthenelse{\equal{\tkzUseLua{bool}}{true}}{ - \tkzDrawSegments[red](a,b c,d)}{% - \tkzDrawSegments[blue](a,b c,d)} - \tkzLabelPoints(a,...,d) -\end{tikzpicture} -\end{verbatim} - - \begin{tkzelements} - z.b = point: new (1,1) - z.a = point: new (4,2) - z.c = point: new (2,2) - z.d = point: new (5,1) - L.ab = line : new (z.a,z.b) - L.cd = line : new (z.c,z.d) - det = (z.b-z.a)^(z.d-z.c) - if det == 0 then bool = true - else bool = false - end - x = intersection (L.ab,L.cd) - \end{tkzelements} - - The intersection of the two lines lies at - a point whose affix is: \tkzUseLua{x} - -\vspace{1em} -\hspace{\fill} -\begin{tikzpicture} - \tkzGetNodes - \tkzInit[xmin =-1,ymin=-1,xmax=6,ymax=3] - \tkzGrid\tkzAxeX\tkzAxeY - \tkzDrawPoints(a,...,d) - \ifthenelse{\equal{\tkzUseLua{bool}}{true}}{ - \tkzDrawSegments[red](a,b c,d)}{% - \tkzDrawSegments[blue](a,b c,d)} - \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 diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf index 373dc1b0bcb..6b1998eb801 100644 Binary files a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf and b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.pdf differ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex index faa0ef52bbe..15046d83a3b 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_1.tex @@ -1,7 +1,7 @@ % !TEX TS-program = lualatex % Author Alain Matthes 2023 \documentclass{article} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements} \begin{document} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf index 788e9d0f393..6ff5f444c88 100644 Binary files a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf and b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.pdf differ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex index 61a1ea5583e..2ee7b4c4d95 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_2.tex @@ -1,7 +1,7 @@ % !TEX TS-program = lualatex % Author Alain Matthes 2023 \documentclass{article} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements} \begin{document} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf index 1873fd5c853..5f1ded6e314 100644 Binary files a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf and b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.pdf differ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex index 684475e28e4..a95ae05b08a 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_3.tex @@ -1,7 +1,7 @@ % !TEX TS-program = lualatex % Author Alain Matthes 2023 \documentclass{article} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements} \begin{document} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf index 5d703157aa0..1428fd1d4fe 100644 Binary files a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf and b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.pdf differ diff --git a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex index 3242fea11a6..5dcf23e1baa 100644 --- a/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex +++ b/Master/texmf-dist/doc/latex/tkz-elements/examples/tkz-elements-demo_4.tex @@ -3,7 +3,7 @@ % Copyright (c) 2023 AlterMundus. \documentclass{standalone} -\usepackage{tkz-euclide} +\usepackage[mini]{tkz-euclide} \usepackage{tkz-elements} \begin{document} diff --git a/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf b/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf index 152e50be1e8..d42a3a109b8 100644 Binary files a/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf and b/Master/texmf-dist/doc/latex/tkz-elements/tkz-elements.pdf differ -- cgit v1.2.3