summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-02-09 03:00:53 +0000
committerNorbert Preining <norbert@preining.info>2022-02-09 03:00:53 +0000
commit8363587176bd1746ab2d65ee183b196e6d3458cf (patch)
tree64a89e6416d2b23d149b3dd918af467ae0b7441a /macros/latex/contrib/tkz
parent98810f6d7d064e61186d0ce674c4ee9de47a1f55 (diff)
CTAN sync 202202090300
Diffstat (limited to 'macros/latex/contrib/tkz')
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/README.md23
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex57
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex181
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex32
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex97
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex60
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex2
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex103
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex4
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex475
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex59
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex73
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex42
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex50
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex2
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex2
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex103
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex435
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex61
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex146
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex174
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex40
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex96
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdfbin1015168 -> 1042731 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg83
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty20
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex13
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex95
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex11
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex8
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex25
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex77
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex100
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex16
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex9
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex157
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex7
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex6
-rw-r--r--macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex15
-rw-r--r--macros/latex/contrib/tkz/tkz-fct/README.md6
-rw-r--r--macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex12
-rw-r--r--macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex2
-rw-r--r--macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdfbin728705 -> 732869 bytes
-rw-r--r--macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty10
67 files changed, 1890 insertions, 1250 deletions
diff --git a/macros/latex/contrib/tkz/tkz-euclide/README.md b/macros/latex/contrib/tkz/tkz-euclide/README.md
index cda513e6f6..ffe98b82d4 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/README.md
+++ b/macros/latex/contrib/tkz/tkz-euclide/README.md
@@ -1,6 +1,6 @@
# tkz-euclide — for euclidean geometry
-Release 4.03 b 2022/01/19
+Release 4.05 b 2022/02/07
## Description
@@ -74,6 +74,27 @@ The new version of `tkz-euclide` is *not* fully compatible with the version
## History
+- 4.05b
+ \tkzInterLC new option near new method to choice the points
+ \tkzInterCC new method to choice the points
+ \tkzDefTangent add method to choice the points
+ \tkzTestInterLC and \iftkzFlagLC
+ \tkzTestInterLC and \iftkzFlagCC
+
+ \tkzDefHarmonic option ext int both then node or R
+ \tkzDefGoldenRatio new macro
+ \tkzSwapPoints Exchange two points
+ \tkzPermute Permutation of two points of a triangle
+ \tkzDefPointsBy option rotation with nodes no need to know the angle
+ \tkzMarkArc and \tkzLabelArc
+
+ \tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp] becomes
+ \tkzDefPointOnCircle[R= angle 30 center K1 radius \rAp]
+ Added \tkzDefPointOnCircle[through= angle 30 center K1 point \rAp]
+
+ Added some styles to place arrow "tkz arrow" and "tkz arrows"
+ Added " line cap =round" and "line join =round" to all the constructions
+ Added information about angles in the documentation
- 4.03 Adaptation of the code and documentation to the changes of the macros for the intersections.
- 4.02
Major changes for the macros concerning the intersection of a line and a circle or two circles. If one point of the intersection is known then you can use the "common" option and indicate what the common point is. The second point is given in tkzFirstPointResult.
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex
index 041890614d..07b1982dc7 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-FAQ.tex
@@ -1,58 +1,33 @@
\section{FAQ}
\subsection{Most common errors}
- For the moment, I'm basing myself on my own, because having changed syntax several times, I've made a number of mistakes. This section is going to be expanded.
+ For the moment, I'm basing myself on my own, because having changed syntax several times, I've made a number of mistakes. This section is going to be expanded. With version 4.05 new problems may appear.
\begin{itemize}\setlength{\itemsep}{10pt}
- \item Error "dimension too large" : In some cases, this error occurs. One way to avoid it is to use the "\tkzname{xfp}" option. When this option is used in an environment, the "veclen" function is replaced by a function dependent on "xfp". For example, an error occurs if you use the macro \tkzcname{tkzDrawArc}
- with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present.
-
-\begin{tkzexample}[]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2.5,0){N}
- \tkzDefPoint(-4.2,0.5){M}
- \tkzDefPointBy[rotation=center O angle 30](N)
- \tkzGetPoint{B}
- \tkzDefPointBy[rotation=center O angle -50](N)
- \tkzGetPoint{A}
- \tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
- \tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
- \tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
- \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
- \tkzDrawSegments(A,C M,A M,B)
- \tkzDrawCircle(O,N)
- \tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
- \begin{scope}[xfp]
- \tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
- \end{scope}
- \tkzDrawPoints(O, A, B, M, B, C)
- \tkzLabelPoints[right](O,A,B)
- \tkzLabelPoints[above left](M,C)
- \tkzLabelPoint[below left](A'){$A'$}
-\end{tikzpicture}
-\end{tkzexample}
+ \item The mistake I make most often is to forget to put an "s" in the macro used to draw more than one object: like \tkzcname{tkzDrawSegment(s)} or \tkzcname{tkzDrawCircle(s)} ok like in this example \tkzcname{tkzDrawPoint(A,B)} when you need \tkzcname{tkzDrawPoints(A,B)};
-\item \tkzcname{tkzDrawPoint(A,B)} when you need \tkzcname{tkzDrawPoints}.
-
-\item \tkzcname{tkzGetPoint(A)} When defining an object, use braces and not brackets, so write: \tkzcname{tkzGetPoint\{A\}}.
+ \item Don't forget that since version 4 the unit is obligatorily the "cm" it is thus necessary to withdraw the unit like here \tkzcname{tkzDrawCircle[R](O,3cm)} which becomes \tkzcname{tkzDrawCircle[R](O,3)}. The traditional options of \tkzname{TikZ} keep their units example\tkzname{ below right = 12pt} on the other hand one will write \tkzname{size=1.2} to position an arc in \tkzcname{tkzMarkAngle};
+
+ \item The following error still happens to me from time to time. A point that is created has its name in brackets while a point that is used either as an option or as a parameter has its name in braces. Example \tkzcname{tkzGetPoint(A)} When defining an object, use braces and not brackets, so write: \tkzcname{tkzGetPoint\{A\}};
+
+ \item The changes in obtaining the points of intersection between lines and circles sometimes exchange the solutions, this leads either to a bad figure or to an error.
+
+ \item \tkzcname{tkzGetPoint\{A\}} in place of \tkzcname{tkzGetFirstPoint\{A\}}. When a macro gives two points as results, either we retrieve these points using \tkzcname{tkzGetPoints\{A\}\{B\}}, or we retrieve only one of the two points, using \tkzcname{tkzGetFirstPoint\{A\}} or
+ \tkzcname{tkzGetSecondPoint\{A\}}. These two points can be used with the reference \tkzname{tkzFirstPointResult} or
+ \tkzname{tkzSecondPointResult}. It is possible that a third point is given as\\ \tkzname{tkzPointResult};
-\item \tkzcname{tkzGetPoint\{A\}} in place of \tkzcname{tkzGetFirstPoint\{A\}}. When a macro gives two points as results, either we retrieve these points using \tkzcname{tkzGetPoints\{A\}\{B\}}, or we retrieve only one of the two points, using \tkzcname{tkzGetFirstPoint\{A\}} or
-\tkzcname{tkzGetSecondPoint\{A\}}. These two points can be used with the reference \tkzname{tkzFirstPointResult} or
-\tkzname{tkzSecondPointResult}. It is possible that a third point is given as\\ \tkzname{tkzPointResult}.
-
-\item \tkzcname{tkzDrawSegment(A,B A,C)} when you need \tkzcname{tkzDrawSegments}. It is possible to use only the versions with an "s" but it is less efficient!
-\item Mixing options and arguments; all macros that use a circle need to know the radius of the circle. If the radius is given by a measure then the option includes a \tkzname{R}.
+\item Mixing options and arguments; all macros that use a circle need to know the radius of the circle. If the radius is given by a measure then the option includes a \tkzname{R}.
-\item \tkzcname{tkzDrawSegments[color = gray,style=dashed]\{B,B' C,C'\}} is a mistake. Only macros that define an object use braces.
\item The angles are given in degrees, more rarely in radians.
+
\item If an error occurs in a calculation when passing parameters, then it is better to make these calculations before calling the macro.
\item Do not mix the syntax of \tkzNamePack{pgfmath} and \tkzNamePack{xfp}. I've often chosen \tkzNamePack{xfp} but if you prefer pgfmath then do your calculations before passing parameters.
-
-\item Use of \tkzcname{tkzClip}: In order to get accurate results, I avoided using normalized vectors. The advantage of normalization is to control the dimension of the manipulated objects, the disadvantage is that with TeX, this implies inaccuracies. These inaccuracies are often small, in the order of a thousandth, but they lead to disasters if the drawing is enlarged. Not normalizing implies that some points are far away from the working area and \tkzcname{tkzClip} allows you to reduce the size of the drawing.
+
+ \item Error "dimension too large" : In some cases, this error occurs. One way to avoid it is to use the "\tkzname{xfp}" option. When this option is used in an environment, the "veclen" function is replaced by a function dependent on "xfp". For example, an error occurs if you use the macro \tkzcname{tkzDrawArc}
+ with too small an angle. The error is produced by the \NameLib{decoration} library when you want to place a mark on an arc. Even if the mark is absent, the error is still present.
\end{itemize}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex
index 7a65cf6a51..d1e2e2c868 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-angles.tex
@@ -1,46 +1,100 @@
-\section{The angles}
+\section{Angles}
+\subsection{Definition and usage with \tkzname{tkz-euclide}}
+In Euclidean geometry, an angle is the figure formed by two rays, called the sides of the angle, sharing a common endpoint, called the vertex of the angle.[Wikipedia]. A ray with \tkzname{tkz-euclide} is defined by two points also each angle is defined with three points like $\widehat{AOB}$. The vertex $O$ is the second point. Their order is important because it is assumed that the angle is specified in the direct order (counterclockwise).
+In trigonometry and mathematics in general, plane angles are conventionally measured counterclockwise, starting with $0^\circ$ pointing directly to the right (or east), and $90^\circ$ pointing straight up (or north)[Wikipedia].
+Let us agree that an angle measured counterclockwise is positive.
+
+ \begin{center}
+
+ \begin{tikzpicture}[scale=.75]
+ \node {clockwise};
+ \tkzDefPoint(0,0){O} \tkzDefPoint(90:2){A}\tkzDefPoint(180:2){B}
+ \tkzDrawArc[black,line width=2pt,arrows = {Stealth-}](O,B)(A)
+ \end{tikzpicture}
+ \begin{tikzpicture}[scale=.75]
+ \node {counterclockwise};
+ \tkzDefPoint(0,0){O} \tkzDefPoint(90:2){A}\tkzDefPoint(0:2){B}
+ \tkzDrawArc[black,line width=2pt,arrows = {-Stealth}](O,A)(B)
+ \end{tikzpicture}
+
+ \end{center}
+
+ \tkzname{Angles} are involved in several macros like \tkzcname{tkzDefPoint},\tkzcname{tkzDefPointBy[rotation = \dots]}, \tkzcname{tkzDrawArc}
+ and the next one \tkzcname{tkzGetAngle}. With the exception of the last one, all these macros accept negative angles.
+
+ \begin{figure}[!h]
+ \centering
+ \begin{tabular}{|c|c|}
+ \hline
+ \tkzsubf{\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A}
+ \tkzDefPointBy[rotation=center O angle 80](A) \tkzGetPoint{B}
+ \tkzDrawSegments[-{Stealth}](O,A O,B)
+ \tkzMarkAngles[size=2,-Stealth,teal](A,O,B)
+ \tkzFindAngle(A,O,B) \tkzGetAngle{an}
+ \tkzLabelAngle[pos=1,teal](A,O,B){$ \pgfmathprintnumber{\an}^\circ$}
+ \tkzAutoLabelPoints[center=O](A,B)
+ \end{tikzpicture}}
+ {Rotation $80^\circ$ from $(O,A)$ to $(O,B)$\\
+ {\textbackslash}tkzDefPointBy[rotation=center O angle 80]}
+ &
+ \tkzsubf{\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A}
+ \tkzDefPointBy[rotation=center O angle -80](A) \tkzGetPoint{B}
+ \tkzDrawSegments[-{Stealth}](O,A O,B)
+ \tkzMarkAngles[size=2,Stealth-,red](B,O,A)
+ \tkzFindAngle(B,O,A) \tkzGetAngle{an}
+ \tkzLabelAngle[pos=1,red](B,O,A){$-\pgfmathprintnumber{\an}^\circ$}
+ \tkzAutoLabelPoints[center=O](A,B)
+ \end{tikzpicture}}
+ {Rotation $-80^\circ$ from $(O,A)$ to $(O,B)$\\
+ {\textbackslash}tkzDefPointBy[rotation=center O angle -80]}
+ \\ \hline
+ \tkzsubf{\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A}
+ \tkzDefPointBy[rotation=center O angle 80](A) \tkzGetPoint{B}
+ \tkzDrawSegments[-{Stealth}](O,A O,B)
+ \tkzMarkAngles[size=1.5,-Stealth,teal](A,O,B)
+ \tkzFindAngle(A,O,B) \tkzGetAngle{an}
+ \tkzLabelAngle[pos=1,teal](A,O,B){$ \pgfmathprintnumber{\an}^\circ$}
+ \tkzAutoLabelPoints[center=O](A,B)
+ \end{tikzpicture}}
+ { {\textbackslash}tkzFindAngle(A,O,B) gives $80$}
+ &
+ \tkzsubf{\begin{tikzpicture}
+ \tkzDefPoint(0,0){O} \tkzDefPoint(0:2){A}
+ \tkzDefPointBy[rotation=center O angle -80](A) \tkzGetPoint{B}
+ \tkzDrawSegments[-{Stealth}](O,A O,B)
+ \tkzMarkAngles[size=1,-Stealth,red](A,O,B)
+ \tkzFindAngle(A,O,B) \tkzGetAngle{an}
+ \tkzLabelAngle[pos=.75,red](A,O,B){$\pgfmathprintnumber{\an}^\circ$}
+ \tkzAutoLabelPoints[center=O](A,B)
+ \end{tikzpicture}}
+ {{\textbackslash}tkzFindAngle(A,O,B) gives $\pgfmathprintnumber{\an}^\circ$}
+ \\\hline
+ \end{tabular}
+ \end{figure}
+
+As we can see, the $-80^\circ$ rotation defines a clockwise angle but the macro
+\tkzcname{tkzFindAngle} recovers a counterclockwise angle.
-%\section{Angles tools}
\subsection{Recovering an angle \tkzcname{tkzGetAngle}}
\begin{NewMacroBox}{tkzGetAngle}{\parg{name of macro}}%
-Assigns the value in degree of an angle to a macro. This macro retrieves \tkzcname{tkzAngleResult} and stores the result in a new macro.
+Assigns the value in degree of an angle to a macro. The value is positive and between $0^\circ$ and $360^\circ$. This macro retrieves \tkzcname{tkzAngleResult} and stores the result in a new macro.
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{name of macro} {\tkzcname{tkzGetAngle}\{ang\}}{\tkzcname{ang} contains the value of the angle.}
\end{tabular}
-\end{NewMacroBox}
-
-\subsection{Example of the use of \tkzcname{tkzGetAngle}}
-
- The point here is that $(AB)$ is the bisector of $\widehat{CAD}$, such that the $AD$ slope is zero. We recover the slope of $(AB)$ and then rotate twice.
-
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
- \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}
- \tkzDrawSegment(A,B)
- \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
- \tkzDefPointBy[rotation= center A angle \tkzang ](B)
- \tkzGetPoint{C}
- \tkzDefPointBy[rotation= center A angle -\tkzang ](B)
- \tkzGetPoint{D}
- \tkzCompass[length=1](A,C)
- \tkzCompass[delta=10,brown](B,C)
- \tkzDrawPoints(A,B,C,D)
- \tkzLabelPoints(B,C,D)
- \tkzLabelPoints[above left](A)
- \tkzDrawSegments[style=dashed,color=orange!30](A,C A,D)
-\end{tikzpicture}
-\end{tkzexample}
-
+\end{NewMacroBox}
+This is an auxiliary macro that allows you to retrieve the result of the following macro \tkzcname{tkzFindAngle}.
\subsection{Angle formed by three points}
@@ -51,14 +105,14 @@ The result is stored in a macro \tkzcname{tkzAngleResult}.
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{(pt1,pt2,pt3)} {\tkzcname{tkzFindAngle}(A,B,C)}{\tkzcname{tkzAngleResult} gives the angle ($\overrightarrow{BA},\overrightarrow{BC}$)}
\bottomrule
\end{tabular}
\medskip
-The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tkzcname{tkzGetAngle} can retrieve the angle.
+The measure is always positive and between $0^\circ$ and $360^\circ$. With the usual conventions, a counterclockwise angle smaller than a straight angle has always a measure between $0^\circ$ and $180^\circ$, while a clockwise angle smaller than a straight angle will have a measurement greater than $180^\circ$. \tkzcname{tkzGetAngle} can retrieve the angle.
\end{NewMacroBox}
\subsubsection{Verification of angle measurement}
@@ -70,8 +124,7 @@ The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tk
\tkzDefEquilateral(A,B)
\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
- \tkzFindAngle(B,A,C)
- \tkzGetAngle{angleBAC}
+ \tkzFindAngle(B,A,C) \tkzGetAngle{angleBAC}
\edef\angleBAC{\fpeval{round(\angleBAC)}}
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B)
@@ -83,49 +136,46 @@ The result is between -180 degrees and +180 degrees. $pt2$ is the vertex and \tk
\subsubsection{Determination of the three angles of a triangle}
-\begin{tkzexample}[latex=7cm,small]
+\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}
+\tikzset{label angle style/.append style={pos=1.4}}
\tkzDefPoints{0/0/a,5/3/b,3/6/c}
\tkzDrawPolygon(a,b,c)
-\tkzFindAngle(c,b,a)
-\tkzGetAngle{angleCBA}
+\tkzFindAngle(c,b,a)\tkzGetAngle{angleCBA}
\pgfmathparse{round(1+\angleCBA)}
\let\angleCBA\pgfmathresult
-\tkzFindAngle(a,c,b)
-\tkzGetAngle{angleACB}
+\tkzFindAngle(a,c,b)\tkzGetAngle{angleACB}
\pgfmathparse{round(\angleACB)}
\let\angleACB\pgfmathresult
-\tkzFindAngle(b,a,c)
-\tkzGetAngle{angleBAC}
+\tkzFindAngle(b,a,c)\tkzGetAngle{angleBAC}
\pgfmathparse{round(\angleBAC)}
\let\angleBAC\pgfmathresult
\tkzMarkAngle(c,b,a)
-\tkzLabelAngle[pos=1.4](c,b,a)%
- {\tiny $\angleCBA^\circ$}
+\tkzLabelAngle(c,b,a){\tiny $\angleCBA^\circ$}
\tkzMarkAngle(a,c,b)
-\tkzLabelAngle[pos=1.4](a,c,b)%
- {\tiny $\angleACB^\circ$}
+\tkzLabelAngle(a,c,b){\tiny $\angleACB^\circ$}
\tkzMarkAngle(b,a,c)
-\tkzLabelAngle[pos=1.4](b,a,c)%
- {\tiny $\angleBAC^\circ$}
+\tkzLabelAngle(b,a,c){\tiny $\angleBAC^\circ$}
\end{tikzpicture}
\end{tkzexample}
+
\subsubsection{Angle between two circles}
+We are looking for the angle formed by the tangents at a point of intersection
-\begin{tkzexample}[vbox,small]
+\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.4]
-\pgfkeys{/pgf/number format/.cd,fixed,precision=1}
+\pgfkeys{/pgf/number format/.cd,%
+ fixed,precision=1}
\tkzDefPoints{0/0/A,6/0/B,4/2/C}
\tkzDrawCircles(A,C B,C)
\tkzDefTangent[at=C](A) \tkzGetPoint{a}
\tkzDefPointsBy[symmetry = center C](a){d}
\tkzDefTangent[at=C](B) \tkzGetPoint{b}
\tkzDrawLines[add=1 and 4](a,C C,b)
-\tkzDrawSegments(A,C B,C)
+\tkzFillAngle[fill=teal,opacity=.2%
+ ,size=2](b,C,d)
\tkzFindAngle(b,C,d)\tkzGetAngle{bcd}
-\tkzMarkAngle[size=3,arc=ll,mark=s](b,C,d)
-\tkzFillAngle[fill=teal,opacity=.2,size=2](b,C,d)
\tkzLabelAngle[pos=1.25](b,C,d){%
\tiny $\pgfmathprintnumber{\bcd}^\circ$}
\end{tikzpicture}
@@ -141,7 +191,7 @@ Determines the slope of the straight line (AB). The result is stored in a macro
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{(pt1,pt2)} {\tkzcname{tkzFindSlopeAngle}(A,B)}{}
\bottomrule
@@ -151,6 +201,27 @@ arguments & example & explication \\
\tkzcname{tkzGetAngle} can retrieve the result. If retrieval is not necessary, you can use \tkzcname{tkzAngleResult}.
\end{NewMacroBox}
+\subsubsection{How to use \tkzcname{tkzFindSlopeAngle}}
+
+ The point here is that $(AB)$ is the bisector of $\widehat{CAD}$, such that the $AD$ slope is zero. We recover the slope of $(AB)$ and then rotate twice.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}
+ \tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
+ \tkzDefPointBy[rotation= center A angle \tkzang ](B)
+ \tkzGetPoint{C}
+ \tkzDefPointBy[rotation= center A angle -\tkzang ](B)
+ \tkzGetPoint{D}
+ \tkzDrawSegment(A,B)
+ \tkzDrawSegments[new](A,C A,D)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzCompass[length=1](A,C)
+ \tkzCompass[delta=10,brown](B,C)
+ \tkzLabelPoints(B,C,D)
+ \tkzLabelPoints[above left](A)
+\end{tikzpicture}
+\end{tkzexample}
\subsubsection{Use of \tkzcname{tkzFindSlopeAngle} and \tkzcname{tkzGetAngle}}
Here is another version of the construction of a mediator
@@ -187,11 +258,11 @@ Here is another version of the construction of a mediator
\tkzFindSlopeAngle(A,D)\tkzGetAngle{SAD}
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\tkzText(1,5){The slope of (AB) is :
- $\pgfmathprintnumber{\SAB}$}
+ $\pgfmathprintnumber{\SAB}^\circ$}
\tkzText(1,4.5){The slope of (AC) is :
- $\pgfmathprintnumber{\SAC}$}
+ $\pgfmathprintnumber{\SAC}^\circ$}
\tkzText(1,4){The slope of (AD) is :
- $\pgfmathprintnumber{\SAD}$}
+ $\pgfmathprintnumber{\SAD}^\circ$}
\end{tikzpicture}
\end{tkzexample}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex
index fac856d457..4df2f61333 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circleby.tex
@@ -1,4 +1,4 @@
-\section{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} }
+\subsection{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} }
These transformations are:
\begin{itemize}
@@ -50,7 +50,7 @@ options & & examples \\
The image is only defined and not drawn.
\end{NewMacroBox}
-\subsection{Examples of transformations}
+\subsubsection{Examples of transformations}
\subsubsection{\tkzname{Translation}}
\begin{tkzexample}[latex=7cm,small]
@@ -60,9 +60,10 @@ The image is only defined and not drawn.
\tkzDefCircleBy[translation= from B to A](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](A,B,C,D,C',D')
- \tkzLabelPoints[color=teal](A,B,C,D,C',D')
\tkzDrawSegments[orange,->](A,B)
\tkzDrawCircles(C,D C',D')
+ \tkzLabelPoints[color=teal](A,B,C,C')
+ \tkzLabelPoints[color=teal,above](D,D')
\end{tikzpicture}
\end{tkzexample}
@@ -75,9 +76,10 @@ The image is only defined and not drawn.
\tkzDefCircleBy[reflection = over A--B](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](A,B,C,D,C',D')
- \tkzLabelPoints[color=teal](A,B,C,D,C',D')
\tkzDrawLine[add =0 and 1][orange](A,B)
\tkzDrawCircles(C,D C',D')
+ \tkzLabelPoints[color=teal](A,B,C,C')
+ \tkzLabelPoints[color=teal,above](D,D')
\end{tikzpicture}
\end{tkzexample}
@@ -91,8 +93,9 @@ The image is only defined and not drawn.
\tkzDefCircleBy[homothety=center A ratio .5](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](A,C,D,C',D')
- \tkzLabelPoints[color=teal](A,C,D,C',D')
\tkzDrawCircles(C,D C',D')
+ \tkzLabelPoints[color=teal](A,C,C')
+ \tkzLabelPoints[color=teal,above](D,D')
\end{tikzpicture}
\end{tkzexample}
@@ -105,18 +108,20 @@ The image is only defined and not drawn.
\tkzDefCircleBy[symmetry=center B](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](B,C,D,C',D')
- \tkzLabelPoints[color=teal](B,C,D,C',D')
\tkzDrawLines[orange](C,C' D,D')
\tkzDrawCircles(C,D C',D')
+ \tkzLabelPoints[color=teal](A,C,C')
+ \tkzLabelPoints[color=teal,above](D)
+ \tkzLabelPoints[color=teal,below](D')
\end{tikzpicture}
\end{tkzexample}
\subsubsection{\tkzname{Rotation}}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=0.5]
- \tkzDefPoint(0,0){A} \tkzDefPoint(3,-1){B}
+ \tkzDefPoint(3,-1){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
- \tkzDefCircleBy[rotation=center B angle 60](C,D)
+ \tkzDefCircleBy[rotation=center B angle 90](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](B,C,D,C',D')
\tkzLabelPoints[color=teal](B,C,D,C',D')
@@ -126,7 +131,7 @@ The image is only defined and not drawn.
\subsubsection{\tkzname{Orthogonal from}}
-Orthogonal circle of given center. \tkzcname{tkzGetPoints{z1}{z2}} gives two points of the circle.
+Orthogonal circle of given center. \tkzcname{tkzGetPoints\{z1\}\{z2\}} gives two points of the circle.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.75]
@@ -147,19 +152,18 @@ Orthogonal circle of given center. \tkzcname{tkzGetPoints{z1}{z2}} gives two poi
\subsubsection{\tkzname{Orthogonal from} : Right angle between circles}
We are looking for a circle orthogonal to the given circle.
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.5]
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.4]
\tkzDefPoints{0/0/A,6/0/B,4/2/D}
\tkzDefCircleBy[orthogonal from=B](A,D)
-\tkzGetFirstPoint{C}
+\tkzGetSecondPoint{C}
\tkzDrawCircles(A,C B,C)
\tkzDefTangent[at=C](A) \tkzGetPoint{a}
\tkzDefPointsBy[symmetry = center C](a){d}
\tkzDefTangent[at=C](B) \tkzGetPoint{b}
\tkzDrawLines[add=1 and 4](a,C C,b)
\tkzDrawSegments(A,C B,C)
-\tkzMarkAngle[size=2.5](b,C,d)
-\tkzFillAngle[fill=teal,opacity=.2,size=3](b,C,d)
+\tkzMarkRightAngle[fill=teal,opacity=.2,size=1](b,C,d)
\end{tikzpicture}
\end{tkzexample}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
index f0cdae595e..e0d1ccd6fe 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-circles.tex
@@ -1,6 +1,6 @@
-\section{The Circles}
+\section{Circles}
-Among the following macros, one will allow you to draw a circle, which is not a real feat. To do this, you will need to know the center of the circle and either the radius of the circle or a point on the circumference. It seemed to me that the most frequent use was to draw a circle with a given centre passing through a given point. This will be the default method, otherwise you will have to use the \tkzname{R} option. There are a large number of special circles, for example the circle circumscribed by a triangle.
+Among the following macros, one will allow you to draw a circle, which is not a real feat. To do this, you will need to know the center of the circle and either the radius of the circle or a point on the circumference. It seemed to me that the most frequent use was to draw a circle with a given center passing through a given point. This will be the default method, otherwise you will have to use the \tkzname{R} option. There are a large number of special circles, for example the circle circumscribed by a triangle.
\begin{itemize}
\item I have created a first macro \tkzcname{tkzDefCircle} which allows, according to a particular circle, to retrieve its center and the measurement of the radius in cm. This recovery is done with the macros \tkzcname{tkzGetPoint} and \tkzcname{tkzGetLength};
@@ -25,7 +25,7 @@ This macro allows you to retrieve the characteristics (center and radius) of cer
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2} or \parg{pt1,pt2,pt3}}{\parg{A,B}} {$[AB]$ is radius $A$ is the center}
\bottomrule
@@ -85,7 +85,7 @@ options & default & definition \\
\tkzDrawCircle(O,B)
\tkzDrawSegment(A,B)
\tkzDrawPoints(A,B,O)
- \tkzLabelPoints(A,B,O)
+ \tkzLabelPoints[below](A,B,O)
\end{tikzpicture}
\end{tkzexample}
@@ -139,6 +139,8 @@ We want to define an excircle of a triangle relatively to point $C$
\tkzLabelPoints[left](F)
\end{tikzpicture}
\end{tkzexample}
+
+
\subsubsection{Euler's circle for a given triangle with option \tkzname{euler}}
@@ -328,4 +330,91 @@ The incircle of the medial triangle $M_aM_bM_c$ is the Spieker circle:
\tkzLabelLine[pos=0.5,left](X,y){R}
\end{tikzpicture}
\end{tkzexample}
+
+\subsection{Projection of excenters}
+
+\begin{NewMacroBox}{tkzDefProjExcenter}{\oarg{local options}\parg{A,B,C}\parg{a,b,c}\marg{X,Y,Z}}%
+Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro\\ \tkzcname{tkzDefProjExcenter[name=J](A,B,C)(a,b,c)\{Y,Z,X\}}.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+options & default & definition \\
+\midrule
+\TOline{name} {no defaut}{used to name the vertices}
+\bottomrule
+\end{tabular}
+
+\begin{tabular}{lll}%
+arguments & default & definition \\
+\midrule
+\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight}
+\end{tabular}
+
+\medskip
+\end{NewMacroBox}
+
+\subsubsection{Excircles}
+
+\begin{tikzpicture}[scale=.6]
+\tikzset{line style/.append style={line width=.2pt}}
+\tikzset{label style/.append style={color=teal,font=\footnotesize}}
+\tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
+\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
+\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
+\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
+
+\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T}
+\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
+\tkzDrawCircle(I,T)
+\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
+\tkzDrawLines[add=1.5 and 1.5](A,C A,B B,C)
+\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
+ Jb,Xb Jb,Yb Jb,Zb
+ Jc,Xc Jc,Yc Jc,Zc
+ I,Ia I,Ib I,Ic)
+\tkzMarkRightAngles[size=.2,fill=gray!15](Ja,Za,B Ja,Xa,B Ja,Ya,C Jb,Yb,C Jb,Zb,B Jb,Xb,C Jc,Yc,A Jc,Zc,B Jc,Xc,C I,Ia,B I,Ib,C I,Ic,A)
+\tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
+\tkzLabelPoints(A,Yc,Ya,Yb,Ja,I,Zc)
+\tkzLabelPoints[left](Jb,Ib)
+\tkzLabelPoints[below](Zb,Ic,Jc,B,Za)
+\tkzLabelPoints[above right](C)
+\tkzLabelPoints[right](Xb,Ia,Xa,Xc)
+\end{tikzpicture}
+
+\begin{tkzexample}[code only,small]
+\begin{tikzpicture}[scale=.6]
+\tikzset{line style/.append style={line width=.2pt}}
+\tikzset{label style/.append style={color=teal,font=\footnotesize}}
+\tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
+\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
+\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
+\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
+
+\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T}
+\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
+\tkzDrawCircle(I,T)
+\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
+\tkzDrawLines[add=1.5 and 1.5](A,C A,B B,C)
+\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
+ Jb,Xb Jb,Yb Jb,Zb
+ Jc,Xc Jc,Yc Jc,Zc
+ I,Ia I,Ib I,Ic)
+\tkzMarkRightAngles[size=.2,fill=gray!15](%
+ Ja,Za,B Ja,Xa,B
+ Ja,Ya,C Jb,Yb,C
+ Jb,Zb,B Jb,Xb,C
+ Jc,Yc,A Jc,Zc,B
+ Jc,Xc,C I,Ia,B
+ I,Ib,C I,Ic,A)
+\tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
+\tkzLabelPoints(A,Yc,Ya,Yb,Ja,I,Zc)
+\tkzLabelPoints[left](Jb,Ib)
+\tkzLabelPoints[below](Zb,Ic,Jc,B,Za)
+\tkzLabelPoints[above right](C)
+\tkzLabelPoints[right](Xb,Ia,Xa,Xc)
+\end{tikzpicture}
+\end{tkzexample}
+
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex
index e7e96e461c..342e0024ab 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-clipping.tex
@@ -157,7 +157,7 @@ This macro makes it possible to contain the different plots in the designated po
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2,pt3,\dots}}{\parg{A,B,C}}{}
\midrule
@@ -233,7 +233,7 @@ options & default & definition \\
\begin{NewMacroBox}{tkzClipCircle}{\oarg{local options}\parg{A,B} or \parg{A,r}}%
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{A,B} or \parg{A,r}}{\parg{A,B} or \parg{A,2cm}} {AB radius or diameter }
\bottomrule
@@ -309,7 +309,7 @@ see a more complex example about clipping here : \ref{About clipping circles}
\begin{tabular}{lll}%
options & default & definition \\
\midrule
-\TOline{towards}{towards}{$O$ is the centre and the sector starts from $A$ to $(OB)$}
+\TOline{towards}{towards}{$O$ is the center and the sector starts from $A$ to $(OB)$}
\TOline{rotate} {towards}{The sector starts from $A$ and the angle determines its amplitude. }
\TOline{R}{towards}{We give the radius and two angles}
\bottomrule
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex
index 08fd38950e..4740226622 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-compass.tex
@@ -11,8 +11,8 @@ You can define the length of the arc with the option |length| or the option |del
\toprule
options & default & definition \\
\midrule
-\TOline{delta} {0 (deg)}{Modifies the angle of the arc by increasing it symmetrically (in degrees)}
-\TOline{length}{1 (cm)}{Changes the length (in cm)}
+\TOline{delta} {0 (deg)}{Increases the angle of the arc symmetrically}
+\TOline{length}{1 (cm)}{Changes the length (in cm)}
\end{tabular}
\end{NewMacroBox}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex
index 181285901c..8f8b72d95f 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-drawing.tex
@@ -183,20 +183,6 @@ Arguments are a list of pairs of points separated by spaces. The styles of \TI
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Example with the option \tkzname{add}}
-\begin{tkzexample}[latex=8cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(3,1){I}
- \tkzDefPoint(1,4){J}
- \tkzDefLine[bisector](I,O,J)
- \tkzGetPoint{i}
- \tkzDefLine[bisector out](I,O,J)
- \tkzGetPoint{j}
- \tkzDrawLines[add = 1 and .5](O,I O,J)
- \tkzDrawLines[add = 1 and .5,new](O,i O,j)
-\end{tikzpicture}
-\end{tkzexample}
%<---------------------------------------------------------------------------->
% SEGMENT(S)
%<---------------------------------------------------------------------------->
@@ -402,7 +388,7 @@ Just give a list of points and the macro plots the polygon using the \TIKZ\ opti
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolygon[gray,dashed](A,B,C)|}{Drawing a triangle}
\end{tabular}
@@ -432,6 +418,7 @@ options & default & example \\
\tkzDefPoint(0,0){A}
\tkzDefPoint(6,0){B}
\tkzDefTriangle[two angles = 50 and 70](A,B) \tkzGetPoint{C}
+\tkzDrawPolygon(A,B,C)
\tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$}
\tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$}
\end{tikzpicture}
@@ -461,7 +448,7 @@ Just give a list of points and the macro plots the polygonal chain using the \TI
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolySeg[gray,dashed](A,B,C)|}{Drawing a triangle}
\end{tabular}
@@ -528,10 +515,9 @@ A Sangaku look! It is a question of proving that one can inscribe in a half-disc
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\parg{A,B}} {two points to define a radius or a diameter}
-\bottomrule
\end{tabular}
\medskip
@@ -556,13 +542,13 @@ Of course, you have to add all the styles of \TIKZ\ for the tracings...
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
- % circle with centre O and passing through A
+ % circle with center O and passing through A
\tkzDrawCircle(O,A)
% diameter circle $[OA]$
\tkzDrawCircle[diameter,new,%
line width=.4pt,fill=orange!10,%
opacity=.5](O,A)
- % circle with centre O and radius = exp(1) cm
+ % circle with center O and radius = exp(1) cm
\edef\rayon{\fpeval{0.25*exp(1)}}
\tkzDrawCircle[R,color=orange](O,\rayon)
\end{tikzpicture}
@@ -575,7 +561,7 @@ Of course, you have to add all the styles of \TIKZ\ for the tracings...
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points}
\bottomrule
@@ -660,9 +646,9 @@ Based on an idea by O. Reboux made with pst-eucl (Pstricks module) by D. Rodrigu
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
-\TAline{\parg{pt1,pt2}}{\parg{O,A} or\parg{A,B}} {radius or diameter}
+\TAline{\parg{pt1,pt2}}{\parg{O,A} or \parg{A,B}} {radius or diameter}
\bottomrule
\end{tabular}
@@ -706,7 +692,7 @@ options & default & definition \\
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2 pt3,pt4 ...}}{\parg{A,B C,D}} {List of two points}
\bottomrule
@@ -942,14 +928,14 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
+ \tkzDefPoint(-30:1){A}
\tkzDefPointBy[rotation = center O angle -60](A)
- \tkzDrawSector(O,A)(tkzPointResult)
+ \tkzDrawSector[teal](O,A)(tkzPointResult)
\begin{scope}[shift={(-60:1)}]
\tkzDefPoint(0,0){O}
- \tkzDefPoint(-30:3){A}
+ \tkzDefPoint(-30:1){A}
\tkzDefPointBy[rotation = center O angle -60](A)
- \tkzDrawSector(O,tkzPointResult)(A)
+ \tkzDrawSector[red](O,tkzPointResult)(A)
\end{scope}
\end{tikzpicture}
\end{tkzexample}
@@ -957,10 +943,9 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio
\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{rotate}}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){O}
- \tkzDefPoint(2,2){A}
- \tkzDrawSector[rotate,draw=orange!50!black](O,A)(30)
- \tkzDrawSector[rotate,draw=teal!50!black](O,A)(-30)
+ \tkzDefPoints{0/0/O,2/2/A,2/1/B}
+ \tkzDrawSector[rotate,orange](O,A)(20)
+ \tkzDrawSector[rotate,teal](O,B)(-20)
\end{tikzpicture}
\end{tkzexample}
@@ -969,14 +954,15 @@ There's no need to put \tkzname{towards}. You can use \tkzname{fill} as an optio
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
- \tkzDrawSector[R](O,2)(30,90)
- \tkzDrawSector[R](O,2)(90,180)
- \tkzDrawSector[R](O,2)(180,270)
- \tkzDrawSector[R](O,2)(270,360)
+ \tkzDrawSector[R](O,1)(30,90)
+ \tkzDrawSector[R](O,1)(90,180)
+ \tkzDrawSector[R](O,1)(180,270)
+ \tkzDrawSector[R](O,1)(270,360)
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R}}
+\subsubsection{\tkzcname{tkzDrawSector} and \tkzname{R with nodes}}
+In this example I use the option \tkzname{fill} but \tkzcname{tkzFillSector} is possible.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){O}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex
index c2ab8f9bf2..ba1dbc6e07 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-elements.tex
@@ -13,7 +13,7 @@ To get new points you will use macros. \tkzname{\tkznameofpack} macros have a na
|\tkzDef...| |\tkzDraw...| |\tkzMark...| and |\tkzLabel...|.
The used points are passed as parameters between parentheses while the created points are between braces.
-Le code des figures est placés dans un environnement \tkzimp{tikzpicture}
+The code of the figures is placed in an environment \tkzimp{tikzpicture}
\begin{tkzltxexample}[]
\begin{tikzpicture}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex
index 60ecb19965..2447e1f842 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-examples.tex
@@ -381,7 +381,7 @@ The three altitudes of a triangle intersect at the same H-point.
\tkzInterLC(A,C)(I,B)
\tkzGetFirstPoint{B'}
\tkzInterLC(A,B)(I,B)
- \tkzGetFirstPoint{C'}
+ \tkzGetSecondPoint{C'}
\tkzInterLL(B,B')(C,C') \tkzGetPoint{H}
\tkzInterLL(A,H)(C,B) \tkzGetPoint{A'}
\tkzDefCircle[circum](A,B',C') \tkzGetPoint{O}
@@ -406,7 +406,7 @@ The three altitudes of a triangle intersect at the same H-point.
\tkzInterLC[common=A](C,A)(O,A)
\tkzGetFirstPoint{M}
\tkzInterLC(C,B)(O,A)
-\tkzGetFirstPoint{N}
+\tkzGetSecondPoint{N}
\tkzInterLL(B,M)(A,N)\tkzGetPoint{I}
\tkzDrawCircles[diameter](A,B I,C)
\tkzDrawSegments(C,A C,B A,B B,M A,N)
@@ -909,10 +909,10 @@ Another solution
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
-\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3)
+\tkzDrawCircles[R](A,1 B,3)
\tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
\tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'}
-\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
\tkzGetPoint{C}
\tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E}
@@ -921,7 +921,7 @@ Another solution
\tkzDrawCircle[orange](I,D)
\tkzInterLC(X,H)(I,D) \tkzGetPoints{M}{M'}
\tkzInterLC(M,D)(A,D) \tkzGetPoints{P}{P'}
-\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'}
+\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q'}{Q}
\tkzInterLL(P,Q)(A,B) \tkzGetPoint{O}
\tkzDrawSegments[orange](A,P I,M B,Q)
\tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H)
@@ -933,10 +933,10 @@ Another solution
\begin{tkzexample}[code only,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
-\tkzDrawCircle[R](A,1)\tkzDrawCircle[R](B,3)
+\tkzDrawCircles[R](A,1 B,3)
\tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
\tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'}
-\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
+\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
\tkzGetPoint{C}
\tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E}
@@ -945,7 +945,7 @@ Another solution
\tkzDrawCircle[orange](I,D)
\tkzInterLC(X,H)(I,D) \tkzGetPoints{M}{M'}
\tkzInterLC(M,D)(A,D) \tkzGetPoints{P}{P'}
-\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q}{Q'}
+\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q'}{Q}
\tkzInterLL(P,Q)(A,B) \tkzGetPoint{O}
\tkzDrawSegments[orange](A,P I,M B,Q)
\tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H)
@@ -955,6 +955,56 @@ Another solution
\end{tikzpicture}
\end{tkzexample}
+\newpage
+\subsection{Middle of a segment with a compass}
+
+\begin{tikzpicture}
+\node [mybox,title={Tangent lines to two circles with radical axis}] (box){%
+\begin{minipage}{0.90\textwidth}
+ {\emph{This example involves determining the middle of a segment, using only a compass.}}
+\end{minipage}
+};
+\end{tikzpicture}%
+
+ \begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefRandPointOn[circle= center A radius 4] \tkzGetPoint{B}
+ \tkzDefPointBy[rotation= center A angle 180](B) \tkzGetPoint{C}
+ \tkzInterCC(A,B)(B,A) \tkzGetPoints{I}{I'}
+ \tkzInterCC(A,I)(I,A) \tkzGetPoints{J}{B}
+ \tkzInterCC(B,A)(C,B) \tkzGetPoints{D}{E}
+ \tkzInterCC(D,B)(E,B) \tkzGetPoints{M}{M'}
+ \tkzSetUpArc[color=orange,style=solid,delta=10]
+ \tkzDrawArc(C,D)(E)
+ \tkzDrawArc(B,E)(D)
+ \tkzDrawCircle[color=teal,line width=.2pt](A,B)
+ \tkzDrawArc(D,B)(M)
+ \tkzDrawArc(E,M)(B)
+ \tkzCompasss[color=orange,style=solid](B,I I,J J,C)
+ \tkzDrawPoints(A,B,C,D,E,M)
+ \tkzLabelPoints(A,B,M)
+ \end{tikzpicture}
+
+ \begin{tkzexample}[code only,small]
+ \begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefRandPointOn[circle= center A radius 4] \tkzGetPoint{B}
+ \tkzDefPointBy[rotation= center A angle 180](B) \tkzGetPoint{C}
+ \tkzInterCC(A,B)(B,A) \tkzGetPoints{I}{I'}
+ \tkzInterCC(A,I)(I,A) \tkzGetPoints{J}{B}
+ \tkzInterCC(B,A)(C,B) \tkzGetPoints{D}{E}
+ \tkzInterCC(D,B)(E,B) \tkzGetPoints{M}{M'}
+ \tkzSetUpArc[color=orange,style=solid,delta=10]
+ \tkzDrawArc(C,D)(E)
+ \tkzDrawArc(B,E)(D)
+ \tkzDrawCircle[color=teal,line width=.2pt](A,B)
+ \tkzDrawArc(D,B)(M)
+ \tkzDrawArc(E,M)(B)
+ \tkzCompasss[color=orange,style=solid](B,I I,J J,C)
+ \tkzDrawPoints(A,B,C,D,E,M)
+ \tkzLabelPoints(A,B,M)
+ \end{tikzpicture}
+ \end{tkzexample}
\newpage
@@ -992,12 +1042,12 @@ With \pkg{tkz-euclide} is easy to show you the last definition
% with K=2 we search some points like I such as IA=2 x IB
\tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1}
\tkzGetLength{rAp}
-\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp]
+\tkzDefPointOnCircle[R= angle 30 center K1 radius \rAp]
\tkzGetPoint{I}
-\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp]
+\tkzDefPointOnCircle[R= angle 280 center K1 radius \rAp]
\tkzGetPoint{J}
\tkzDrawSegments[new](A,I I,B A,J J,B)
-\tkzDrawCircle[R,color = teal,fill=MidnightBlue!20,opacity=.4](K1,\rAp pt)
+\tkzDrawCircle[R,color = teal,fill=teal!20,opacity=.4](K1,\rAp pt)
\tkzDrawPoints(A,B,K1,I,J)
\tkzDrawSegment(A,B)
\tkzLabelPoints[below,font=\scriptsize](A,B,K1,I,J)
@@ -1012,9 +1062,9 @@ With \pkg{tkz-euclide} is easy to show you the last definition
\tkzDefPoint(4,0){B}
\tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoint{K1}
\tkzGetLength{rAp}
-\tkzDefPointOnCircle[angle=30,center=K1,radius=\rAp]
+\tkzDefPointOnCircle[R = angle 30 center K1 radius \rAp]
\tkzGetPoint{I}
-\tkzDefPointOnCircle[angle=280,center=K1,radius=\rAp]
+\tkzDefPointOnCircle[R = angle 280 center K1 radius \rAp]
\tkzGetPoint{J}
\tkzDrawSegments[new](A,I I,B A,J J,B)
\tkzDrawCircle[R,fill=teal!20,opacity=.4](K1,\rAp pt)
@@ -1232,12 +1282,12 @@ The last example is very complex and it is to show you all that we can do with \
\tkzInterLC(A,B)(Q,Cb) \tkzGetFirstPoint{Ba}
\tkzInterLC(A,C)(Q,Cb) \tkzGetPoints{Ac}{Ca}
\tkzInterLC(B,C')(Q,Cb) \tkzGetFirstPoint{Bc}
-\tkzInterLC(Q,Ja)(Q,Cb) \tkzGetSecondPoint{F'a}
-\tkzInterLC(Q,Jc)(Q,Cb) \tkzGetSecondPoint{F'c}
-\tkzInterLC(Q,Jb)(Q,Cb) \tkzGetSecondPoint{F'b}
-\tkzInterLC(Sp,F'a)(Ja,Za) \tkzGetFirstPoint{Fa}
-\tkzInterLC(Sp,F'b)(Jb,Yb) \tkzGetFirstPoint{Fb}
-\tkzInterLC(Sp,F'c)(Jc,Yc) \tkzGetFirstPoint{Fc}
+\tkzInterLC(Ja,Q)(Q,Cb) \tkzGetSecondPoint{F'a}
+\tkzInterLC(Jc,Q)(Q,Cb) \tkzGetFirstPoint{F'c}
+\tkzInterLC(Jb,Q)(Q,Cb) \tkzGetSecondPoint{F'b}
+\tkzInterLC[common=F'a](Sp,F'a)(Ja,F'a) \tkzGetFirstPoint{Fa}
+\tkzInterLC[common=F'b](Sp,F'b)(Jb,F'b) \tkzGetFirstPoint{Fb}
+\tkzInterLC[common=F'c](Sp,F'c)(Jc,F'c) \tkzGetFirstPoint{Fc}
\tkzInterLC(Mc,Sp)(Q,Cb) \tkzGetFirstPoint{A''}
\tkzDefLine[parallel=through A''](N,Mc) \tkzGetPoint{q}
% Calculations are done, now you can draw, mark and label
@@ -1272,7 +1322,7 @@ The last example is very complex and it is to show you all that we can do with \
\end{tkzexample}
\subsubsection*{The result}
-%
+
\begin{tikzpicture}[scale=.6]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[euler](A,B,C) \tkzGetPoint{N}
@@ -1295,12 +1345,12 @@ The last example is very complex and it is to show you all that we can do with \
\tkzInterLC(A,B)(Q,Cb) \tkzGetFirstPoint{Ba}
\tkzInterLC(A,C)(Q,Cb) \tkzGetPoints{Ac}{Ca}
\tkzInterLC(B,C')(Q,Cb) \tkzGetFirstPoint{Bc}
-\tkzInterLC(Q,Ja)(Q,Cb) \tkzGetSecondPoint{F'a}
-\tkzInterLC(Q,Jc)(Q,Cb) \tkzGetSecondPoint{F'c}
-\tkzInterLC(Q,Jb)(Q,Cb) \tkzGetSecondPoint{F'b}
-\tkzInterLC(Sp,F'a)(Ja,Za) \tkzGetFirstPoint{Fa}
-\tkzInterLC(Sp,F'b)(Jb,Yb) \tkzGetFirstPoint{Fb}
-\tkzInterLC(Sp,F'c)(Jc,Yc) \tkzGetFirstPoint{Fc}
+\tkzInterLC(Ja,Q)(Q,Cb) \tkzGetSecondPoint{F'a}
+\tkzInterLC(Jc,Q)(Q,Cb) \tkzGetFirstPoint{F'c}
+\tkzInterLC(Jb,Q)(Q,Cb) \tkzGetSecondPoint{F'b}
+\tkzInterLC[common=F'a](Sp,F'a)(Ja,F'a) \tkzGetFirstPoint{Fa}
+\tkzInterLC[common=F'b](Sp,F'b)(Jb,F'b) \tkzGetFirstPoint{Fb}
+\tkzInterLC[common=F'c](Sp,F'c)(Jc,F'c) \tkzGetFirstPoint{Fc}
\tkzInterLC(Mc,Sp)(Q,Cb) \tkzGetFirstPoint{A''}
\tkzDefLine[parallel=through A''](N,Mc) \tkzGetPoint{q}
\tkzDrawPolygon(A,B,C)
@@ -1325,6 +1375,7 @@ The last example is very complex and it is to show you all that we can do with \
\tkzLabelPoints[right](C)
\tkzLabelPoints[below right](A)
\tkzLabelPoints[above right](Yb)
+\tkzDrawSegments(Fc,F'c Fb,F'b Fa,F'a)
\tkzDrawSegments[color=green!50!black](Mc,N Mc,A'' A'',Q)
\tkzDrawSegments[color=red,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab)
\tkzDrawSegments[color=red](Cb,Ab Bc,Ac Ba,Ca A',C')
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex
index c206565b6a..8976e9e7b3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-filling.tex
@@ -41,7 +41,7 @@ You don't need to put \tkzname{radius} because that's the default option. Of cou
\tkzDefMidPoint(A,D) \tkzGetPoint{F}
\tkzDefMidPoint(B,C) \tkzGetPoint{E}
\tkzDefMidPoint(B,D) \tkzGetPoint{Q}
- \tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H}
+ \tkzDefTangent[from = B](F,A) \tkzGetPoints{H}{G}
\tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
\tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
\tkzDefPointBy[projection=onto B--A](K)
@@ -129,7 +129,7 @@ You can color by drawing the polygon, but in this case you color the inside of t
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{}
%\bottomrule
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex
index a8676a2854..e55ac4faf8 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-intersec.tex
@@ -1,10 +1,10 @@
-\section{Intersections}
+\section{\tkzname{Intersections}}
It is possible to determine the coordinates of the points of intersection between two straight lines, a straight line and a circle, and two circles.
The associated commands have no optional arguments and the user must determine the existence of the intersection points himself.
-\subsection{Intersection of two straight lines}
+\subsection{Intersection of two straight lines \tkzcname{tkzInterLL}}
\begin{NewMacroBox}{tkzInterLL}{\parg{$A,B$}\parg{$C,D$}}%
Defines the intersection point \tkzname{tkzPointResult} of the two lines $(AB)$ and $(CD)$. The known points are given in pairs (two per line) in brackets, and the resulting point can be retrieved with the macro \tkzcname{tkzDefPoint}.
\end{NewMacroBox}
@@ -25,13 +25,13 @@ Defines the intersection point \tkzname{tkzPointResult} of the two lines $(AB)$
\end{tikzpicture}
\end{tkzexample}
-\subsection{Intersection of a straight line and a circle}
+\subsection{Intersection of a straight line and a circle \tkzcname{tkzInterLC}}
As before, the line is defined by a couple of points. The circle
is also defined by a couple:
\begin{itemize}
-\item $(O,C)$ which is a pair of points, the first is the centre and the second is any point on the circle.
-\item $(O,r)$ The $r$ measure is the radius measure. The unit can be the \emph{cm} or \emph{pt}.
+\item $(O,C)$ which is a pair of points, the first is the center and the second is any point on the circle.
+\item $(O,r)$ The $r$ measure is the radius measure.
\end{itemize}
\begin{NewMacroBox}{tkzInterLC}{\oarg{options}\parg{$A,B$}\parg{$O,C$} or \parg{$O,r$} or \parg{$O,C,D$}}%
@@ -42,115 +42,169 @@ So the arguments are two couples.
\toprule
options & default & definition \\
\midrule
-\TOline{N} {N} { (O,C) determines the circle}
-\TOline{R} {N} { (O, 1 ) unit 1 cm}
-\TOline{with nodes}{N} { (O,C,D) CD is a radius}
-\TOline{common} {} { common = pt if pt is common point}
+\TOline{N} {N} {(O,C) determines the circle}
+\TOline{R} {N} {(O, 1 ) unit 1 cm}
+\TOline{with nodes}{N} {(O,C,D) CD is a radius}
+\TOline{common=pt} {} {pt is common point; tkzFirstPoint gives the other point}
+\TOline{near} {} {tkzFirstPoint is the closest point to the first point of the line}
\bottomrule
\end{tabular}
\medskip
-The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file. \tkzname{with nodes} vous évite de calculer le rayon qui est la longueur de $[CD]$.
+The macro defines the intersection points $I$ and $J$ of the line $(AB)$ and the center circle $O$ with radius $r$ if they exist; otherwise, an error will be reported in the |.log| file. \tkzname{with nodes} avoids you to calculate the radius which is the length of $[CD]$.
+If common and near are not used then \tkzname{tkzFirstPoint} is the smallest angle (angle with \tkzname{tkzSecondPoint} and the center of the circle).
\end{NewMacroBox}
+\begin{NewMacroBox}{tkzTestInterLC}{\parg{$O,A$}\parg{$O',B$}}%
+So the arguments are two couples which define a line and a circle with a center and a point on the circle. If there is a non empty intersection between these the line and the circle then the test \tkzcname{iftkzFlagLC} gives true.
+\end{NewMacroBox}
+
+\subsubsection{test line-circle intersection}
+
+\begin{tkzexample}[latex=7cm,small]
+ \begin{tikzpicture}[scale=1]
+ \tkzDefPoints{% x y name
+ 3 /4 /I,
+ 3 /2 /P,
+ 0 /2 /La,
+ 8 /3 /Lb}
+ \tkzDrawCircle(I,P)
+ \foreach \i in {1,...,3}{%
+ \coordinate (Lb) at (8,\i);
+ \tkzDrawLine(La,Lb)
+ \tkzTestInterLC(La,Lb)(I,P)
+ \iftkzFlagLC
+ \tkzInterLC(La,Lb)(I,P)
+ \tkzGetPoints{a}{b}
+ \tkzDrawPoints(a,b)
+ \fi
+ }
+ \end{tikzpicture}
+\end{tkzexample}
+
+
\subsubsection{Line-circle intersection}
-In the following example, the drawing of the circle uses two points and the intersection of the straight line and the circle uses two pairs of points:
+In the following example, the drawing of the circle uses two points and the intersection of the straight line and the circle uses two pairs of points. We will compare the angles $\widehat{D,E,O}$ and $\widehat{E,D,O}$. These angles are in opposite directions. \tkzname{tkzFirstPoint} is assigned to the point that forms the angle with the smallest measure (counterclockwise direction). The counterclockwide angle $\widehat{D,E,O}$ has a measure equal to $360\circ$ minus the measure of $\widehat{O,E,D}$.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.75]
\tkzInit[xmax=5,ymax=4]
\tkzDefPoint(1,1){O}
- \tkzDefPoint(0,4){A}
- \tkzDefPoint(5,0){B}
+ \tkzDefPoint(-2,4){La}
+ \tkzDefPoint(5,0){Lb}
\tkzDefPoint(3,3){C}
\tkzInterLC(A,B)(O,C) \tkzGetPoints{D}{E}
+ \tkzMarkAngle[->,size=1.5](E,D,O)
+ \tkzDrawPolygons[new](O,D,E)
+ \tkzMarkAngle[->,size=1.5](D,E,O)
\tkzDrawCircle(O,C)
- \tkzDrawPoints[color=blue](O,A,B,C)
+ \tkzDrawPoints[color=teal](O,La,Lb,C)
\tkzDrawPoints[color=red](D,E)
- \tkzDrawLine(A,B)
- \tkzLabelPoints[above right](O,A,B,C,D,E)
+ \tkzDrawLine(La,Lb)
+ \tkzLabelPoints[above right](O,La,Lb,C,D,E)
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Line-circle intersection with common point}
+\subsubsection{Line passing through the cente,r option \tkzname{common}}
+This case is special. You cannot compare the angles. In this case, the option \tkzname{near} must be used. \tkzname{tkzFirstPoint} is assigned to the point closest to the first point given for the line. Here we want $A$ to be closest to $Lb$.
+
\begin{tkzexample}[latex=7cm,small]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoints{0/0/O,5/1/A,2/2/B}
- \tkzInterLC[common=A](B,A)(O,A)\tkzGetFirstPoint{C}
- \tkzDrawPoints(O,A,B)
- \tkzDrawCircle(O,A)
- \tkzDrawLine(A,C)
- \tkzDrawPoint(C)
- \tkzLabelPoints(A,B,C)
- \end{tikzpicture}
+\begin{tikzpicture}
+\tkzDefPoints{% x y name
+ 0 /1 /D,
+ 6 /0 /B,
+ 3 /3 /O,
+ 2 /2 /La,
+ 5 /5 /Lb}
+ \tkzDrawCircle(O,D)
+ \tkzDrawLine(La,Lb)
+ \tkzInterLC[near](Lb,La)(O,D)
+ \tkzGetFirstPoint{A}
+ \tkzDrawSegments(O,A)
+ \tkzDrawPoints(O,D,La,Lb)
+ \tkzLabelPoints(O,D,La,Lb,a)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Line-circle intersection with option \tkzname{common}}
+A special case that we often meet, a point of the line is on the circle and we are looking for the other common point.
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/0/O,-5/0/A,2/-2/B,0/5/D}
+ \tkzInterLC[common=A](B,A)(O,D)
+ \tkzGetFirstPoint{C}
+ \tkzDrawPoints(O,A,B)
+ \tkzDrawCircle(O,A)
+ \tkzDrawLine(A,C)
+ \tkzDrawPoint(C)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
\end{tkzexample}
\subsubsection{Line-circle intersection order of points}
The idea is to compare the angles formed with the first defining point of the line, a resultant point and the center of the circle. The first point is the one that corresponds to the smallest angle.
-As you can see $\widehat{BCO} < \widehat{BEO} $
+As you can see $\widehat{BCO} < \widehat{BEO} $. To tell the truth,$ \widehat{BEO}$ is counterclockwise.
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{0/0/O,5/1/A,2/2/B,3/1/D}
+ \tkzInterLC[common=A](B,D)(O,A) \tkzGetPoints{C}{E}
+ \tkzDrawPoints(O,A,B,D)
+ \tkzDrawCircle(O,A) \tkzDrawLine(E,C)
+ \tkzDrawSegments[dashed](B,O O,C)
+ \tkzMarkAngle[->,size=1.5](B,C,O)
+ \tkzDrawSegments[dashed](O,E)
+ \tkzMarkAngle[->,size=1.5](B,E,O)
+ \tkzDrawPoints(C,E)
+ \tkzLabelPoints[above](O,E)
+ \tkzLabelPoints[right](A,B,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+\subsubsection{Example with \tkzcname{foreach}}
\begin{tkzexample}[latex=7cm,small]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoints{0/0/O,5/1/A,2/2/B,3/1/D}
- \tkzInterLC[common=A](B,D)(O,A) \tkzGetPoints{C}{E}
- \tkzDrawPoints(O,A,B,D)
- \tkzDrawCircle(O,A)
- \tkzDrawLine(E,C)
- \tkzDrawSegments[dashed](B,O O,C)
- \tkzMarkAngle[->,size=1.5](B,C,O)
- \tkzDrawSegments[dashed](O,E)
- \tkzMarkAngle[->,size=1.5](B,E,O)
- \tkzDrawPoints(C,E)
- \tkzLabelPoints(O,A,B,C,D,E)
- \end{tikzpicture}
+\begin{tikzpicture}[scale=3,rotate=180]
+\tkzDefPoint(0,1){J}
+\tkzDefPoint(0,0){O}
+\foreach \i in {0,-5,-10,...,-90}{
+ \tkzDefPoint({2.5*cos(\i*pi/180)},{1+2.5*sin(\i*pi/180)}){P}
+ \tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M}
+ \tkzDrawSegment[color=orange](J,N)
+ \tkzDrawPoints[red](N)}
+\foreach \i in {-90,-95,...,-175,-180}{
+ \tkzDefPoint({2.5*cos(\i*pi/180)},{1+2.5*sin(\i*pi/180)}){P}
+ \tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M}
+ \tkzDrawSegment[color=orange](J,M)
+ \tkzDrawPoints[red](M)}
+\end{tikzpicture}
\end{tkzexample}
+\subsubsection{Line-circle intersection with option \tkzname{near}}
+$D$ is the point closest to $b$.
-\subsubsection{Line-circle intersection in Sangaku}
\begin{tkzexample}[vbox,small]
- \begin{tikzpicture}[scale=1]
- \def\ORadius{6}
- \def\OORadius{4}
- \pgfmathparse{(2*(\ORadius-\OORadius))/(\ORadius/\OORadius+1)}%
- \let\OOORadius\pgfmathresult%
- \pgfmathparse{\ORadius-\OOORadius}%
- \let\OOOORadius\pgfmathresult%
- \pgfmathparse{2*\OORadius-\ORadius}%
- \let\XA\pgfmathresult%
- \tkzDefPoint["$O$" below left](0,0){O}
- \ifdim\XA pt = 0pt\relax%
- \tkzDefPoint["$A$" below right](\XA,0){A}
- \else
- \tkzDefPoint["$A$" below left](\XA,0){A}
- \fi
- \tkzDefPoint["$D$" below right](\OORadius,0){D}
- \tkzDefPoint["$X$" below left](-\ORadius,0){X}
- \tkzDefPoint["$B$" below right](\ORadius,0){B}
- \tkzDefPoint["$O_2$" below left](\OORadius-\ORadius,0){O2}
- \tkzDefLine[mediator](A,B) \tkzGetPoints{mr}{ml}
- \tkzInterLC[R](D,mr)(O,\ORadius) \tkzGetPoints{E}{C}
- \tkzDefLine[orthogonal=through A](X,A) \tkzGetPoint{pr}
- \ifdim\XA pt < 0 pt\relax
- \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O3}{O4}
- \else
- \ifdim\XA pt = 0pt\relax
- \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O3}{O4}
- \else
- \tkzInterLC[R](A,pr)(O,\OOOORadius) \tkzGetPoints{O4}{O3}
- \fi
- \fi
- \tkzDefPointBy[projection=onto A--C](O3) \tkzGetPoint{H}
- \tkzDrawCircles[R](O,{\ORadius} O2,{\OORadius} O3,{\OOORadius})
- \tkzDrawSegments[dashed](O,O3 C,D O3,A O3,H)
- \tkzDrawSegments(X,B A,C B,C)
- \tkzMarkSegments[mark=s|](D,B D,A)
- \tkzLabelPoints[right](O3,H)
- \tkzLabelPoint[above right](C){$C$}
- \tkzMarkRightAngles[fill=gray!30](X,D,C X,A,O3 A,H,O3)
- \tkzDrawPoints(A,B,C,D,X,O,O2,O3,H)
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,12/0/C}
+ \tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
+ \tkzDefMidPoint(A,C) \tkzGetPoint{O}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{O_1}
+ \tkzDefMidPoint(B,C) \tkzGetPoint{O_2}
+ \tkzDefPointBy[rotation=center O_2 angle 90](C) \tkzGetPoint{P}
+ \tkzDefPointBy[rotation=center O_1 angle 90](B) \tkzGetPoint{Q}
+ \tkzDefPointBy[rotation=center B angle 90](C) \tkzGetPoint{b}
+ \tkzInterLC[near](b,B)(O,A) \tkzGetFirstPoint{D}
+ \tkzInterCC(D,B)(O,C) \tkzGetPoints{V}{U}
+ \tkzDefPointBy[projection=onto U--V](O_1) \tkzGetPoint{M}
+ \tkzDefPointBy[projection=onto U--V](O_2) \tkzGetPoint{N}
+ \tkzDrawPoints(A,B,C,O,O_1,O_2,D,U,V,M,N,b)
+ \tkzDrawSemiCircles[teal](O,C O_1,B O_2,C)
+ \tkzDrawSegments(A,C B,D U,V A,D C,D M,B B,N)
+ \tkzDrawArc(D,U)(V)
+ \tkzLabelPoints(A,B,C,O,O_1,O_2)
+ \tkzLabelPoints[above](D,U,V,M,N)
\end{tikzpicture}
\end{tkzexample}
@@ -160,25 +214,21 @@ Figure from \url{http://gogeometry.com/problem/p190_tangent_circle}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.75]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(8,0){B}
- \tkzDefMidPoint(A,B)
- \tkzGetPoint{O}
- \tkzDefMidPoint(O,B)
- \tkzGetPoint{O'}
- \tkzDefTangent[from=A](O',B)
- \tkzGetSecondPoint{E}
- \tkzInterLC(A,E)(O,B)
- \tkzGetSecondPoint{D}
- \tkzDefPointBy[projection=onto A--B](D)
- \tkzGetPoint{F}
- \tkzDrawCircles(O,B O',B)
- \tkzDrawSegments(A,D A,B D,F)
- \tkzDrawSegments[color=red,line width=1pt,
- opacity=.4](A,O F,B)
- \tkzDrawPoints(A,B,O,O',E,D)
- \tkzMarkRightAngle(D,F,B)
- \tkzLabelPoints(A,B,O,O',E,D)
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(8,0){B}
+ \tkzDefMidPoint(A,B) \tkzGetPoint{O}
+ \tkzDefMidPoint(O,B) \tkzGetPoint{O'}
+ \tkzDefTangent[from=A](O',B) \tkzGetFirstPoint{E}
+ \tkzInterLC(A,E)(O,B) \tkzGetFirstPoint{D}
+ \tkzDefPointBy[projection=onto A--B](D)
+ \tkzGetPoint{F}
+ \tkzDrawCircles(O,B O',B)
+ \tkzDrawSegments(A,D A,B D,F)
+ \tkzDrawSegments[color=red,line width=1pt,
+ opacity=.4](A,O F,B)
+ \tkzDrawPoints(A,B,O,O',E,D)
+ \tkzMarkRightAngle(D,F,B)
+ \tkzLabelPoints(A,B,O,O',E,D)
\end{tikzpicture}
\end{tkzexample}
@@ -187,54 +237,34 @@ Let's look at some special cases like straight lines tangent to the circle.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
- \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){I}
- \tkzDefPoint(2,7){E} \tkzDefPoint(6,4){F}
- \tkzInterLC[R](A,C)(I,4) \tkzGetPoints{I1}{I2}
- \tkzInterLC[R](B,C)(I,4) \tkzGetPoints{J1}{J2}
- \tkzInterLC[R](A,B)(I,4) \tkzGetPoints{K1}{K2}
- \tkzInterLC[R](E,F)(I,4) \tkzGetPoints{I2}{J2}
- \tkzDrawCircle[R](I,4)
- \tkzDrawPoints[color=red](I1,J1,K1,K2)
- \tkzDrawLines(A,B B,C A,C I2,J2)
- \tkzDrawPoints[color=blue](E,F)
- \tkzDrawPoints[color=red](I2,J2)
+ \tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
+ \tkzDefPoint(8,8){C} \tkzDefPoint(4,4){D}
+ \tkzDefPoint(2,4){E} \tkzDefPoint(4,2){F}
+ \tkzDefPoint(8,4){G}
+ \tkzInterLC(A,C)(D,G) \tkzGetPoints{I1}{I2}
+ \tkzInterLC(B,C)(D,G) \tkzGetPoints{J1}{J2}
+ \tkzInterLC[near](A,B)(D,G) \tkzGetPoints{K1}{K2}
+ \tkzInterLC(E,F)(D,G) \tkzGetPoints{E1}{E2}
+ \tkzDrawCircle(D,G)
+ \tkzDrawPoints[color=red](I1,J1,K1,K2,E1,E2)
+ \tkzDrawLines(A,B B,C A,C I2,J2 E1,E2)
+ \tkzDrawPoints[color=blue](A,...,F)
+ \tkzDrawPoints[color=red](I2,J2)
+ \tkzLabelPoints[left](B,D,E,F)
+ \tkzLabelPoints[below left](A,C)
+ \tkzLabelPoints[below=4pt](I1,K1,K2,E2)
+ \tkzLabelPoints[left](J1,E1)
\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{More complex example}
-\tkzHandBomb\ Be careful with the syntax. First of all, calculations for the points can be done during the passage of the arguments, but the syntax of \tkzname{xfp} must be respected. You can see that I use the term \tkzname{pi} because \NamePack{xfp} can work with radians. You can also work with degrees but in this case, you need to use specific commands like |sind| or |cosd|. Furthermore, when calculations require the use of parentheses, they must be inserted in a group... \TEX \{ \dots \}.
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1.25]
-\tkzDefPoint(0,1){J}
-\tkzDefPoint(0,0){O}
-\tkzDrawArc[R,line width=1pt,color=red](J,2.5)(180,0)
-\foreach \i in {0,-5,-10,...,-85,-90}{
- \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
- \tkzDrawSegment[color=orange](J,P)
- \tkzInterLC[R](P,J)(O,1)
- \tkzGetPoints{M}{N}
- \tkzDrawPoints[red](N)
- }
-\foreach \i in {-90,-95,...,-175,-180}{
- \tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
- \tkzDrawSegment[color=orange](J,P)
- \tkzInterLC[R](P,J)(O,1)
- \tkzGetPoints{M}{N}
- \tkzDrawPoints[red](M)
- }
-\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Calculation of radius example 1}
+\subsubsection{Calculation of radius}
With \tkzname{pgfmath} and \tkzcname{pgfmathsetmacro}
The radius measurement may be the result of a calculation that is not done within the intersection macro, but before.
A length can be calculated in several ways. It is possible of course,
- to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$.
+ to use the module \tkzname{pgfmath} and the macro \tkzcname{pgfmathsetmacro}. In some cases, the results obtained are not precise enough, so the following calculation $0.0002 \div 0.0001$ gives $1.98$ with pgfmath while xfp will give $2$.
-\subsubsection{Calculation of radius example 2}
With \tkzname{xfp} and \tkzcname{fpeval}:
\begin{tkzexample}[latex=7cm,small]
@@ -269,7 +299,7 @@ With \tkzname{xfp} and \tkzcname{fpeval}:
\end{tikzpicture}
\end{tkzexample}
-\subsection{Intersection of two circles}
+\subsection{Intersection of two circles \tkzcname{tkzInterCC}}
The most frequent case is that of two circles defined by their center and a point, but as before the option \tkzname{R} allows to use the radius measurements.
@@ -277,18 +307,43 @@ The most frequent case is that of two circles defined by their center and a poin
\begin{tabular}{lll}%
options & default & definition \\
\midrule
-\TOline{N} {N} {$OA$ and $O'A'$ are radii, $O$ and $O'$ are the centres}
-\TOline{R} {N} {$r$ and $r'$ are dimensions and measure the radii}
-\TOline{with nodes} {N} { in (A,A,C)(C,B,F) AC and BF give the radii. }
+\TOline{N} {N} {$OA$ and $O'A'$ are radii, $O$ and $O'$ are the centers.}
+\TOline{R} {N} {$r$ and $r'$ are dimensions and measure the radii.}
+\TOline{with nodes} {N} {in (A,A,C)(C,B,F) AC and BF give the radii. }
+\TOline{common=pt} {} {pt is common point; tkzFirstPoint gives the other point.}
\bottomrule
\end{tabular}
\medskip
-This macro defines the intersection point(s) $I$ and $J$ of the two center circles $O$ and $O'$. If the two circles do not have a common point then the macro ends with an error that is not handled. \\
-It is also possible to use directly \tkzcname{tkzInterCCN} and \tkzcname{tkzInterCCR}.
+This macro defines the intersection point(s) $I$ and $J$ of the two center circles $O$ and $O'$. If the two circles do not have a common point then the macro ends with an error that is not handled. If the centers are $O$ and $O'$ and the intersections are $A$ and $B$ then the angles $\widehat{O,A,O'}$ and $\widehat{O,B,O'}$ are in opposite directions. \tkzname{tkzFirstPoint} is assigned to the point that forms the "clockwise" angle.
+\end{NewMacroBox}
+
+\begin{NewMacroBox}{tkzTestInterCC}{\parg{$O,A$}\parg{$O',B$}}%
+So the arguments are two couples which define two circles with a center and a point on the circle. If there is a non empty intersection between these two circles then the test \tkzcname{iftkzFlagCC} gives true.
\end{NewMacroBox}
-\subsubsection{circle-circle intersection with common point.}
+\subsubsection{test circle-circle intersection}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoints{% x y name
+ 0 /0 /A,
+ 2 /0 /B,
+ 4 /0 /I,
+ 1 /0 /P}
+\tkzDrawCircle(A,B)
+\foreach \i in {1,...,3}{%
+ \coordinate (P) at (\i,0);
+\tkzDrawCircle[new](I,P)
+ \tkzTestInterCC(A,B)(I,P)
+ \iftkzFlagCC
+ \tkzInterCC(A,B)(I,P) \tkzGetPoints{a}{b}
+ \tkzDrawPoints(a,b)
+ \fi}
+ \end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{circle-circle intersection with \tkzname{common} point.}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.5]
@@ -297,7 +352,7 @@ It is also possible to use directly \tkzcname{tkzInterCCN} and \tkzcname{tkzInte
\tkzDrawCircles(O,B A,B)
\tkzInterCC[common=B](O,B)(A,B)\tkzGetFirstPoint{C}
\tkzDrawPoint(C)
- \tkzLabelPoints(O,A,B,C)
+ \tkzLabelPoints[above](O,A,B,C)
\end{tikzpicture}
\end{tkzexample}
@@ -308,22 +363,28 @@ As you can see $\widehat{ODB} < \widehat{OBE} $
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.5]
+ \pgfkeys{/pgf/number format/.cd,fixed relative,precision=4}
\tkzDefPoints{0/0/O,5/-1/A,2/2/B,2/-1/C}
\tkzDrawPoints(O,A,B)
\tkzDrawCircles(O,A B,C)
\tkzInterCC(O,A)(B,C)\tkzGetPoints{D}{E}
\tkzDrawPoints(C,D,E)
\tkzLabelPoints(O,A,B,C,D,E)
- \tkzDrawSegments[dashed](D,O D,B)
- \tkzMarkAngle[->,size=1.5](O,D,B)
- \tkzDrawSegments[dashed](E,O E,B)
- \tkzMarkAngle[->,size=1.5](O,E,B)
+ \tkzDrawSegments[cyan](D,O D,B)
+ \tkzMarkAngle[red,->,size=1.5](O,D,B)
+ \tkzFindAngle(O,D,B) \tkzGetAngle{an}
+ \tkzLabelAngle(O,D,B){$ \pgfmathprintnumber{\an}$}
+ \tkzDrawSegments[cyan](E,O E,B)
+ \tkzMarkAngle[red,->,size=1.5](O,E,B)
+ \tkzFindAngle(O,E,B) \tkzGetAngle{an}
+ \tkzLabelAngle(O,E,B){$ \pgfmathprintnumber{\an}$}
\end{tikzpicture}
\end{tkzexample}
\subsubsection{Construction of an equilateral triangle.}
+$\widehat{A,C,B}$ is a clockwise angle
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[trim left=-1cm,scale=.5]
\tkzDefPoint(1,1){A}
@@ -340,67 +401,33 @@ As you can see $\widehat{ODB} < \widehat{OBE} $
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Example a mediator.}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(2,2){B}
- \tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N}
- \tkzDrawCircles[color=teal](A,B B,A)
- \tkzDrawCircle[color=teal](A,B)
- \tkzDrawPoints(M,N)
- \tkzDrawLine[new](M,N)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{An isosceles triangle.}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[rotate=120,scale=.75]
- \tkzDefPoint(1,2){A}
- \tkzDefPoint(4,0){B}
- \tkzInterCC[R](A,4)(B,4)
- \tkzGetPoints{C}{D}
- \tkzDrawCircles[R,dashed](A,4 B,4)
- \tkzCompass[new](A,C)
- \tkzCompass[new](B,C)
- \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints(A,B,C)
- \tkzMarkSegments[mark=s|](A,C B,C)
- \tkzLabelPoints[](A,B)
- \tkzLabelPoint[above](C){$C$}
-\end{tikzpicture}
-\end{tkzexample}
-
\subsubsection{Segment trisection}
The idea here is to divide a segment with a ruler and a compass into three segments of equal length.
\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
+\begin{tikzpicture}[scale=.6]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,2){B}
- \tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{D}
- \tkzInterCC(D,B)(B,A) \tkzGetPoints{A}{E}
- \tkzInterCC(D,B)(A,B) \tkzGetPoints{F}{B}
- \tkzInterLC(E,F)(F,A) \tkzGetPoints{D}{G}
- \tkzInterLL(A,G)(B,E) \tkzGetPoint{O}
- \tkzInterLL(O,D)(A,B) \tkzGetPoint{J}
- \tkzInterLL(O,F)(A,B) \tkzGetPoint{I}
- \tkzDrawCircles(D,A A,B B,A F,A)
- \tkzDrawSegments[new](O,G
- O,B O,D O,F)
- \tkzDrawPoints(A,B,D,E,F,G,I,J)
- \tkzLabelPoints(A,B,D,E,F,G,I,J)
- \tkzDrawSegments(A,B B,D A,D%
- A,F F,G E,G B,E)
- \tkzMarkSegments[mark=s|](A,I I,J J,B)
+ \tkzInterCC(A,B)(B,A) \tkzGetSecondPoint{D}
+ \tkzInterCC(D,B)(B,A) \tkzGetPoints{A}{C}
+ \tkzInterCC(D,B)(A,B) \tkzGetPoints{E}{B}
+ \tkzInterLC[common=D](C,D)(E,D) \tkzGetFirstPoint{F}
+ \tkzInterLL(A,F)(B,C) \tkzGetPoint{O}
+ \tkzInterLL(O,D)(A,B) \tkzGetPoint{H}
+ \tkzInterLL(O,E)(A,B) \tkzGetPoint{G}
+ \tkzDrawCircles(D,E A,B B,A E,A)
+ \tkzDrawSegments[](O,F O,B O,D O,E)
+ \tkzDrawPoints(A,...,H)
+ \tkzDrawSegments(A,B B,D A,D A,E E,F C,F B,C)
+ \tkzMarkSegments[mark=s|](A,G G,H H,B)
\end{tikzpicture}
\end{tkzexample}
\subsubsection{With the option "\tkzimp{with nodes}"}
\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=.5]
- \tkzDefPoints{0/0/a,0/5/B,5/0/C}
+ \tkzDefPoints{0/0/A,0/5/B,5/0/C}
\tkzDefPoint(54:5){F}
\tkzInterCC[with nodes](A,A,C)(C,B,F)
\tkzGetPoints{a}{e}
@@ -435,39 +462,37 @@ As you can see $\widehat{ODB} < \widehat{OBE} $
\tkzDrawSegments(C,L)
\tkzDrawPoints(A,B,C,D,E,M1,M2,M3,O,L)
\tkzDrawSegments(O,E)
- \tkzDrawSegments[dashed](C,A D,B)
+ \tkzDrawSegments[new](C,A D,B)
\tkzDrawPoint(O)
- \tkzDrawCircles[dashed](M3,D B,M2 D,O)
+ \tkzDrawCircles[new](M3,D B,M2 D,O)
\tkzDrawCircle(O,A)
\tkzLabelPoints(A,B,C,D,E,M1,M2,M3,O,L)
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{An oval}
-\begin{tkzexample}[latex=7cm,small]
- \begin{tikzpicture}[scale=0.4]
- \tkzDefPoint(-4,0){I}
- \tkzDefPoint(4,0){J}
- \tkzDefPoint(0,0){O}
- \tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H}
- \tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G}
- \tkzInterLL(I,K)(J,H) \tkzGetPoint{M}
- \tkzInterLL(I,G)(J,L) \tkzGetPoint{N}
- \tkzDefPointsBy[symmetry=center J](L,H){D,E}
- \tkzDefPointsBy[symmetry=center I](G,K){C,F}
- \begin{scope}[line style/.style = {very thin,teal}]
- \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L)
- \tkzDrawLines[add=.5 and .5](I,J)
- \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N)
- \tkzDrawCircles[R](O,4 I,4 J,4)
- \tkzDrawArc(N,D)(C)
- \tkzDrawArc(M,F)(E)
- \tkzDrawArc(J,E)(D)
- \tkzDrawArc(I,C)(F)
- \end{scope}
- \tkzLabelPoints(H,L,K,G,I,J,D,E,C,F,M,N)
- \end{tikzpicture}
+\subsubsection{Altshiller-Court's theorem}
+ The two lines joining the points of intersection of two orthogonal circles to a point on one of the circles met the other circle in two diametricaly oposite points. Altshiller p 176
+
+
+\begin{tkzexample}[vbox,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/P,5/0/Q,3/2/I}
+ \tkzDefCircleBy[orthogonal from=P](Q,I)
+ \tkzGetFirstPoint{E}
+ \tkzDrawCircles(P,E Q,E)
+ \tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F}
+ \tkzDefPointOnCircle[through = angle 80 center P point E]
+ \tkzGetPoint{A}
+ \tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C}
+ \tkzInterLL(A,F)(C,Q) \tkzGetPoint{D}
+ \tkzDrawLines[add=0 and 1](P,Q)
+ \tkzDrawLines[add=0 and 2](A,E)
+ \tkzDrawSegments(P,E E,F F,C A,F C,D)
+ \tkzDrawPoints(P,Q,E,F,A,C,D)
+ \tkzLabelPoints(P,Q,E,F,A,C,D)
+\end{tikzpicture}
\end{tkzexample}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex
index 9553e4d996..b7bbbeb5b7 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-labelling.tex
@@ -84,46 +84,23 @@ arguments & example & result \\
\end{tabular}
\end{NewMacroBox}
-\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}}
+\subsubsection{Label for points with \tkzcname{tkzAutoLabelPoints}}
Here the points are positioned relative to the center of gravity of $A,B,C \text{ and } O$.
-\begin{tkzexample}[latex=5cm,small]
-\begin{tikzpicture}[scale=1.25]
- \tkzDefPoint(2,1){O}
- \tkzDefRandPointOn[circle=center O radius 1.5]
- \tkzGetPoint{A}
- \tkzDrawCircle(O,A)
- \tkzDefPointBy[rotation=center O angle 100](A)
- \tkzGetPoint{C}
- \tkzDefPointBy[rotation=center O angle 78](A)
- \tkzGetPoint{B}
- \tkzDrawPoints(O,A,B,C)
- \tkzDrawSegments(C,B B,A A,O O,C)
- \tkzDefCentroid(A,B,C,O)
- \tkzDrawPoint(tkzPointResult)
- \tkzAutoLabelPoints[center=tkzPointResult,
- dist=.3,red](O,A,B,C)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsubsection{Example with \tkzcname{tkzAutoLabelPoints}}
-This time the reference is $O$ and the distance is by default $0.15$.
-\begin{tkzexample}[latex=5cm,small]
-\begin{tikzpicture}[scale=1.25]
+\begin{tkzexample}[latex=4cm,small]
+\begin{tikzpicture}[scale=1]
\tkzDefPoint(2,1){O}
- \tkzDefRandPointOn[circle=center O radius 1.5]
- \tkzGetPoint{A}
+ \tkzDefRandPointOn[circle=center O radius 1.5]\tkzGetPoint{A}
+ \tkzDefPointBy[rotation=center O angle 100](A)\tkzGetPoint{C}
+ \tkzDefPointBy[rotation=center O angle 78](A)\tkzGetPoint{B}
\tkzDrawCircle(O,A)
- \tkzDefPointBy[rotation=center O angle 100](A)
- \tkzGetPoint{C}
- \tkzDefPointBy[rotation=center O angle 78](A)
- \tkzGetPoint{B}
\tkzDrawPoints(O,A,B,C)
\tkzDrawSegments(C,B B,A A,O O,C)
- \tkzAutoLabelPoints[center=O,red](A,B,C)
+ \tkzDefCentroid(A,B,C,O)
+ \tkzDrawPoint(tkzPointResult)
+ \tkzAutoLabelPoints[center=tkzPointResult, dist=.3,red](O,A,B,C)
\end{tikzpicture}
\end{tkzexample}
-
\section{Label for a segment}
\hypertarget{tls}{}
\begin{NewMacroBox}{tkzLabelSegment}{\oarg{local options}\parg{pt1,pt2}\marg{label}}
@@ -381,24 +358,6 @@ You don't need to put \tkzname{radius} because that's the default option. We can
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Second example}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoints{2/3/A,5/-1/B}
- \tkzDefPoint[label=below:$\mathcal{C}$,
- shift={(2,3)}](-30:5.5){E}
- \begin{scope}[shift=(A)]
- \tkzDefPoint(30:5){C}
- \end{scope}
- \tkzDrawCircle(A,B)
- \tkzDrawSegment(A,B)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints[right](B,C)
- \tkzLabelPoints[above](A)
-\end{tikzpicture}
-\end{tkzexample}
-
\section{Label for an arc}
\hypertarget{tls}{}
\begin{NewMacroBox}{tkzLabelArc}{\oarg{local options}\parg{pt1,pt2,pt3}\marg{label}}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
index 923a5b462e..d7e852340e 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-lines.tex
@@ -1,4 +1,4 @@
-\section{The straight lines}
+\section{Straight lines}
It is of course essential to draw straight lines, but before this can be done, it is necessary to be able to define certain particular lines such as mediators, bisectors, parallels or even perpendiculars. The principle is to determine two points on the straight line.
@@ -12,7 +12,7 @@ I used the term "mediator" to designate the perpendicular bisector line at the m
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\parg{A,B}} {[mediator](A,B)}
\TAline{\parg{pt1,pt2,pt3}}{\parg{A,B,C}} {[bisector](B,A,C)}
@@ -40,7 +40,7 @@ options & default & definition \\
\tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D}
\tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D}
\tkzDefMidPoint(A,B) \tkzGetPoint{I}
- \tkzFillPolygon[color=teal!30](A,C,B,D)
+ \tkzFillPolygon[color=teal!20](A,C,B,D)
\tkzDrawSegments(A,B C,D)
\tkzMarkRightAngle(B,I,C)
\tkzDrawSegments(D,B D,A)
@@ -123,7 +123,7 @@ The parameter in brackets is the center of the circle or the center of the circl
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2 or \parg{pt1,dim}} }{\parg{A,B} or \parg{A,2cm}} {$[AB]$ is radius $A$ is the center}
\bottomrule
@@ -139,7 +139,7 @@ options & default & definition \\
\bottomrule
\end{tabular}
-The tangent is not drawn. A second point of the tangent is given by \tkzname{tkzPointResult}.
+The tangent is not drawn. With option \tkzname{at}, a point of the tangent is given by \tkzname{tkzPointResult}. With option \tkzname{from} you get two points of the circle with \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}. You can choose between these two points by comparing the angles formed with the outer point, the contact point and the center. The two possible angles have different directions. Angle counterclockwise refers to \tkzname{tkzFirstPointResult}.
\end{NewMacroBox}
\subsubsection{Example of a tangent passing through a point on the circle }
@@ -158,36 +158,59 @@ The tangent is not drawn. A second point of the tangent is given by \tkzname{tkz
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Example of tangents passing through an external point }
+\subsubsection{Choice of contact point with tangents passing through an external point}
\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.8]
- \tkzDefPoint(3,3){c}
- \tkzDefPoint(6,3){a0}
- \pgfmathsetmacro\R{1}
- \tkzDrawCircle[R](c,\R)
- \foreach \an in {0,10,...,350}{
- \tkzDefPointBy[rotation=center c angle \an](a0)
- \tkzGetPoint{a}
- \tkzDefTangent[from with R = a](c,\R)
- \tkzGetPoints{e}{f}
- \tkzDrawLines[color=teal](a,f a,e)
- \tkzDrawSegments(c,e c,f)
- }%
+\begin{tikzpicture}[scale=1,rotate=-30]
+\tkzDefPoints{ %x y name
+ 0 /0 /Q,
+ 0 /2 /A,
+ 6 /-1 /O}
+\tkzDefTangent[from = O](Q,A) \tkzGetPoints{R}{S}
+\tkzInterLC[near](O,Q)(Q,A) \tkzGetPoints{M}{N}
+\tkzDrawCircle(Q,M)
+\tkzDrawSegments[new,add = 0 and .2](O,R O,S)
+\tkzDrawSegments[gray](N,O R,Q S,Q)
+\tkzDrawPoints(O,Q,R,S,M,N)
+\tkzMarkAngle[gray,-stealth,size=1](O,R,Q)
+\tkzFindAngle(O,R,Q) \tkzGetAngle{an}
+\tkzLabelAngle(O,R,Q){$\pgfmathprintnumber{\an}^\circ$}
+\tkzMarkAngle[gray,-stealth,size=1](O,S,Q)
+\tkzFindAngle(O,S,Q) \tkzGetAngle{an}
+\tkzLabelAngle(O,S,Q){$\pgfmathprintnumber{\an}^\circ$}
+\tkzLabelPoints(Q,O,M,N,R)
+\tkzLabelPoints[above,text=red](S)
\end{tikzpicture}
\end{tkzexample}
+
+
+
+\subsubsection{Example of tangents passing through an external point }
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.8]
+\tkzDefPoints{0/0/c,1/0/d,3/0/a0}
+\def\tkzRadius{1}
+\tkzDrawCircle(c,d)
+ \foreach \an in {0,10,...,350}{
+ \tkzDefPointBy[rotation=center c angle \an](a0)
+ \tkzGetPoint{a}
+ \tkzDefTangent[from = a](c,d)
+ \tkzGetPoints{e}{f}
+ \tkzDrawLines(a,f a,e)
+ \tkzDrawSegments(c,e c,f)}
+\end{tikzpicture}
+\end{tkzexample}
+
\subsubsection{Example of Andrew Mertz}
\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B}
- \tkzDefPoint(0,0){C} \tkzDefPoint(0,4){R}
+ \tkzDefPoint(0,0){C} \tkzDefPoint(0,-4){R}
\tkzDrawCircle(C,R)
\tkzDefTangent[from = A](C,R) \tkzGetPoints{D}{E}
\tkzDefTangent[from = B](C,R) \tkzGetPoints{F}{G}
- \tkzDrawSector[fill=teal!20,opacity=0.5](A,D)(E)
- \tkzFillSector[color=teal,opacity=0.5](B,F)(G)
- \tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I}
- \tkzDrawPoint[color=black](I)
+ \tkzDrawSector[fill=teal!20,opacity=0.5](A,E)(D)
+ \tkzFillSector[color=teal,opacity=0.5](B,G)(F)
\end{tikzpicture}
\end{tkzexample}
\url{http://www.texample.net/tikz/examples/}
@@ -208,7 +231,7 @@ The tangent is not drawn. A second point of the tangent is given by \tkzname{tkz
\tkzDrawCircle[fill = orange](B,A)
\tkzDrawCircle[fill = purple](E,B)
\tkzDefTangent[from=B](F,A)
- \tkzInterLL(F,tkzFirstPointResult)(C,D)
+ \tkzInterLL(F,tkzSecondPointResult)(C,D)
\tkzInterLL(A,tkzPointResult)(F,E)
\tkzDrawCircle[fill = yellow](tkzPointResult,Q)
\tkzDefPointBy[projection= onto B--A](tkzPointResult)
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
index e02856ecd3..1d59e074f4 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-main.tex
@@ -18,15 +18,15 @@
index = totoc,
twoside,
headings = small,
- %cadre
+ cadre
]{tkz-doc}
%\usepackage{etoc}
\gdef\tkznameofpack{tkz-euclide}
-\gdef\tkzversionofpack{4.03}
-\gdef\tkzdateofpack{2022/01/20}
+\gdef\tkzversionofpack{4.05b}
+\gdef\tkzdateofpack{2022/02/07}
\gdef\tkznameofdoc{doc-tkz-euclide}
-\gdef\tkzversionofdoc{4.03}
-\gdef\tkzdateofdoc{2022/01/20}
+\gdef\tkzversionofdoc{4.05b}
+\gdef\tkzdateofdoc{2022/02/07}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
\gdef\tkznamecollection{AlterMundus}
@@ -115,14 +115,6 @@
% }
%<--------------------------------------------------------------------------->
\AtBeginDocument{\MakeShortVerb{\|}} % link to shortvrb
-% settings
-\tkzSetUpColors[background=white,text=black]
-\tkzSetUpCompass[color=orange, line width=.4pt,delta=10]
-\tkzSetUpArc[color=gray,line width=.4pt]
-\tkzSetUpPoint[size=2,color=teal]
-\tkzSetUpLine[line width=.4pt,color=teal]
-\tkzSetUpStyle[orange]{new}
-\tikzset{every picture/.style={line width=.4pt}}
\makeatletter
% We need to save the node
% Every append after command might be useful to have this code
@@ -152,10 +144,29 @@
\hfuzz1pc % Don't bother to report overfull boxes if overage is < 1pc
\newcommand{\pkg}[1]{{\protect\ntt#1}}
+
+% settings
+\tkzSetUpColors[background=white,text=black]
+\tkzSetUpCompass[color=orange, line width=.4pt,delta=10]
+\tkzSetUpArc[color=gray,line width=.4pt]
+\tkzSetUpPoint[size=2,color=teal]
+\tkzSetUpLine[line width=.4pt,color=teal]
+\tkzSetUpStyle[color=orange,ultra thin]{new}
+\tikzset{every picture/.style={line width=.4pt}}
+\tikzset{label angle style/.append style={color=teal,font=\footnotesize}}
+\tikzset{new/.style={color=orange,ultra thin}}
+%\tikzset{label style/.append style={color=teal,font=\footnotesize}}
+
+\newcommand{\tkzsubf}[2]{%
+ {\small\begin{tabular}[t]{@{}c@{}}
+ #1\\#2
+ \end{tabular}}%
+}
+
+
\begin{document}
-
\parindent=0pt
\author{\tkzauthorofpack}
\title{\tkznameofpack}
@@ -271,8 +282,9 @@ Project Public License Distributed from \href{http://www.ctan.org/}{CTAN}\ arch
\include{TKZdoc-euclide-styles}
\part{Examples}
-\include{TKZdoc-euclide-examples}
\include{TKZdoc-euclide-others}
+\include{TKZdoc-euclide-examples}
+
\part{FAQ}
\include{TKZdoc-euclide-FAQ}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex
index 8ca0dc0f13..209aca27d9 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-marking.tex
@@ -242,25 +242,25 @@ More delicate operation because there are many options. The symbols used for mar
% \tkzMarkAngle(B, A, C)
%
-% Marque d'angle
-% arc de cercle (simple/double/triple) et marque d'églité.
+% Angle mark
+% arc de cercle (simple/double/triple) et mark of equality.
%
-% Par défaut:
+% By default:
% arc = simple
-% mksize = 1 (rayon de l'arc)
+% mksize = 1 (radius of the arc)
% style traits pleins
-% mkpos ? position: 0.5 (position de la marque)
-% mark rien du tout (ignoré si type est utilisé)
+% mkpos ? position: 0.5 (mark position)
+% mark none
%
-% Paramètres (optionnels)
+% Parameters (optional)
% arc : l, ll, lll
% mksize : 1
% gap : 3pt
% dist : 1?
-% style : type de traits
+% style : type of lines
% mkpos : 0.5
% mark : none , |, ||,|||, z, s, x, o, oo mais tous les
-% % symboles de tikz sont permis
+% % tikz symbols are allowed
\begin{NewMacroBox}{tkzMarkAngle}{\oarg{local options}\parg{A,O,B}}%
$O$ is the vertex. Attention the arguments vary according to the options. Several markings are possible. You can simply draw an arc or add a mark on this arc. The style of the arc is chosen with the option \tkzname{arc}, the radius of the arc is given by \tkzname{mksize}, the arc can, of course, be colored.
@@ -280,29 +280,21 @@ options & default & definition \\
\end{tabular}
\end{NewMacroBox}
-\subsubsection{Example with \tkzname{mark = x}}
-\begin{tkzexample}[latex=6cm,small]
- \begin{tikzpicture}[scale=.75]
- \tkzDefPoints{0/0/O,5/0/A,3/4/B}
- \tkzMarkAngle[size = 4,mark = x,
- arc=ll,mkcolor = red](A,O,B)
- \tkzDrawLines(O,A O,B)
- \tkzDrawPoints(O,A,B)
- \end{tikzpicture}
-\end{tkzexample}
\DeleteShortVerb{\|}
-\subsubsection{Example with \tkzname{mark =||}}
-\MakeShortVerb{\|}
+\subsubsection{Example with \tkzname{mark = x} and with \tkzname{mark =||}}
+
\begin{tkzexample}[latex=6cm,small]
- \begin{tikzpicture}[scale=.75]
- \tkzDefPoints{0/0/O,5/0/A,3/4/B}
- \tkzMarkAngle[size = 4,mark = ||,
- arc=ll,mkcolor = red](A,O,B)
- \tkzDrawLines(O,A O,B)
- \tkzDrawPoints(O,A,B)
- \end{tikzpicture}
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/O,5/0/A,3/4/B}
+ \tkzMarkAngle[size = 4,mark = x,
+ arc=ll,mkcolor = red,mkpos=.33](A,O,B)
+ \tkzMarkAngle[size = 2,mark = ||,
+ arc=ll,mkcolor = blue,mkpos=.66](A,O,B)
+ \tkzDrawLines(O,A O,B)
+ \tkzDrawPoints(O,A,B)
+\end{tikzpicture}
\end{tkzexample}
-
+\MakeShortVerb{\|}
\begin{NewMacroBox}{tkzMarkAngles}{\oarg{local options}\parg{A,O,B}\parg{A',O',B'}etc.}%
With common options, there is a macro for multiple angles.
\end{NewMacroBox}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
index 1226b02e13..57bb41c3d3 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-news.tex
@@ -28,7 +28,7 @@ Here are some of the changes. I'm sorry but the list of changes and novelties is
\item |\tkzMarkArc| and |\tkzLabelArc| are new macros;
-\item Now |\tkzClipCircle| and |\tkzClipPolygon| have an option \tkzimp{out}. To use this option you must have a Bounding Box that contains the object on which the Clip action will be performed. Cela peut se faire en utilisant un objet qui englobe la figure ou bien en utilisant la macro \tkzcname{tkzInit};
+\item Now |\tkzClipCircle| and |\tkzClipPolygon| have an option \tkzimp{out}. To use this option you must have a Bounding Box that contains the object on which the Clip action will be performed. This can be done by using an object that encompasses the figure or by using the macro \tkzcname{tkzInit};
\item The options \tkzname{end} and \tkzname{start} which allowed to give a label to a straight line are removed. You now have to use the macro \tkzcname{tkzLabelLine};
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex
index 47886c814d..a47fc85075 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-others.tex
@@ -223,7 +223,7 @@ Below the figure used to illustrate the proof of the “Gou gu theorem.” (cod
\tkzCalcLength(A',B) \tkzGetLength{lB}
\pgfmathparse{\lA-\lB}
\tkzInterLC[R](A,A')(A',\pgfmathresult)
- \tkzGetSecondPoint{D'}
+ \tkzGetFirstPoint{D'}
\tkzDefSquare(D',A')\tkzGetPoints{B'}{C'}
\tkzDefLine[orthogonal=through D](D,D')
\tkzGetPoint{d}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex
index 9c3f682563..a2f5584670 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointby.tex
@@ -38,6 +38,7 @@ options & & examples \\
\TOline{projection }{= onto \#1--\#2}{[projection=onto A--B](E)}
\TOline{rotation } {= center \#1 angle \#2}{[rotation=center O angle 30](E)}
\TOline{rotation in rad}{= center \#1 angle \#2}{[rotation in rad=center O angle pi/3](E)}
+\TOline{rotation with nodes}{= center \#1 from \#2 to \#3}{[center O from A to B](E)}
\TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](E)}
\TOline{inversion negative}{= center \#1 through \#2}{...}
\bottomrule
@@ -116,7 +117,8 @@ The image is only defined and not drawn.
\tkzMarkRightAngle[fill=orange!10,opacity=.4](D,G,B)
\tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
\tkzDrawPoints(B,D,E,G)
- \tkzLabelPoints[above right](B,D,E,G)
+ \tkzLabelPoints[above right](B,D,E)
+ \tkzLabelPoints[above](G)
\end{tikzpicture}
\end{tkzexample}
@@ -148,13 +150,13 @@ The image is only defined and not drawn.
\tkzGetPoint{D}
\tkzDrawSegment(A,tkzPointResult)
\tkzDrawLine(B,D)
- \tkzDrawArc(A,B)(C)
- \tkzDrawArc(B,C)(A)
+ \tkzDrawArc(A,B)(C) \tkzDrawArc(B,C)(A)
\tkzDrawArc(C,D)(D)
\tkzMarkRightAngle(D,B,A)
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
- \tkzLabelPoints[above](C,D)
+ \tkzLabelPoints[above](C)
+ \tkzLabelPoints[right](D)
\end{tikzpicture}
\end{tkzexample}
@@ -173,6 +175,24 @@ The image is only defined and not drawn.
\end{tikzpicture}
\end{tkzexample}
+\subsubsection{\tkzname{rotation with nodes}}
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+ \tkzDefPoint(0,0){O}
+ \tkzDefPoint(0:2){A}
+ \tkzDefPoint(40:2){B}
+ \tkzDefPoint(20:4){C}
+ \tkzDrawLine(O,A)
+ \tkzDefPointBy[rotation with nodes%
+ =center O from A to B](C)
+ \tkzGetPoint{D}
+\tkzDrawPoints(A,B,C,D)
+\tkzDrawCircle(O,A)
+\tkzLabelPoints(A,C,D)
+\tkzLabelPoints[above](B)
+\end{tikzpicture}
+\end{tkzexample}
+
\subsubsection{\tkzname{inversion }}
Inversion is the process of transforming points to a corresponding set of points known as their inverse points. Two points $P$ and $P'$ are said to be inverses with respect to an inversion circle having inversion center $O$ and inversion radius $k$ if $P'$ is the perpendicular foot of the altitude of $OQP$, where $Q$ is a point on the circle such that $OQ$ is perpendicular to $PQ$.\\
@@ -189,14 +209,31 @@ Some propositions :
\item Angles are preserved in inversion.
\end{itemize}
-Explanation
+Explanation:
+
+Directly
+(Center O power=$k^2={OA}^2=OP \times OP'$)
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoints{4/0/A,6/0/P,0/0/O}
+ \tkzDefCircle(O,A)
+ \tkzDefPointBy[inversion = center O through A](P)
+ \tkzGetPoint{P'}
+ \tkzDrawSegments(O,P)
+ \tkzDrawCircle(O,A)
+ \tkzLabelPoints[above right,font=\scriptsize](O,A,P,P')
+ \tkzDrawPoints(O,A,P,P')
+\end{tikzpicture}
+\end{tkzexample}
+
\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{4/0/A,6/0/P,0/0/O}
\tkzDefCircle(O,A)
\tkzDefLine[orthogonal=through P](O,P)
\tkzGetPoint{L}
- \tkzDefTangent[from = P](O,A) \tkzGetPoints{Q}{R}
+ \tkzDefTangent[from = P](O,A) \tkzGetPoints{R}{Q}
\tkzDefPointBy[projection=onto O--A](Q) \tkzGetPoint{P'}
\tkzDrawSegments(O,P O,A)
\tkzDrawSegments[new](O,P O,Q P,Q Q,P')
@@ -214,22 +251,6 @@ Explanation
\end{tikzpicture}
\end{tkzexample}
-Directly
-(Center O power=$k^2={OA}^2=OP \times OP'$)
-
-\begin{tkzexample}[latex=6cm,small]
-\begin{tikzpicture}[scale=.5]
- \tkzDefPoints{4/0/A,6/0/P,0/0/O}
- \tkzDefCircle(O,A)
- \tkzDefPointBy[inversion = center O through A](P)
- \tkzGetPoint{P'}
- \tkzDrawSegments(O,P)
- \tkzDrawCircle(O,A)
- \tkzLabelPoints[above right,font=\scriptsize](O,A,P,P')
- \tkzDrawPoints(O,A,P,P')
-\end{tikzpicture}
-\end{tkzexample}
-
\subsubsection{Inversion of lines}
\begin{tkzexample}[latex=6cm,small]
@@ -293,7 +314,7 @@ Directly
\tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D}
\tkzCalcLength(A,P)
\tkzGetLength{rAP}
-\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP]
+\tkzDefPointOnCircle[R= angle 190 center A radius \rAP]
\tkzGetPoint{M}
\tkzDefPointBy[inversion = center O through C](M)
\tkzGetPoint{M'}
@@ -368,7 +389,7 @@ The inversion circle itself, circles orthogonal to it, and lines through the inv
\tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D}
\tkzCalcLength(A,P)
\tkzGetLength{rAP}
-\tkzDefPointOnCircle[angle=190,center=A,radius=\rAP]
+\tkzDefPointOnCircle[R= angle 190 center A radius \rAP]
\tkzGetPoint{M}
\tkzDefPointBy[inversion = center O through C](M)
\tkzGetPoint{M'}
@@ -404,7 +425,7 @@ It's an inversion followed by a symmetry of center $O$
\end{tkzexample}
-
+\newpage
\subsection{Transformation of multiple points; \tkzcname{tkzDefPointsBy} }
Variant of the previous macro for defining multiple images.
You must give the names of the images as arguments, or indicate that the names of the images are formed from the names of the antecedents, leaving the argument empty.
@@ -446,6 +467,9 @@ options & & examples \\
\TOline{projection = onto \#1--\#2}{}{[projection=onto A--B](E)\{F\}}
\TOline{rotation = center \#1 angle \#2}{}{[rotation=center angle 30](E)\{F\}}
\TOline{rotation in rad = center \#1 angle \#2}{}{for instance angle pi/3}
+\TOline{rotation with nodes = center \#1 from \#2 to \#3}{}{[center O from A to B](E)\{F\}}
+\TOline{inversion = center \#1 through \#2}{}{[inversion = center O through A](E)\{F\}}
+\TOline{inversion negative = center \#1 through \#2}{}{...}
\bottomrule
\end{tabular}
@@ -469,32 +493,29 @@ The points are only defined and not drawn.
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Example of symmetry}
+\subsubsection{Example of symmetry: an oval}
\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=.4]
+\begin{tikzpicture}[scale=0.4]
\tkzDefPoint(-4,0){I}
\tkzDefPoint(4,0){J}
\tkzDefPoint(0,0){O}
\tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H}
\tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G}
- \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L)
- \tkzDrawLines[add=.5 and .5](I,J)
\tkzInterLL(I,K)(J,H) \tkzGetPoint{M}
\tkzInterLL(I,G)(J,L) \tkzGetPoint{N}
\tkzDefPointsBy[symmetry=center J](L,H){D,E}
\tkzDefPointsBy[symmetry=center I](G,K){C,F}
- \tkzDrawPoints(H,L,K,G,I,J,D,E,C,F,M,N)
- \tkzDrawCircle[R](O,4)
- \tkzDrawCircle[R](I,4)
- \tkzDrawCircle[R](J,4)
- \tkzDrawArc(N,D)(C)
- \tkzDrawArc(M,F)(E)
- \tkzDrawArc(J,E)(D)
- \tkzDrawArc(I,C)(F)
- \tkzLabelPoints[font=\scriptsize](H,L,K,G,I,J,%
- D,E,C,F,M,N)
-\end{tikzpicture}
-\end{tkzexample}
+ \begin{scope}[line style/.style = {very thin,teal}]
+ \tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L)
+ \tkzDrawLines[add=.5 and .5](I,J)
+ \tkzDrawCircles(O,I I,O J,O)
+ \tkzDrawArc[delta=0,orange](N,D)(C)
+ \tkzDrawArc[delta=0,orange](M,F)(E)
+ \tkzDrawArc[delta=0,orange](J,E)(D)
+ \tkzDrawArc[delta=0,orange](I,C)(F)
+ \end{scope}
+\end{tikzpicture}
+\end{tkzexample}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex
index 2949a6a262..bb2d2d9215 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointsSpc.tex
@@ -1,5 +1,6 @@
Now that the fixed points are defined, we can with their references using macros from the package or macros that you will create get new points. The calculations may not be apparent but they are usually done by the package.
-Vous aurez peut-être besoin d'utiliser certains constantes mathématiques, voici la liste des constantes définies par le package.
+You may need to use some mathematical constants, here is the list of constants defined by the package.
+You may need to use some mathematical constants, here is the list of constants defined by the package.
\section{Auxiliary tools}
\subsection{Constants}
@@ -71,7 +72,7 @@ arguments & default & example \\
\end{tabular}
\end{NewMacroBox}
-Parfois les résultats consistent en un point et une dimension. Vous obtenez le point avec \tkzcname{tkzGetPoint} et la dimension avec \tkzcname{tkzGetLength}.
+Sometimes the results consist of a point and a dimension. You get the point with \tkzcname{tkzGetPoint} and the dimension with \tkzcname{tkzGetLength}.
\begin{NewMacroBox}{tkzGetLength}{\marg{name of a macro}}%
@@ -119,6 +120,41 @@ Review the use of \tkzcname{tkzDefPoint}.
\end{tikzpicture}
\end{tkzexample}
+\subsection{Golden ratio}
+From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ such as $a > b > 0$; $a+b$ is to $a$ as $a$ is to $b$.
+
+$ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$
+
+
+One of the two solutions to the equation $x^2 - x - 1 = 0$
+is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$.
+
+\begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}%
+\begin{tabular}{lll}%
+arguments & default & example \\
+\midrule
+\TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}}
+\bottomrule
+\end{tabular}
+
+\medskip
+$AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$
+\end{NewMacroBox}
+
+\subsubsection{Use the golden ratio to divide a line segment}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/C}
+ \tkzDefMidPoint(A,C) \tkzGetPoint{I}
+ %\tkzDefPointWith[linear,K=\tkzInvPhi](A,C)
+ \tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
+ \tkzDrawSegments(A,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+It is also possible to use the following macro.
\subsection{Barycentric coordinates }
$pt_1$, $pt_2$, \dots, $pt_n$ being $n$ points, they define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin of the referential as the common endpoint. $\alpha_1$, $\alpha_2$,
@@ -143,7 +179,7 @@ You need at least two points. Result in \tkzname{tkzPointResult}.
\subsubsection{Using \tkzcname{tkzDefBarycentricPoint} with two points}
-In the following example, we obtain the barycentre of points $A$ and $B$ with coefficients $1$ and $2$, in other words:
+In the following example, we obtain the barycenter of points $A$ and $B$ with coefficients $1$ and $2$, in other words:
\[
\overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB}
\]
@@ -182,68 +218,111 @@ This time $M$ is simply the center of gravity of the triangle.
\end{tikzpicture}
\end{tkzexample}
-\subsection{Golden ration}
-From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ $a > b > 0$ $a+b$ is to $a$ as $a$ is to $b$.
-$ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$
+\subsection{Internal and external Similitude Center}
+The centers of the two homotheties in which two circles correspond are called external and internal centers of similitude. You can use \tkzcname{tkzDefIntSimilitudeCenter} and \tkzcname{tkzDefExtSimilitudeCenter} but the next macro is better.
+\begin{NewMacroBox}{tkzDefSimilitudeCenter}{\oarg{options}\parg{O,A}\parg{O',B} or \parg{O,r}\parg{O',r'}}%
-One of the two solutions to the equation $x^2 - x - 1 = 0$
-is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$.
+\begin{tabular}{lll}%
+arguments & example & explanation \\
+\midrule
+\TAline{\parg{pt1,pt2}\parg{pt3,pt4}}{$(O,A)(O',B)$} {$r=OA,r'=O'B$}
+\TAline{\parg{pt1,r1}\parg{pt2,r2}}{$(A,1)(B,2)$} {}
-\begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}%
+\end{tabular}
+
+\medskip
\begin{tabular}{lll}%
-arguments & default & example \\
+\toprule
+options & default & definition \\
\midrule
-\TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}}
-\bottomrule
+\TOline{ext}{ext}{external center}
+\TOline{int}{ext}{internal center}
+
+\TOline{node}{node}{Circles are defined by two points: center and point on the circle}
+\TOline{R}{node}{Circles are defined by the center and the radius}
\end{tabular}
+\end{NewMacroBox}
-\medskip
-$AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$
-\end{NewMacroBox}
+\subsubsection{Internal and external with \tkzname{node}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=.75]
+ \tkzDefPoints{0/0/O,4/-5/A,3/0/B,5/-5/C}
+\tkzDefSimilitudeCenter[int](O,B)(A,C) \tkzGetPoint{I}
+ \tkzDefSimilitudeCenter[ext](O,B)(A,C) \tkzGetPoint{J}
+ \tkzDefTangent[from = I](O,B) \tkzGetPoints{D}{E}
+ \tkzDefTangent[from = I](A,C) \tkzGetPoints{D'}{E'}
+ \tkzDefTangent[from = J](O,B) \tkzGetPoints{F}{G}
+ \tkzDefTangent[from = J](A,C)
+ \tkzGetPoints{F'}{G'}
+ \tkzDrawCircles(O,B A,C)
+ \tkzDrawSegments[add = .5 and .5,new](D,D' E,E')
+ \tkzDrawSegments[add= 0 and 0.25,new](J,F J,G)
+ \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
+ \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
+\end{tikzpicture}
+\end{tkzexample}
+
+You can use \tkzcname{tkzDefBarycentricPoint} to find a homothetic center
+
+|\tkzDefBarycentricPoint(O=\r,A=\R) \tkzGetPoint{I}| \\
+|\tkzDefBarycentricPoint(O={-\r},A=\R) \tkzGetPoint{J}|
-\subsection{Use the golden ratio to divide a line segment}
+\subsubsection{Example with \tkzname{node}}
\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
- \tkzDefPoints{0/0/A,6/0/C}
- \tkzDefMidPoint(A,C) \tkzGetPoint{I}
- %\tkzDefPointWith[linear,K=\tkzInvPhi](A,C)
+\begin{tikzpicture}[rotate=60,scale=.5]
+ \tkzDefPoints{0/0/A,5/0/C}
\tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
- \tkzDrawSegments(A,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B,C)
+ \tkzDefSimilitudeCenter(A,B)(C,B) \tkzGetPoint{J}
+ \tkzDefTangent[from = J](A,B) \tkzGetPoints{F}{G}
+ \tkzDefTangent[from = J](C,B) \tkzGetPoints{F'}{G'}
+ \tkzDrawCircles(A,B C,B)
+ \tkzDrawSegments[add= 0 and 0.25,cyan](J,F J,G)
+ \tkzDrawPoints(A,J,F,G,F',G')
+ \tkzLabelPoints[font=\scriptsize](A,J,F,G,F',G')
\end{tikzpicture}
\end{tkzexample}
+\newpage
+%<---------------------------------------------------------------------->
+\subsection{ Harmonic division}
+%<---------------------------------------------------------------------->
+\begin{NewMacroBox}{tkzDefHarmonic}{\oarg{options}\parg{pt1,pt2,pt3} or \parg{pt1,pt2}}%
+
+\begin{tabular}{lll}%
+options & default & definition \\
+\midrule
+\TOline{both}{both}{\parg{A,B} we look for C and D such that $(A,B;C,D) = -1$ }
+\TOline{ext}{both}{\parg{A,B,C} we look for D such that $(A,B;C,D) = -1$}
+\TOline{int}{both}{\parg{A,B,D} we look for C such that $(A,B;C,D) = -1$}
+\end{tabular}
+\end{NewMacroBox}
-\subsection{Internal Similitude Center}
-The centres of the two homotheties in which two circles correspond are called external and internal centres of similitude.
+\subsubsection{options \tkzname{ext} and \tkzname{int}}
+\begin{tkzexample}[vbox,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/B,4/0/C}
+ \tkzDefHarmonic[ext](A,B,C) \tkzGetPoint{J}
+ \tkzDefHarmonic[int](A,B,J) \tkzGetPoint{I}
+ \tkzDrawPoints(A,B,I,J)
+ \tkzDrawLine[add=.5 and 1](A,B)
+ \tkzLabelPoints(A,B,I,J)
+ \end{tikzpicture}
+\end{tkzexample}
+\subsubsection{option \tkzname{both} }
+\tkzname{both} is the default option
\begin{tkzexample}[vbox,small]
-\begin{tikzpicture}[rotate=30]
- \tkzDefPoints{0/0/O,4/-5/A}
- \tkzDefPoints{3/0/x,5/-5/y}
- \pgfmathsetmacro\R{3}\pgfmathsetmacro\r{1}
- \tkzDefIntSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{I}
- \tkzDefExtSimilitudeCenter[R](O,\R)(A,\r) \tkzGetPoint{J}
- \tkzDefTangent[from with R= I](O,3) \tkzGetPoints{D}{E}
- \tkzDefTangent[from with R= I](A,1) \tkzGetPoints{D'}{E'}
- \tkzDefTangent[from with R= J](O,3) \tkzGetPoints{F}{G}
- \tkzDefTangent[from with R= J](A,1) \tkzGetPoints{F'}{G'}
- \tkzDrawCircles(O,x A,y) \tkzDrawCircles[R](O,3 A,1)
- \tkzDrawSegments[add = .5 and .5,new](D,D' E,E')
- \tkzDrawSegments[add= 0 and 0.25,new](J,F J,G)
- \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
- \tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,6/0/B}
+ \tkzDefHarmonic(A,B,{1/2})\tkzGetPoints{I}{J}
+ \tkzDrawPoints(A,B,I,J)
+ \tkzDrawLine[add=1 and .5](A,B)
+ \tkzLabelPoints(A,B,I,J)
\end{tikzpicture}
\end{tkzexample}
-You can \tkzcname{tkzDefBarycentricPoint} to find a homothetic center
-
-|\tkzDefBarycentricPoint(O=\r,A=\R) \tkzGetPoint{I}| \\
-|\tkzDefBarycentricPoint(O={-\r},A=\R) \tkzGetPoint{J}|
-
%<---------------------------------------------------------------------->
\subsection{ Equidistant points}
%<---------------------------------------------------------------------->
@@ -283,6 +362,95 @@ This macro makes it possible to obtain two points on a straight line equidistant
\end{tkzexample}
+\section{Point on line or circle}
+\subsection{Point on a line}
+
+\begin{NewMacroBox}{tkzDefPointOnLine}{\oarg{local options}\parg{A,B}}%
+\begin{tabular}{lll}%
+arguments & default & definition \\
+\midrule
+\TAline{pt1,pt2} {no default} {Two points to define a line}
+\bottomrule
+\end{tabular}
+
+\medskip
+\begin{tabular}{lll}%
+options & default & definition \\
+\midrule
+\TOline{pos=nb} {}{nb is a decimal }
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Use of option \tkzname{pos}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,3/0/B}
+\tkzDefPointOnLine[pos=1.2](A,B)\tkzGetPoint{P}
+\tkzDefPointOnLine[pos=-0.2](A,B)\tkzGetPoint{R}
+\tkzDefPointOnLine[pos=0.5](A,B) \tkzGetPoint{S}
+\tkzDrawLine[new](A,B)
+\tkzDrawPoints(A,B,P)
+\tkzLabelPoints(A,B)
+\tkzLabelPoint[above](P){pos=$1.2$}
+\tkzLabelPoint[above](R){pos=$-.2$}
+\tkzLabelPoint[above](S){pos=$.5$}
+\tkzDrawPoints(A,B,P,R,S)
+\tkzLabelPoints(A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Point on a circle}
+
+\begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}%
+\begin{tabular}{lll}%
+options & default & examples definition \\
+\midrule
+\TOline{through} {}{through = angle 30 center K1 point B]}
+\TOline{R} {}{R = angle 30 center K1 radius \tkzcname{rAp}}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Altshiller's Theorem}
+ The two lines joining the points of intersection of two orthogonal circles to a point on one of the circles met the other circle in two diametricaly oposite points. Altshiller p 176
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.4]
+\tkzDefPoints{0/0/P,5/0/Q,3/2/I}
+\tkzDefCircleBy[orthogonal from=P](Q,I)
+\tkzGetFirstPoint{E}
+\tkzDrawCircles(P,E Q,E)
+\tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F}
+\tkzDefPointOnCircle[through = angle 80 center P point E]
+ \tkzGetPoint{A}
+\tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C}
+\tkzInterLL(A,F)(C,Q) \tkzGetPoint{D}
+\tkzDrawLines[add=0 and .75](P,Q)
+\tkzDrawLines[add=0 and 2](A,E)
+\tkzDrawSegments(P,E E,F F,C A,F C,D)
+\tkzDrawPoints(P,Q,E,F,A,C,D)
+\tkzLabelPoints(P,Q,F,C,D)
+\tkzLabelPoints[above](E,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Use of \tkzcname{tkzDefPointOnCircle}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,4/0/B,0.8/3/C}
+\tkzDefPointOnCircle[R = angle 90 center B radius 1]
+\tkzGetPoint{I}
+\tkzDefCircle[circum](A,B,C)
+\tkzGetPoint{G} \tkzGetLength{rG}
+\tkzDefPointOnCircle[R = angle 30 center G radius \rG]
+\tkzGetPoint{J}
+\tkzDrawCircle[R,teal](B,1)
+\tkzDrawCircle(G,J)
+\tkzDrawPoints(A,B,C,G,I,J)
+\tkzAutoLabelPoints[center=G](A,B,C,J)
+\tkzLabelPoints[below](G,I)
+\end{tikzpicture}
+\end{tkzexample}
+
\newpage
\section{Special points relating to a triangle}
@@ -372,10 +540,10 @@ options & default & definition \\
\subsubsection{Option \tkzname{in}}
In geometry, the incircle or inscribed circle of a triangle is the largest circle contained in the triangle; it touches (is tangent to) the three sides. The center of the incircle is a triangle center called the triangle's incenter.
The center of the incircle, called the incenter, can be found as the intersection of the three internal angle bisectors. The center of an excircle is the intersection of the internal bisector of one angle (at vertex $A$, for example) and the external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex $A$, or the excenter of $A$. Because the internal bisector of an angle is perpendicular to its external bisector, it follows that the center of the incircle together with the three excircle centers form an orthocentric system.\\
-(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle})
+(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia})
\medskip
- We get the centre of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
+ We get the center of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
\begin{tkzexample}[latex=8cm,small]
\begin{tikzpicture}
@@ -392,10 +560,10 @@ The center of the incircle, called the incenter, can be found as the intersectio
\subsubsection{Option \tkzname{ex}}
An excircle or escribed circle of the triangle is a circle lying outside the triangle, tangent to one of its sides and tangent to the extensions of the other two. Every triangle has three distinct excircles, each tangent to one of the triangle's sides.\\
-(\url{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle})
+(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia})
- We get the centre of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
+ We get the center of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.5]
@@ -570,7 +738,7 @@ The mittenpunkt (also called the middlespoint) of a triangle $ABC$ is the symmed
\end{tikzpicture}
\end{tkzexample}
-\subsubsection{Example : relation between \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}}
+\subsubsection{Relation between \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}}
The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinear, with GeG/GM=2.
@@ -592,172 +760,5 @@ The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinea
\end{tikzpicture}
\end{tkzexample}
-\newpage
-\section{Projection of excenters}
-
-\begin{NewMacroBox}{tkzDefProjExcenter}{\oarg{local options}\parg{A,B,C}\parg{a,b,c}\marg{X,Y,Z}}%
-Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro\\ \tkzcname{tkzDefProjExcenter[name=J](A,B,C)(a,b,c)\{Y,Z,X\}}.
-
-\medskip
-\begin{tabular}{lll}%
-\toprule
-options & default & definition \\
-\midrule
-\TOline{name} {no defaut}{used to name the vertices}
-\bottomrule
-\end{tabular}
-
-\begin{tabular}{lll}%
-arguments & default & definition \\
-\midrule
-\TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight}
-\bottomrule
-\end{tabular}
-
-\medskip
-\end{NewMacroBox}
-
-\subsubsection{Excircles}
-\begin{tikzpicture}[scale=.5]
-\tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
-\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
-\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
-\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
-
-\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T}
-\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
-\tkzDrawCircle(I,T)
-\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
-\tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C)
-\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
- Jb,Xb Jb,Yb Jb,Zb
- Jc,Xc Jc,Yc Jc,Zc
- I,Ia I,Ib I,Ic)
-\tkzMarkRightAngles[size=.2,fill=gray!15](%
- Ja,Za,B
- Ja,Xa,B
- Ja,Ya,C
- Jb,Yb,C
- Jb,Zb,B
- Jb,Xb,C
- Jc,Yc,A
- Jc,Zc,B
- Jc,Xc,C
- I,Ia,B
- I,Ib,C
- I,Ic,A)
-\tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
-\tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I)
-\tkzLabelPoints[above right](Za,Zb,Zc)
-\tkzLabelPoints[below](Ia,Ib,Ic)
-\end{tikzpicture}
-
-\begin{tkzexample}[code only,small]
- \begin{tikzpicture}[scale=.5]
- \tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
- \tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
- \tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
- \tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
-
- \tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T}
- \tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
- \tkzDrawCircle(I,T)
- \tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
- \tkzDrawLines[add=2 and 2,line width=1pt](A,C A,B B,C)
- \tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
- Jb,Xb Jb,Yb Jb,Zb
- Jc,Xc Jc,Yc Jc,Zc
- I,Ia I,Ib I,Ic)
- \tkzMarkRightAngles[size=.2,fill=gray!15](%
- Ja,Za,B
- Ja,Xa,B
- Ja,Ya,C
- Jb,Yb,C
- Jb,Zb,B
- Jb,Xb,C
- Jc,Yc,A
- Jc,Zc,B
- Jc,Xc,C
- I,Ia,B
- I,Ib,C
- I,Ic,A)
- \tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
- \tkzLabelPoints(Xb,Yc,A,B,C,Xa,Xc,Ya,Yb,Ja,Jb,Jc,I)
- \tkzLabelPoints[above right](Za,Zb,Zc)
- \tkzLabelPoints[below](Ia,Ib,Ic)
- \end{tikzpicture}
-\end{tkzexample}
-
-
-\section{Point on line or circle}
-\subsection{Point on a line}
-
-\begin{NewMacroBox}{tkzDefPointOnLine}{\oarg{local options}\parg{A,B}}%
-\begin{tabular}{lll}%
-arguments & default & definition \\
-\midrule
-\TAline{pt1,pt2} {no default} {Two points to define a line}
-\bottomrule
-\end{tabular}
-
-\medskip
-\begin{tabular}{lll}%
-options & default & definition \\
-\midrule
-\TOline{pos=nb} {}{nb is a decimal }
-\end{tabular}
-\end{NewMacroBox}
-
-\subsubsection{Use of option \tkzname{pos}}
-\begin{tkzexample}[latex=9cm,small]
- \begin{tikzpicture}
- \tkzDefPoints{0/0/A,4/0/B}
- \tkzDefPointOnLine[pos=1.2](A,B)
- \tkzGetPoint{P}
- \tkzDefPointOnLine[pos=-0.2](A,B)
- \tkzGetPoint{R}
- \tkzDefPointOnLine[pos=0.5](A,B)
- \tkzGetPoint{S}
- \tkzDrawLine[new](A,B)
- \tkzDrawPoints(A,B,P)
- \tkzLabelPoints(A,B)
- \tkzLabelPoint[above](P){pos=$1.2$}
- \tkzLabelPoint[above](R){pos=$-.2$}
- \tkzLabelPoint[above](S){pos=$.5$}
- \tkzDrawPoints(A,B,P,R,S)
- \tkzLabelPoints(A,B)
- \end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Point on a circle}
-
-\begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}%
-\begin{tabular}{lll}%
-options & default & definition \\
-\midrule
-\TOline{angle} {0}{angle formed with the abscissa axis}
-\TOline{center} {|tkzPointResult|}{circle center required}
-\TOline{radius} {|\BS tkzLengthResult|}{radius circle}
-\end{tabular}
-\end{NewMacroBox}
-
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
-\tkzDefPoints{0/0/A,4/0/B,0.8/3/C}
-\tkzDefPointOnCircle[angle=90,center=B,radius=1]
-\tkzGetPoint{I}
-\tkzDefCircle[circum](A,B,C)
-\tkzGetPoint{G} \tkzGetLength{rG}
-\tkzDefPointOnCircle[angle=30,center=G,radius=\rG]
-\tkzGetPoint{J}
-\tkzDrawCircle[R,teal](B,1)
-\tkzDrawPoint[teal](I)
-\tkzDrawPoints(A,B,C)
-\tkzDrawCircle(G,J)
-\tkzDrawPoints(G,J)
-\tkzDrawPoint[red](J)
-\tkzLabelPoints(G,J)
-\end{tikzpicture}
-\end{tkzexample}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex
index b157cabef7..51abb0b7e1 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-pointwith.tex
@@ -16,7 +16,7 @@ In the general case this distance is the distance between the 2 points given as
\begin{tabular}{lll}%
\toprule
-arguments & definition & explication \\
+arguments & definition & explanation \\
\midrule
\TAline{(pt1,pt2)} {point couple}{the result is a point in \tkzname{tkzPointResult} } \\
@@ -28,7 +28,7 @@ In what follows, it is assumed that the point is recovered by \tkzNameMacro{tkzG
\begin{tabular}{lll}%
\toprule
-options & example & explication \\
+options & example & explanation \\
\midrule
\TOline{orthogonal}{[orthogonal](A,B)}{$AC=AB$ and $\overrightarrow{AC} \perp \overrightarrow{AB}$}
\TOline{orthogonal normed}{[orthogonal normed](A,B)}{$AC=1$ and $\overrightarrow{AC} \perp \overrightarrow{AB}$}
@@ -165,7 +165,8 @@ OK=OI since $\lvert K \rvert=1$ then OI=OJ=OK.
\tkzDrawLines(A,B B,C A,F)
\tkzCompass(B,F)
\tkzDrawPoints(A,B,C,F,M,E)
- \tkzLabelPoints(A,B,C,F,M,E)
+ \tkzLabelPoints(A,B,C,F,M)
+ \tkzLabelPoints[above](E)
\end{tikzpicture}
\end{tkzexample}
@@ -258,7 +259,7 @@ Allows to obtain the coordinates of a vector.
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex
index e27221a916..24df108ab1 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-polygons.tex
@@ -9,7 +9,7 @@ We can rename them with \tkzcname{tkzGetPoints}.
\medskip
\begin{tabular}{lll}%
\toprule
-Arguments & example & explication \\
+Arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefSquare}\parg{A,B}}{The square is defined in the direct direction.}
\end{tabular}
@@ -77,7 +77,7 @@ We can rename them with \tkzcname{tkzGetPoints}.
\medskip
\begin{tabular}{lll}%
\toprule
-Arguments & example & explication \\
+Arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefRectangle}\parg{A,B}}{The rectangle is defined in the direct direction.}
\end{tabular}
@@ -134,7 +134,7 @@ The macro determines a rectangle whose size ratio is the number $\Phi$.\\
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\parg{A,B}}{If C and D are created then $AB/BC=\Phi$.}
\end{tabular}
@@ -188,7 +188,7 @@ From the number of sides, depending on the options, this macro determines a regu
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{\parg{pt1,pt2}}{\parg{O,A}}{with option "center", $O$ is the center of the polygon.}
\TAline{\parg{pt1,pt2}}{\parg{A,B}}{with option "side", $[AB]$ is a side.}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
index 56af228c28..e4530e276a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
@@ -120,13 +120,17 @@ How to draw points :
\subsubsection{Complete code with \pkg{tkz-euclide}}
-\colorlet{input}{red!80!black}
-\colorlet{output}{red!70!black}
-\colorlet{triangle}{orange!40}
+We need to define colors
+|\colorlet{input}{red!80!black} |\\
+|\colorlet{output}{red!70!black}|\\
+|\colorlet{triangle}{orange!40} |
\begin{tkzexample}[vbox,small]
+ \colorlet{input}{red!80!black}
+ \colorlet{output}{red!70!black}
+ \colorlet{triangle}{orange!40}
\begin{tikzpicture}[scale=1.25,thick,help lines/.style={thin,draw=black!50}]
\tkzDefPoint(0,0){A}
\tkzDefPoint(1.25+rand(),0.25+rand()){B}
@@ -226,38 +230,39 @@ Like the intersection of two circles, it's easy to find the intersection of a li
\medskip
There are no more difficulties. Here the final code with some simplications.
-Nous tracons le cercle $\mathcal{K}$ de centre $D$ et passant par $G$. Il coupe la droite $AD$ au point $L$. $AL = BC$.
+We draw the circle $\mathcal{K}$ with center $D$ and passing through $G$. It intersects the line $AD$ at point $L$. $AL = BC$.
\hspace*{1cm}\vbox{\red | \tkzDrawCircle(D,G)|}
\hspace*{1cm}\vbox{\red | \tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}|}
-\begin{tkzexample}[vbox,small]
- \begin{tikzpicture}[scale=2]
- \tkzDefPoint(0,0){A}
- \tkzDefPoint(0.75,0.25){B}
- \tkzDefPoint(1,1.5){C}
- \tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D}
- \tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G}
- \tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}
- \tkzDrawCircles(B,C D,G)
- \tkzDrawLines[add=0 and 2](D,A D,B)
- \tkzDrawSegment(A,B)
- \tkzDrawSegments[red](A,L B,C)
- \tkzDrawPoints[red](D,L,G)
- \tkzDrawPoints[fill=gray](A,B,C)
- \tkzLabelPoints[left,red](A)
- \tkzLabelPoints[below right,red](L)
- \tkzLabelCircle[above left=6pt](B,G)(180){$\mathcal{H}$}
- \tkzLabelPoints[above left](D,G)
- \tkzLabelPoints[above,red](C)
- \tkzLabelPoints[right,red](B)
- \tkzLabelCircle[above left=6pt](D,G)(180){$\mathcal{K}$}
- \end{tikzpicture}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1.5]
+\tkzDefPoint(0,0){A}
+\tkzDefPoint(0.75,0.25){B}
+\tkzDefPoint(1,1.5){C}
+\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D}
+\tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G}
+\tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}
+\tkzDrawCircles(B,C D,G)
+\tkzDrawLines[add=0 and 2](D,A D,B)
+\tkzDrawSegment(A,B)
+\tkzDrawSegments[red](A,L B,C)
+\tkzDrawPoints[red](D,L,G)
+\tkzDrawPoints[fill=gray](A,B,C)
+\tkzLabelPoints[left,red](A)
+\tkzLabelPoints[below right,red](L)
+\tkzLabelCircle[above=12pt](B,G)(90){$\mathcal{H}$}
+\tkzLabelPoints[above left](D)
+\tkzLabelPoints[below](G)
+\tkzLabelPoints[above,red](C)
+\tkzLabelPoints[right,red](B)
+\tkzLabelCircle[above=12pt](D,G)(90){$\mathcal{K}$}
+\end{tikzpicture}
\end{tkzexample}
\subsection{\tkzname{\tkznameofpack 4} vs \tkzname{\tkznameofpack 3}}
-Now I am no longer a Mathematics teacher, and I only spend a few hours studying geometry. I wanted to avoid multiple complications by trying to make \tkzname{tkz-euclide} independent of \tkzname{tkz-base}. Thus was born \tkzname{\tkznameofpack} 4. The latter is a simplified version of its predecessor. The macros of \tkzname{tkz-euclide 3} have been retained. The unit is now \tkzname{cm}. Si vous avez besoin de certaines macros de \tkzname{tkz-base}, il vous faudra sans doute utiliser la macro \tkzcname{tkzInit}.
+Now I am no longer a Mathematics teacher, and I only spend a few hours studying geometry. I wanted to avoid multiple complications by trying to make \tkzname{tkz-euclide} independent of \tkzname{tkz-base}. Thus was born \tkzname{\tkznameofpack} 4. The latter is a simplified version of its predecessor. The macros of \tkzname{tkz-euclide 3} have been retained. The unit is now \tkzname{cm}. If you need some macros from \tkzname{tkz-base}, you may need to use the \tkzcname{tkzInit}.
\subsection{How to use the \tkzname{\tkznameofpack} package ?}
\subsubsection{Let's look at a classic example}
@@ -569,7 +574,7 @@ $IB=a$, $AI=1$
\tkzDefPointBy[homothety=center A ratio 10 ](I) \tkzGetPoint{B}
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H}
- \tkzInterLC(I,H)(M,B) \tkzGetSecondPoint{C}
+ \tkzInterLC(I,H)(M,B) \tkzGetFirstPoint{C}
\tkzDrawSegment[style=orange](I,C)
\tkzDrawArc(M,B)(A)
\tkzDrawSegment[dim={$1$,-16pt,}](A,I)
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex
index 9427fd8da3..ac1efde3ea 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-rnd.tex
@@ -29,151 +29,49 @@ options & default & definition \\
\end{tabular}
\end{NewMacroBox}
-\subsection{Random point in a rectangle}
+\subsubsection{Random point in a rectangle}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5]\tkzGrid
- \tkzDefPoints{0/0/A,2/2/B,5/5/C}
- \tkzDefRandPointOn[rectangle = A and B]
- \tkzGetPoint{a}
- \tkzDefRandPointOn[rectangle = B and C]
- \tkzGetPoint{d}
- \tkzDrawLine(a,d)
- \tkzDrawPoints(A,B,C,a,d)
- \tkzLabelPoints(A,B,C,a,d)
+ \tkzDefPoints{0/0/A,5/3/C}
+ \tkzDefRandPointOn[rectangle = A and C]
+ \tkzGetPoint{E}
+ \tkzDefRectangle(A,C)\tkzGetPoints{B}{D}
+ \tkzDrawPolygon[red](A,...,D)
+ \tkzDrawPoints(A,...,E)
+ \tkzLabelPoints(A,...,E)
\end{tikzpicture}
\end{tkzexample}
-\subsection{Random point on a segment}
+\subsubsection{Random point on a segment or a line}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
- \tkzDefRandPointOn[segment = A--B]\tkzGetPoint{a}
- \tkzDefRandPointOn[segment = C--D]\tkzGetPoint{d}
- \tkzDrawPoints(A,B,C,D,a,d)
- \tkzLabelPoints(A,B,C,D,a,d)
-\end{tikzpicture}
-\end{tkzexample}
-
-\subsection{Random point on a straight line}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}
- \tkzInit[xmax=5,ymax=5] \tkzGrid
- \tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
- \tkzDefRandPointOn[line = A--B]\tkzGetPoint{E}
- \tkzDefRandPointOn[line = C--D]\tkzGetPoint{F}
- \tkzDrawPoints(A,...,F)
- \tkzLabelPoints(A,...,F)
+ \tkzDefPoints{0/0/A,5/2/C}
+ \tkzDefRandPointOn[segment = A--C]\tkzGetPoint{B}
+ \tkzDrawLine(A,C)
+ \tkzDrawPoints(A,C) \tkzDrawPoint[red](B)
+ \tkzLabelPoints(A,C) \tkzLabelPoints[red](B)
\end{tikzpicture}
\end{tkzexample}
-
-
-\subsubsection{Random point on a circle}
+\subsubsection{Random point on a circle or a disk}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
-\tkzInit[ymin=-1,xmax=6,ymax=5] \tkzGrid
\tkzDefPoints{3/2/A,1/1/B}
\tkzCalcLength(A,B) \tkzGetLength{rAB}
\tkzDefRandPointOn[circle = center A radius \rAB]
-\tkzGetPoint{a}
+\tkzGetPoint{C}
\tkzDefRandPointOn[circle through= center A through B]
-\tkzGetPoint{b}
+\tkzGetPoint{D}
\tkzDefRandPointOn[disk through=center A through B]
-\tkzGetPoint{c}
+\tkzGetPoint{E}
\tkzDrawCircle[R](A,\rAB)
-\tkzDrawSegment(A,a)
-\tkzDrawPoints(A,B,a,b,c)
-\tkzLabelPoints(A,B,a,b,c)
+\tkzDrawPoints(A,B)
+\tkzLabelPoints(A,B)
+\tkzDrawPoints[red](C,D,E)
+\tkzLabelPoints[red](C,D,E)
\end{tikzpicture}
\end{tkzexample}
-
-\subsubsection{Random example and circle of Apollonius}
-\begin{tkzexample}[latex=7cm,small]
-\begin{tikzpicture}[scale=1]
- \tkzDefPoints{0/0/A,3/0/B}
- \def\coeffK{2}
- \tkzApolloniusCenter[K=\coeffK](A,B)
- \tkzGetPoint{P}
- \tkzDefApolloniusPoint[K=\coeffK](A,B)
- \tkzGetPoint{M}
- \tkzDefRandPointOn[circle through=%
- center P through M]
- \tkzGetPoint{N}
- \tkzDefApolloniusRadius[K=\coeffK](A,B)
- \tkzDrawCircle[R,color = blue!50!black,
- fill=blue!20,
- opacity=.4](tkzPointResult,\tkzLengthResult)
- \tkzLabelCircle[R,draw,fill=green!10,%
- text width=3cm,%
- text centered](P,\tkzLengthResult+1)(-120)%
- { $MA/MB=\coeffK$\\$NA/NB=\coeffK$}
- \tkzDrawPoints(A,B,P,M,N)
- \tkzLabelPoints(A,B,P,M,N)
- \tkzDrawSegments[red](N,A N,B)
- \tkzDrawPoints(A,B)
- \tkzDrawSegments[red](A,B)
-\end{tikzpicture}
-\end{tkzexample}
-
-
-
-\subsection{Middle of a compass segment}
- To conclude this section, here is a more complex example. It involves determining the middle of a segment, using only a compass.
-
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefRandPointOn[circle= center A radius 4]
- \tkzGetPoint{B}
- \tkzDefPointBy[rotation= center A angle 180](B)
- \tkzGetPoint{C}
- \tkzInterCC[R](A,4)(B,4)
- \tkzGetPoints{I}{I'}
- \tkzInterCC[R](A,4)(I,4)
- \tkzGetPoints{J}{B}
- \tkzInterCC(B,A)(C,B)
- \tkzGetPoints{D}{E}
- \tkzInterCC(D,B)(E,B)
- \tkzGetPoints{M}{M'}
- \tkzSetUpArc[color=teal,style=dashed,delta=10]
- \tkzDrawArc(C,D)(E)
- \tkzDrawArc(B,E)(D)
- \tkzDrawCircle[color=teal,line width=.2pt](A,B)
- \tkzDrawArc(D,B)(M)
- \tkzDrawArc(E,M)(B)
- \tkzCompasss[style=solid](B,I I,J J,C)
- \tkzDrawPoints(A,B,C,D,E,M)
- \tkzLabelPoints(A,B,M)
- \end{tikzpicture}
-
-\begin{tkzexample}[code only,small]
-\begin{tikzpicture}
- \tkzDefPoint(0,0){A}
- \tkzDefRandPointOn[circle= center A radius 4]
- \tkzGetPoint{B}
- \tkzDefPointBy[rotation= center A angle 180](B)
- \tkzGetPoint{C}
- \tkzInterCC[R](A,4)(B,4)
- \tkzGetPoints{I}{I'}
- \tkzInterCC[R](A,4)(I,4)
- \tkzGetPoints{J}{B}
- \tkzInterCC(B,A)(C,B)
- \tkzGetPoints{D}{E}
- \tkzInterCC(D,B)(E,B)
- \tkzGetPoints{M}{M'}
- \tkzSetUpArc[ccolor=teal,style=dashed,delta=10]
- \tkzDrawArc(C,D)(E)
- \tkzDrawArc(B,E)(D)
- \tkzDrawCircle[color=teal,line width=.2pt](A,B)
- \tkzDrawArc(D,B)(M)
- \tkzDrawArc(E,M)(B)
- \tkzCompasss[color=orange,style=solid](B,I I,J J,C)
- \tkzDrawPoints(A,B,C,D,E,M)
- \tkzLabelPoints(A,B,M)
- \end{tikzpicture}
- \end{tkzexample}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex
index d28226ee97..c7afa131bf 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-styles.tex
@@ -50,7 +50,7 @@ options & default & definition \\
\subsubsection{Global style or local style}
First of all here is a figure created with the styles of my documentation, then the style of the points is modified within the environment \tkzNameEnv{tikzspicture}.
-You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, If you place this macro in your preamble or before your first figure then the point style will be valid for all figures in your document. Il sera possible d'utiliser un autre style locallement en utilisant cette commande au sein d'un environnement \tkzNameEnv{tikzpicture}.\\ Let's look at this possibility.
+You can use the macro \tkzcname{tkzSetUpPoint} globally or locally, If you place this macro in your preamble or before your first figure then the point style will be valid for all figures in your document. It will be possible to use another style locally by using this command within an environment \tkzNameEnv{tikzpicture}.\\ Let's look at this possibility.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
@@ -330,4 +330,176 @@ You can set your own style with \tkzcname{tkzSetUpStyle}
\end{tikzpicture}
\end{tkzexample}
+\section{How to use \tkzname{arrows}}
+
+In some countries, arrows are used to indicate the parallelism of lines,
+to represent half-lines or the sides of an angle (rays).
+
+Here are some examples of how to place these arrows.
+\tkzname{ tkz-euclide} loads a library called \tkzname{arrows.meta}.
+
+|\usetikzlibrary{arrows.meta}|
+
+This library is used to produce different styles of arrow heads. The next examples use some of them.
+
+\subsection{Arrows at endpoints on segment, ray or line}
+\tkzname{Stealth}, \tkzname{Triangle}, \tkzname{To}, \tkzname{Latex} and \dots which can be combined with \tkzname{reversed}. That's easy to place an arrow at one or two endpoints.
+
+\begin{enumerate}
+\item \tkzname{Triangle} and \tkzname{Ray}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[-Triangle](A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{Stealth} and \tkzname{Segment}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[Stealth-Stealth](A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{Latex} and \tkzname{Line}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawLine[red,Latex-Latex](A,B)
+ \tkzDrawPoints(A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{To} and \tkzname{Segment}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[To-To](A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{Latex} and \tkzname{Segment}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[Latex-Latex](A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{Latex} and \tkzname{Ray}
+ \begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[Latex-](A,B)
+ \end{tikzpicture}
+ \end{tkzexample}
+\item \tkzname{Latex} and \tkzname{Several rays}
+ \begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B,5/-2/C}
+ \tkzDrawSegments[-Latex](A,B A,C)
+\end{tikzpicture}
+\end{tkzexample}
+\end{enumerate}
+
+\subsubsection{Scaling an arrow head}
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDrawSegment[{Latex[scale=2]}-{Latex[scale=2]}](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Using vector style}
+|\tikzset{vector style/.style={>=Latex,->}}|
+
+You can redefine this style.
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B}
+\tkzDrawSegment[vector style](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Arrows on middle point of a line segment}
+
+Arrows on lines are used to indicate that those lines are parallel. It depends on the country, in France we prefer to indicate outside the figure that $(A,B) \parallel (D,C)$. The code is an adaptation of an answer by \tkzname{muzimuzhi Z} on the site \href{https://tex.stackexchange.com/questions/632596/how-to-manage-argument-pattern-keys-and-subways}{tex.stackexchange.com}.
+
+\medskip
+ Syntax: \\
+
+ \begin{itemize}
+\item |tkz arrow| (\tkzname{Latex} by default)
+\item |tkz arrow=<arrow end tip>|
+\item |tkz arrow=<arrow end tip> at <pos> (<pos> = .5 by default)|
+\item |tkz arrow={<arrow end tip>[<arrow options>] at <pos>}| option possible \tkzname{scale}
+ \end{itemize}
+
+Example usages: \\
+
+|\tkzDrawSegment[tkz arrow=Stealth] (A,B)|\\
+|\tkzDrawSegment[tkz arrow={To[scale=3] at .4}](A,B)|\\
+|\tkzDrawSegment[tkz arrow={Latex[scale=5,blue] at .6}](A,B)|
+
+\subsubsection{In a parallelogram}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/0/B,4/2/C}
+ \tkzDefParallelogram(A,B,C)
+ \tkzGetPoint{D}
+ \tkzDrawSegments[tkz arrow](A,B D,C)
+ \tkzDrawSegments(B,C D,A)
+ \tkzLabelPoints(A,B)
+ \tkzLabelPoints[above right](C,D)
+ \tkzDrawPoints(A,...,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{A line parallel to another one}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/0/B,1/2/C}
+ \tkzDefPointWith[colinear= at C](A,B)
+ \tkzGetPoint{D}
+ \tkzDrawSegments[tkz arrow=Triangle](A,B C,D)
+ \tkzLabelPoints(A,B,C)
+ \tkzDrawPoints(A,...,C)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Arrow on a circle}
+It is possible to place an arrow on the first quarter of a circle. A rotation allows you to move the arrow.
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+\tkzDefPoints{0/0/A,3/0/B}
+\begin{scope}[rotate=150]
+ \tkzDrawCircle[tkz arrow={Latex[scale=2,red]}](A,B)
+\end{scope}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Arrows on all segments of a polygon}
+Some users of my package have asked me to be able to place an arrow on each side of a polygon. I used a style proposed by Paul Gaborit on the site
+\href{https://tex.stackexchange.com/questions/3161/tikz-how-to-draw-an-arrow-in-the-middle-of-the-line}{tex.stackexchange.com}.
+
+|\tikzset{tkz arrows/.style=|\\
+|{postaction={on each path={tkz arrow={Latex[scale=2,color=black]}}}}}|
+
+You can change this style. With \tkzname{tkz arrows} you can an arrow on each segment of a polygon
+
+\subsubsection{Arrow on each segment with \tkzname{tkz arrows} }
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/0/B}
+ \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
+ \tkzDrawPolygon[tkz arrows](A,...,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Using \tkzname{tkz arrows} with a circle}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,3/0/B}
+ \tkzDrawCircle[tkz arrows](A,B)
+\end{tikzpicture}
+\end{tkzexample}
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
index d0d36fea4e..dbc6ea7d20 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-tools.tex
@@ -9,7 +9,7 @@ This involves creating a segment on a given half-line of the same length as a gi
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{(pt1,pt2)(pt3,pt4)\{pt5\}} {\tkzcname{tkzDuplicateSegment}(A,B)(E,F)\{C\}}{AC=EF and $C \in [AB)$} \\
@@ -90,7 +90,7 @@ defines the macro \tkzcname{dAB}.
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzCalcLength}[pt](A,B)}{\tkzcname{dAB} gives $AB$ in pt}
\bottomrule
@@ -153,15 +153,15 @@ The macro \tkzcname{tkzDefCircle[radius](A,B)} defines the radius that we retrie
\subsection{Transformation from pt to cm or cm to pt}
Not sure if this is necessary and it is only a division by 28.45274 and a multiplication by the same number. The macros are:
-\begin{NewMacroBox}{tkzpttocm}{\parg{nombre}\marg{name of macro}}%
+\begin{NewMacroBox}{tkzpttocm}{\parg{number}\marg{name of macro}}%
The result is stored in a macro.
\medskip
\begin{tabular}{lll}%
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
-\TAline{(nombre){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} donne un nombre de tkzname{cm}}
+\TAline{(number)\{name of macro\}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} gives a number of tkzname{cm}}
\bottomrule
\end{tabular}
@@ -170,15 +170,15 @@ You'll have to use \tkzcname{len} along with \tkzname{cm}.
\end{NewMacroBox}
\subsection{Change of unit}
-\begin{NewMacroBox}{tkzcmtopt}{\parg{nombre}\marg{name of macro}}%
+\begin{NewMacroBox}{tkzcmtopt}{\parg{number}\marg{name of macro}}%
The result is stored in a macro.
\medskip
\begin{tabular}{lll}
\toprule
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
-\TAline{(nombre)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} longueur en \tkzname{pts}}
+\TAline{(number)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} length in \tkzname{pts}}
\bottomrule
\end{tabular}
@@ -197,7 +197,7 @@ arguments & example & explication \\
%<--------------------------------------------------------------------------–>
\begin{NewMacroBox}{tkzGetPointCoord}{\parg{$A$}\marg{name of macro}}%
\begin{tabular}{lll}%
-arguments & example & explication \\
+arguments & example & explanation \\
\midrule
\TAline{(point)\{name of macro\}} {\tkzcname{tkzGetPointCoord}(A)\{A\}}{\tkzcname{Ax} and \tkzcname{Ay} give coordinates for $A$}
\end{tabular}
@@ -237,4 +237,26 @@ Stores in two macros the coordinates of a point. If the name of the macro is \tk
\tkzDrawSegment[->,purple](b,c)
\end{tikzpicture}
\end{tkzexample}
+
+\subsection{Swap labels of points}
+
+\begin{NewMacroBox}{tkzSwapPoints}{\parg{$pt1$,$pt2$}}%
+\begin{tabular}{lll}%
+arguments & example & explanation \\
+\midrule
+\TAline{(pt1,pt2)} {\tkzcname{tkzSwapPoints}(A,B)}{now $A$ has the coordinates of $B$ }
+\end{tabular}
+
+\emph{The points have exchanged their coordinates.}
+\end{NewMacroBox}
+\subsubsection{Example}
+
+\begin{tkzexample}[width=6cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/O,5/-1/A,2/2/B}
+ \tkzSwapPoints(A,B)
+ \tkzDrawPoints(O,A,B)
+ \tkzLabelPoints(O,A,B)
+\end{tikzpicture}
+\end{tkzexample}
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex
index 990862afff..7eb2875ec7 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-triangles.tex
@@ -163,18 +163,17 @@ This triangle has sides whose lengths are proportional to 3, 4 and 5.
\end{tkzexample}
\subsubsection{Option \tkzname{gold} }
-\begin{tkzexample}[latex=7 cm,small]
+\begin{tkzexample}[latex=6 cm,small]
\begin{tikzpicture}
- \tkzDefPoints{0/0/A,4/0/B}
- \tkzDefTriangle[gold](A,B)
- \tkzGetPoint{C}
- \tkzDrawPolygon(A,B,C)
- \tkzDrawPoints(A,B,C)
- \tkzLabelPoints(A,B)
- \tkzLabelPoints[above](C)
- \tkzLabelAngle[pos=0.8](B,A,C){$36^\circ$}
- \tkzLabelAngle[pos=0.8](C,B,A){$72^\circ$}
- \tkzLabelAngle[pos=0.8](A,C,B){$72^\circ$}
+ \tkzDefPoints{0/0/A,4/0/B}
+ \tkzDefTriangle[gold](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawPolygon(A,B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(B) \tkzLabelPoints[below](A,C)
+ \tkzLabelAngle[pos=0.8](C,A,B){$36^\circ$}
+ \tkzLabelAngle[pos=0.8](A,B,C){$72^\circ$}
+ \tkzLabelAngle[pos=0.8](B,C,A){$72^\circ$}
\end{tikzpicture}
\end{tkzexample}
@@ -196,7 +195,7 @@ This triangle has sides whose lengths are proportional to 3, 4 and 5.
\end{tikzpicture}
\end{tkzexample}
-\section{Specific triangles with \tkzcname{tkzDefSpcTriangle}}
+\subsection{Specific triangles with \tkzcname{tkzDefSpcTriangle}}
The centers of some triangles have been defined in the "points" section, here it is a question of determining the three vertices of specific triangles.
@@ -227,7 +226,7 @@ options & default & definition \\
\end{NewMacroBox}
-\subsection{How to name the vertices}
+\subsubsection{How to name the vertices}
With \tkzcname{tkzDefSpcTriangle[medial,name=M](A,B,C)\{\_A,\_B,\_C\}} you get three vertices named $M_A$, $M_B$ and $M_C$.
@@ -260,7 +259,7 @@ In the following example, we obtain the Euler circle which passes through the pr
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{in} or \tkzname{incentral} }
+\subsubsection{Option \tkzname{in} or \tkzname{incentral} }
The incentral triangle is the triangle whose vertices are determined by
the intersections of the reference triangle’s angle bisectors with the
@@ -286,7 +285,7 @@ respective opposite sides.
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{ex} or \tkzname{excentral} }
+\subsubsection{Option \tkzname{ex} or \tkzname{excentral} }
The excentral triangle of a triangle $ABC$ is the triangle $J_aJ_bJ_c$ with vertices corresponding to the excenters of $ABC$.
@@ -308,7 +307,7 @@ The excentral triangle of a triangle $ABC$ is the triangle $J_aJ_bJ_c$ with vert
\end{tkzexample}
-\subsection{Option \tkzname{intouch} or \tkzname{contact}}
+\subsubsection{Option \tkzname{intouch} or \tkzname{contact}}
The contact triangle of a triangle $ABC$, also called the intouch triangle, is the triangle formed by the points of tangency of the incircle of $ABC$ with $ABC$.\\
\href{http://mathworld.wolfram.com/ContactTriangle.html}{Weisstein, Eric W. "Contact triangle" From MathWorld--A Wolfram Web Resource.}
@@ -330,11 +329,11 @@ We obtain the intersections of the bisectors with the sides.
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{extouch}}
+\subsubsection{Option \tkzname{extouch}}
The extouch triangle $T_aT_bT_c$ is the triangle formed by the points of tangency of a triangle $ABC$ with its excircles $J_a$, $J_b$, and $J_c$. The points $T_a$, $T_b$, and $T_c$ can also be constructed as the points which bisect the perimeter of $A_1A_2A_3$ starting at $A$, $B$, and $C$.\\
\href{http://mathworld.wolfram.com/ExtouchTriangle.html}{Weisstein, Eric W. "Extouch triangle" From MathWorld--A Wolfram Web Resource.}
-We obtain the points of contact of the exinscribed circles as well as the triangle formed by the centres of the exinscribed circles.
+We obtain the points of contact of the exinscribed circles as well as the triangle formed by the centers of the exinscribed circles.
\begin{tkzexample}[latex=8cm,small]
\begin{tikzpicture}[scale=.7]
@@ -365,7 +364,7 @@ We obtain the points of contact of the exinscribed circles as well as the triang
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{orthic}}
+\subsubsection{Option \tkzname{orthic}}
Given a triangle $ABC$, the triangle $H_AH_BH_C$ whose vertices are endpoints of the altitudes from each of the vertices of ABC is called the orthic triangle, or sometimes the altitude triangle. The three lines $AH_A$, $BH_B$, and $CH_C$ are concurrent at the orthocenter H of ABC.
@@ -395,7 +394,7 @@ Given a triangle $ABC$, the triangle $H_AH_BH_C$ whose vertices are endpoints of
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{feuerbach}}
+\subsubsection{Option \tkzname{feuerbach}}
The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the excircles.\\
\href{http://mathworld.wolfram.com/FeuerbachTriangle.html}{Weisstein, Eric W. "Feuerbach triangle" From MathWorld--A Wolfram Web Resource.}
@@ -426,7 +425,7 @@ The Feuerbach triangle is the triangle formed by the three points of tangency of
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{tangential}}
+\subsubsection{Option \tkzname{tangential}}
The tangential triangle is the triangle $T_aT_bT_c$ formed by the lines tangent to the circumcircle of a given triangle $ABC$ at its vertices. It is therefore antipedal triangle of $ABC$ with respect to the circumcenter $O$.\\
\href{http://mathworld.wolfram.com/TangentialTriangle.html}{Weisstein, Eric W. "Tangential Triangle." From MathWorld--A Wolfram Web Resource. }
@@ -448,7 +447,7 @@ The tangential triangle is the triangle $T_aT_bT_c$ formed by the lines tangent
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{euler}}
+\subsubsection{Option \tkzname{euler}}
The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertices are the midpoints of the segments joining the orthocenter $H$ with the respective vertices. The vertices of the triangle are known as the Euler points, and lie on the nine-point circle.
\\
\href{https://mathworld.wolfram.com/EulerTriangle.html}{Weisstein, Eric W. "Euler Triangle." From MathWorld--A Wolfram Web Resource.}
@@ -482,7 +481,7 @@ The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertice
\end{tikzpicture}
\end{tkzexample}
-\subsection{Option \tkzname{euler} and Option \tkzname{orthic}}
+\subsubsection{Option \tkzname{euler} and Option \tkzname{orthic}}
\begin{tkzexample}[vbox,small]
\begin{tikzpicture}[scale=1.25]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
@@ -509,7 +508,7 @@ The Euler triangle of a triangle $ABC$ is the triangle $E_AE_BE_C$ whose vertice
\end{tkzexample}
-\subsection{Option \tkzname{symmedial}}
+\subsubsection{Option \tkzname{symmedial}}
The symmedial triangle$ K_AK_BK_C$ is the triangle whose vertices are the intersection points of the symmedians with the reference triangle $ABC$.
\begin{tkzexample}[latex=7cm,small]
@@ -525,5 +524,52 @@ The symmedial triangle$ K_AK_BK_C$ is the triangle whose vertices are the inters
\tkzLabelPoints[font=\scriptsize](A,B,C,K,K_A,K_B,K_C)
\end{tikzpicture}
\end{tkzexample}
-
+
+\subsection{Permutation of two points of a triangle}
+
+\begin{NewMacroBox}{tkzPermute}{\parg{$pt1$,$pt2$,$pt3$}}%
+\begin{tabular}{lll}%
+arguments & example & explanation \\
+\midrule
+\TAline{(pt1,pt2,pt3)} {\tkzcname{tkzPermute}(A,B,C)}{$A$, $\widehat{B,A,C}$ are unchanged, $B$, $C$ exchange their position}
+\midrule
+\end{tabular}
+
+\emph{The triangle is unchanged.}
+\end{NewMacroBox}
+
+\subsubsection{Modification of the \tkzname{school} triangle}
+This triangle is constructed from the segment $[AB]$ on $[A,x)$
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B,6/0/x}
+ \tkzDefTriangle[school](A,B)
+ \tkzGetPoint{C}
+ \tkzDrawSegments(A,B B,x)
+ \tkzDrawSegments(A,C B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,B,C,x)
+ \tkzMarkRightAngles(C,B,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+If we want the segment $[AC]$ to be on $[A,x)$, we just have to swap $B$ and $C$.
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}
+ \tkzDefPoints{0/0/A,4/0/B,6/0/x}
+ \tkzDefTriangle[school](A,B)
+ \tkzGetPoint{C}
+ \tkzPermute(A,B,C)
+ \tkzDrawSegments(A,B C,x)
+ \tkzDrawSegments(A,C B,C)
+ \tkzDrawPoints(A,B,C)
+ \tkzLabelPoints(A,C,x)
+ \tkzLabelPoints[above](B)
+ \tkzMarkRightAngles(C,B,A)
+\end{tikzpicture}
+\end{tkzexample}
+
+Remark: Only the first point is unchanged. The order of the last two parameters is not important.
+
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
index f00c25c789..276253b32c 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
+++ b/macros/latex/contrib/tkz/tkz-euclide/doc/tkz-euclide.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
index fee32ea5fc..36ed515b7b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.cfg
@@ -16,9 +16,9 @@
% and save the file in a directory part of your TEXINPUTS environment
% variable.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-euclide.cfg}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-euclide.cfg}
%<------ colors ---------------------------------------–>
\def\tkz@backgroundcolor{white}
\def\tkz@textcolor{black}
@@ -133,7 +133,8 @@
\tikzset{line style/.style = {line width = \tkz@euc@linewidth,
color = \tkz@euc@linecolor,
style = \tkz@euc@linestyle,
- add = {\tkz@euc@lineleft} and {\tkz@euc@lineright}%
+ add = {\tkz@euc@lineleft} and {\tkz@euc@lineright},
+ line cap = round
}
}
\tikzset{label seg style/.style = {color = \tkz@mainlinecolor,
@@ -178,9 +179,79 @@
fill = \tkz@fillcolor,
left = 3pt}
}
-%<--------------------------- vector --------------------------------------–>
-\tikzset{vector style/.style={>=latex,->}
+%
+%<--------------------------- arrow --------------------------------------–>
+% Syntax:
+%
+% - tkz arrow=<arrow end tip>`
+% - tkz arrow=<arrow end tip> at <pos> (<pos> = .5 by default)
+% - tkz arrow={<arrow end tip>[<arrow options>] at <pos>}
+%
+%
+% Example usages:
+%
+% \draw[tkz arrow=Stealth] (A) -- (B);
+% \draw[tkz arrow={To[scale=3] at .3}] (A)-- (B);
+% \draw[tkz arrow={Latex[scale=5,blue] at .8}] (A)-- (B);
+
+\tikzset{
+tkz arrow/.default=Latex,
+ tkz arrow/.code=%
+ {%
+ \pgfutil@in@{ at }{#1}%
+ \ifpgfutil@in@
+ \mytikz@parsearrow#1\mytikz@stop
+ \else
+ \mytikz@parsearrow#1 at .5\mytikz@stop
+ \fi
+ }
+}
+\def\mytikz@parsearrow#1 at #2\mytikz@stop{%
+ \pgfutil@in@{[}{#1}%
+ \ifpgfutil@in@
+ \mytikz@parsearrow@opt{#2}#1\mytikz@stop
+ \else
+ \mytikz@parsearrow@opt{#2}#1[]\mytikz@stop
+ \fi
}
+
+% #1 = pos, #2 = arrow end tip, #3 = arrow options
+\def\mytikz@parsearrow@opt#1#2[#3]\mytikz@stop{%
+ \pgfkeysalso{decoration={
+ markings,
+ mark=at position #1 with {\arrow[#3]{#2}}
+ },
+ postaction={decorate}
+ }%
+}
+%<------------------------------------------------------------------------->
+\tikzset{
+ on each path/.style={
+ decorate,
+ decoration={
+ show path construction,
+ moveto code={},
+ lineto code={
+ \path [#1]
+ (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);
+ },
+ curveto code={
+ \path [#1] (\tikzinputsegmentfirst)
+ .. controls
+ (\tikzinputsegmentsupporta) and (\tikzinputsegmentsupportb)
+ ..
+ (\tikzinputsegmentlast);
+ },
+ closepath code={
+ \path [#1]
+ (\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);
+ }}}}
+ %<--------------------------- arrows --------------------------------------–>
+\tikzset{tkz arrows/.style=%
+{postaction={on each path={tkz arrow={Latex[scale=2,color=black]}}}}}
+%<--------------------------- vector --------------------------------------–>
+\tikzset{vector style/.style={>=Latex,->}}
+%<--------------------------- tkzdotted --------------------------------------–>
\tikzset{tkzdotted/.style={%
dash pattern=on 0.4\pgflinewidth off #1\pgflinewidth,line cap=round, shorten >=#1\pgflinewidth/2,shorten <=#1\pgflinewidth/2,
tkzdotted/.default=8}}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
index ffe08e9468..e59c97fa0f 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-euclide.sty
@@ -10,11 +10,11 @@
% The Current Maintainer of this work is Alain Matthes.
%<------------------------------------------------------------>
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-euclide.sty}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-euclide.sty}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-euclide}[ 2022/01/19 4.03 for pure Euclidean Geometry ]
+\ProvidesPackage{tkz-euclide}[ 2022/02/07 4.05b for pure Euclidean Geometry ]
\@ifpackageloaded{tkz-base}{
\newdimen\tkzRadius
@@ -23,6 +23,7 @@
\newif\iftkz@line@normed
\newif\ifnormtkzcode@execute% german ? right angle
\newif\iftkz@swap@sc%---------------------- semi circle
+\newif\iftkz@swap@tr
}{
\RequirePackage{tikz}
\usetikzlibrary{angles,
@@ -64,6 +65,16 @@
\newif\iftkz@vec@normed
%--------------------- lines
\newif\iftkz@line@normed
+%--------------------- circles
+\newif\iftkzClipOutCircle
+%--------------------- polygons
+\newif\iftkzClipOutPoly
+%--------------------- triangles
+\newif\iftkz@swap@tr
+\newif\iftkz@permute
+%--------------------- intersections
+\newif\iftkzFlagLC\tkzFlagLCfalse
+\newif\iftkzFlagCC\tkzFlagCCfalse
%--------------------- tkz axis
\newif\iftkz@X@noticks
\newif\iftkz@Y@noticks
@@ -76,6 +87,7 @@
\newif\iftkz@np
\newif\iftkz@swap
\newif\iftkz@init@NO
+\newif\iftkz@integer
\newif\iftkz@Rep@orig%--------------------- Rep
\newif\iftkzLengthIncm%--------------------- Math
\newif\iftkz@sop@show%--------------------- marks
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
index 86bb1c2f75..88edcbd70e 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-marks.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-lib-eu-marks.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-lib-eu-marks.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Création des symboles
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
index 2445260c3e..66824d184b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-lib-eu-shape.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-lib-eu-shape.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-lib-eu-shape.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Création des symboles
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
index e7ba177379..65e0c5b944 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-axesmin.tex
@@ -10,22 +10,21 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-axesmin}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-axesmin}
\makeatletter
-\newif\ifinteger
\def\removedot#1.{#1}
\newcommand\tkzgetinteger[1]{\expandafter\tkz@getinteger#1.\@nil}
\def\tkz@getinteger#1.#2\@nil{%
\ifx\empty#2\empty
- \integertrue
+ \tkz@integertrue
\else
\ifnum\removedot#2=0
- \integertrue
+ \tkz@integertrue
\else
- \integerfalse
+ \tkz@integerfalse
\fi
\fi
}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
index 506ec8c739..0fcc4f210f 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles-by.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-circles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
index 7ea8b3136d..9f0168d835 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-circles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-circles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-circles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzCircle center and one point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
index 30e07a08a8..3ecb646303 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-compass.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-compass.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-compass.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Author Alain Matthes
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
index 0818c0fd26..6b5ed5ae7e 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-angles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tool-eu-angles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tool-eu-angles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzSetUpArc
@@ -202,25 +202,25 @@
color = teal!20,
size = 4pt,
pos = .5,
- mark = |,
+ mark = none,
/@tkzmarkarc/.search also={/tikz},
}
\def\tkzMarkArc{\pgfutil@ifnextchar[{\tkz@MarkArc}{\tkz@MarkArc[]}}
\def\tkz@MarkArc[#1](#2,#3,#4){%
\begingroup
\pgfqkeys{/@tkzmarkarc}{#1} \def\tkz@mymarkarc{\pgfsetplotmarksize{\tkz@mkarcsize}\pgfuseplotmark{\tkz@markarcseg}}
- \tkz@@CalcLength(#2,#3){tkz@radius}
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
- \pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}%
- \pgfmathgreaterthan{\tkz@FirstAngle}{0}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@FirstAngle}{360}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \fi
+\tkz@@CalcLength(#2,#3){tkz@radius}
+\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
+\tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
+\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}%
+\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}%
+\pgfmathgreaterthan{\tkz@FirstAngle}{0}
+\ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathsubtract{\tkz@FirstAngle}{360}
+ \edef\tkz@FirstAngle{\pgfmathresult}%
+\fi
\else
\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
\ifdim\pgfmathresult pt=1 pt\relax%
@@ -232,46 +232,43 @@
\edef\tkz@FirstAngle{\pgfmathresult}%
\pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
\edef\tkz@SecondAngle{\pgfmathresult}
- \begin{scope}[decoration={markings,
- mark=at position \tkz@mkarcpos with {\tkz@mymarkarc}}]
- \path[shift = {(#2)},\tkz@mkcolor,/@tkzmarkarc/.cd,#1,postaction={decorate}]%
- (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt);
- \end{scope}
+\begin{scope}[decoration={markings,mark=at position \tkz@mkarcpos with {\tkz@mymarkarc}}]
+\path[shift = {(#2)},\tkz@mkcolor,/@tkzmarkarc/.cd,#1,postaction={decorate}]%
+(\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt);
+\end{scope}
\endgroup
}
\def\tkzLabelArc{\pgfutil@ifnextchar[{\tkz@LabelArc}{\tkz@LabelArc[]}}
\def\tkz@LabelArc[#1](#2,#3,#4)#5{%
\begingroup
- \pgfqkeys{/@tkzmarkarc}{#1}
- \tkz@@CalcLength(#2,#3){tkz@radius}
- \tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
- \tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
- \pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}%
- \pgfmathgreaterthan{\tkz@FirstAngle}{0}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathsubtract{\tkz@FirstAngle}{360}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \fi
- \else
- \pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
- \ifdim\pgfmathresult pt=1 pt\relax%
- \pgfmathadd{\tkz@SecondAngle}{360}
- \edef\tkz@SecondAngle{\pgfmathresult}%
+\pgfqkeys{/@tkzmarkarc}{#1}
+\tkz@@CalcLength(#2,#3){tkz@radius}
+\tkzFindSlopeAngle(#2,#3)\tkzGetAngle{tkz@FirstAngle}
+\tkzFindSlopeAngle(#2,#4)\tkzGetAngle{tkz@SecondAngle}
+\pgfmathparse{\tkz@FirstAngle}\edef\tkz@FirstAngle{\pgfmathresult}%
+\pgfmathparse{\tkz@SecondAngle}\edef\tkz@SecondAngle{\pgfmathresult}%
+\pgfmathgreaterthan{\tkz@FirstAngle}{0}
+\ifdim\pgfmathresult pt=1 pt\relax%
+\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathsubtract{\tkz@FirstAngle}{360}
+ \edef\tkz@FirstAngle{\pgfmathresult}%
\fi
- \fi
- \pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta}
- \edef\tkz@FirstAngle{\pgfmathresult}%
- \pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
- \edef\tkz@SecondAngle{\pgfmathresult}
- \begin{scope}[decoration={markings,
- mark=at position \tkz@mkarcpos with \node{#5};}]
- \path[shift = {(#2)},/@tkzmarkarc/.cd,#1,postaction={decorate}]%
- (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt);
- \end{scope}
+\else
+\pgfmathgreaterthan{\tkz@FirstAngle}{\tkz@SecondAngle}
+ \ifdim\pgfmathresult pt=1 pt\relax%
+ \pgfmathadd{\tkz@SecondAngle}{360}
+ \edef\tkz@SecondAngle{\pgfmathresult}%
+ \fi
+\fi
+\pgfmathsubtract{\tkz@FirstAngle}{\tkz@delta}
+\edef\tkz@FirstAngle{\pgfmathresult}%
+\pgfmathadd{\tkz@SecondAngle}{\tkz@delta}
+\edef\tkz@SecondAngle{\pgfmathresult}
+\begin{scope}[decoration={markings,mark=at position \tkz@mkarcpos with \node{#5};}]
+ \path[shift = {(#2)},/@tkzmarkarc/.cd,#1,postaction={decorate}]%
+ (\tkz@FirstAngle:\tkz@radius pt) arc (\tkz@FirstAngle:\tkz@SecondAngle:\tkz@radius pt); \end{scope}
\endgroup
}
%<--------------------------------------------------------------------------->
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
index 963f0f7da7..95c29886e1 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-circles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-draw-circles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-draw-circles.tex}
\makeatletter
@@ -186,7 +186,6 @@
}
%<--------------------------- Clip Circle ---------------------------------–>
-\newif\iftkzClipOutCircle
\def\tkz@numcc{0}
\pgfkeys{/tkzclipc/.cd,
through/.code = \def\tkz@numcoc{0},
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
index 41c11c1c66..3b07d9f9ca 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-lines.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-draw-lines.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-draw-lines.tex}
\makeatletter
\def\tkz@numdl{0}
@@ -20,7 +20,7 @@
/tkzdrawl/.search also={/tikz}
}
%<--------------------------------------------------------------------------–>
-% Drawing a line >
+% Drawing a line
%<--------------------------------------------------------------------------–>
\def\tkzDrawLine{\pgfutil@ifnextchar[{\tkz@DrawLine}{\tkz@DrawLine[]}}
\def\tkz@DrawLine[#1](#2,#3){%
@@ -42,8 +42,7 @@
\next#2\@nil
}
%<--------------------------------------------------------------------------–>
-\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{%
- \tkz@DrawLines[]}}
+\def\tkzDrawLines{\pgfutil@ifnextchar[{\tkz@DrawLines}{\tkz@DrawLines[]}}
\def\tkz@DrawLines[#1](#2){%
\xdef\tkz@optline{#1}
\begingroup
@@ -107,7 +106,7 @@
\def\tkz@multiDrawSeg#1 #2\@nil{%
\protected@edef\tkz@temp{
- \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp%
+ \noexpand \tkzDrawSegment[\tkz@optseg](#1)}\tkz@temp%
\def\tkz@nextArg{#2}%
\ifx\tkzutil@empty\tkz@nextArg
\let\next\@gobble
@@ -120,7 +119,7 @@
\def\tkz@optseg{#1}
\begingroup
\let\next\tkz@multiDrawSeg
- \next#2 \@nil %
+ \next#2 \@nil %
\endgroup
}
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
index 951cc0c629..fae41863a7 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-polygons.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-polygons.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-polygons.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Polygon
@@ -24,7 +24,7 @@
\tkz@DrawPolygon[]}}
\def\tkz@DrawPolygon[#1](#2,#3){%
\begingroup
- \draw[line style,#1] (#2)
+ \draw[line style,line join=round,#1] (#2)
\foreach \pt in {#2,#3}{--(\pt)}--cycle;%
\endgroup
}
@@ -73,7 +73,7 @@
{\tkz@DrawRectangle[]}}
\def\tkz@DrawRectangle[#1](#2,#3){%
\begingroup
- \draw[#1](#2) -| (#3) -| (#2);
+ \draw[line join=round,#1](#2) -| (#3) -| (#2);
\endgroup
}
%<-------------------------- gold rectangle -------------------------------–>
@@ -113,7 +113,6 @@
%
%<--------------------------------------------------------------------------–>
-\newif\iftkzClipOutPoly%
\pgfkeys{tkzclippolygon/.cd,
out code/.is if = tkzClipOutPoly,
out/.code = \tkzClipOutPolyfalse}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
index e6e1a161b3..4679ab85d1 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-draw-triangles.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-draw-triangles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-draw-triangles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Draw Triangles
@@ -65,7 +65,7 @@
\or% 9
\tkzDefIsoscelesRightTriangle(#2,#3)
\fi
- \draw[/drawtriangle/.cd,line style,#1] (#2)--(#3)--(tkzPointResult)--cycle;
+ \draw[/drawtriangle/.cd,line style,line join=round,#1] (#2)--(#3)--(tkzPointResult)--cycle;
\endgroup
}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
index 2febd43328..207b537c61 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-grids.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-grids.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-grids.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Setup Grid
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
index 8f9811c76f..fddfca0723 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-lines.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-lines.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-lines.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% les lignes
@@ -205,12 +205,18 @@
%<-------------------------------------------------------------------------–>
\def\tkzTgtFromP(#1,#2)(#3){%
\begingroup
- \tkzDefMidPoint(#1,#3)
\tkz@@CalcLengthcm(#1,#2){tkz@radone}
+ \tkzDefMidPoint(#1,#3)
\tkz@@CalcLengthcm(tkzPointResult,#1){tkz@radtwo}
\tkzInterCCR(#1,\tkz@radone)(tkzPointResult,\tkz@radtwo){%
- tkzFirstPointResult}{%
- tkzSecondPointResult}%
+ tkzFirstPointResult}{tkzSecondPointResult}%
+ \tkzFindAngle(#3,tkzFirstPointResult,#1) \tkzGetAngle{tkz@an}
+ \ifdim\tkz@an pt<180 pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+ \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
\endgroup
}
%<-------------------------------------------------------------------------–>
@@ -221,6 +227,13 @@
\tkzInterCCR(#1,#2)(tkzPointResult,\tkzLengthResult){%
tkzFirstPointResult}{%
tkzSecondPointResult}%
+ \tkzFindAngle(#3,tkzFirstPointResult,#1) \tkzGetAngle{tkz@an}
+ \ifdim\tkz@an pt<180 pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+ \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
\endgroup
}
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
index b10b308f35..4def351f35 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-by.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-el-points-by.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-el-points-by.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Transformations Géométriques
@@ -44,9 +44,12 @@
\def\tkz@numtrsf{7}},
inversion negative/.code args={center #1 through #2}{ \def\tkzcenter{#1}%
\def\tkzpoint{#2}%
- \def\tkz@numtrsf{8}}
-% inversion négative ?
-}
+ \def\tkz@numtrsf{8}},
+ rotation with nodes/.code args={center #1 from #2 to #3}{ \def\tkzcenter{#1}%
+ \def\tkzfrom{#2}%
+ \def\tkzto{#3}%
+ \def\tkz@numtrsf{9}}
+}
%<--------------------------------------------------------------------------–>
\def\tkzDefPointBy{\pgfutil@ifnextchar[{\tkz@DefPointBy}{\tkz@DefPointBy[]}}
\def\tkz@DefPointBy[#1](#2){%
@@ -71,7 +74,9 @@
\tkzUInversePoint(\tkzcenter,\tkzpoint)(#2)
\or% 8
\tkzUInverseNegativePoint(\tkzcenter,\tkzpoint)(#2)
-\fi
+\or% 9
+ \tkzURotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2)
+\fi
\endgroup
}
%<--------------------------------------------------------------------------–>
@@ -97,7 +102,9 @@
\or% 7
\tkzInversePoint(\tkzcenter,\tkzpoint)(#2){#3}
\or% 8
- \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
+ \tkzInverseNegativePoint(\tkzcenter,\tkzpoint)(#2){#3}
+ \or% 9
+ \tkzRotateWithNodes(\tkzcenter,\tkzfrom,\tkzto)(#2){#3}
\fi
\endgroup
}
@@ -441,6 +448,7 @@
}
\endgroup
}
+%<--------------------------------------------------------------------------–>
\def\tkzUInverseNegativePoint(#1,#2)(#3){%
\begingroup
\tkz@@CalcLengthcm(#1,#2){tkz@lna}%
@@ -449,7 +457,58 @@
\tkzVecKNorm[\tkz@lnc](#1,#3)
\tkzUCSym(#1)(tkzPointResult)
\endgroup
-}
+}
+%<--------------------------------------------------------------------------–>
+%<--------------- rotate with nodes ------------------------–>
+%<--------------------------------------------------------------------------–>
+\def\tkzRotateWithNodes(#1,#2,#3)(#4)#5{%
+\begingroup
+\gdef\tkz@LastList{#5}
+ \foreach\PointRotWN in {#4}{%
+ \FirstPointInList\tkz@LastList
+ \ifx\tkz@FirstPoint\tkzutil@empty
+ \def\tkz@pointtsf{\PointRotWN '}
+ \else
+ \def\tkz@pointtsf{\tkz@FirstPoint}
+ \fi
+ \tkzFindAngle(#2,#1,#3)
+ \tkz@@extractxy{\PointRotWN}
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \tkz@@extractxy{#1}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkzAngleResult}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfinterruptboundingbox
+ \path[coordinate](\tkz@bx,\tkz@by) coordinate (\tkz@pointtsf);%
+ \endpgfinterruptboundingbox
+}
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzURotateWithNodes(#1,#2,#3)(#4){%
+\begingroup
+ \tkzFindAngle(#2,#1,#3)
+ \pgf@process{\pgfpointanchor{#4}{center}}%
+ \tkz@ax\pgf@x%
+ \tkz@ay\pgf@y%
+ \pgf@process{\pgfpointanchor{#1}{center}}%
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfmathrotatepointaround{\pgfpoint{\tkz@ax}{\tkz@ay}}%
+ {\pgfpoint{\tkz@bx}{\tkz@by}}%
+ {\tkzAngleResult}
+ \tkz@bx\pgf@x%
+ \tkz@by\pgf@y%
+ \pgfinterruptboundingbox
+ \path (\tkz@bx,\tkz@by) coordinate (tkzPointResult);%
+ \endpgfinterruptboundingbox
+\endgroup
+}
%<--------------------------------------------------------------------------–>
% Fin des transformations
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
index 11d94cb8f2..b6f51bc53a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-rnd.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-el-points-rnd.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-el-points-rnd.tex}
%<--------------------------------------------------------------------------–>
\makeatletter
%<-------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
index daa2b85a52..09c803dde0 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-spc.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-el-points.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-el-points.tex}
\makeatletter
%add ExCenter
%<--------------------------------------------------------------------------–>
@@ -81,6 +81,28 @@
\endgroup
}
%<--------------------------------------------------------------------------–>
+\def\tkz@simicenter{0}
+\pgfkeys{/tkzsimicenter/.cd,
+ ext/.code = \def\tkz@simicenter{0},
+ int/.code = \def\tkz@simicenter{1},
+ node/.code = ,
+ R/.code = ,
+ ext
+}%
+
+\def\tkzDefSimilitudeCenter{\pgfutil@ifnextchar[{\tkz@DefSimilitudeCenter}%
+ {\tkz@DefSimilitudeCenter[]}}
+\def\tkz@DefSimilitudeCenter[#1](#2,#3)(#4,#5){%
+\pgfqkeys{/tkzsimicenter}{#1}
+\begingroup
+\ifcase\tkz@simicenter%
+ \tkzDefExtSimilitudeCenter[#1](#2,#3)(#4,#5)
+ \or% 1
+ \tkzDefIntSimilitudeCenter[#1](#2,#3)(#4,#5)
+\fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
% Internal Similitude center
% Two circles have two similitude centers namely the internal center of
% similitude Si and the external similitude center Se.
@@ -90,7 +112,9 @@
/tkzSimilitudeCenter/.cd,
node/.code = \def\tkz@numhomo{0},
R/.code = \def\tkz@numhomo{1},
- node
+ node,
+ /tkzSimilitudeCenter/.unknown/.code = {\let\searchname=\pgfkeyscurrentname
+ \pgfkeysalso{\searchname/.try=#1, /tikz/\searchname/.retry=#1}}
}
\def\tkzDefIntSimilitudeCenter{\pgfutil@ifnextchar[{\tkz@DefIntSimilitudeCenter}{\tkz@DefIntSimilitudeCenter[]}}
\def\tkz@DefIntSimilitudeCenter[#1](#2,#3)(#4,#5){%
@@ -131,7 +155,58 @@
}
\let\tkzDefExtHomotheticCenter\tkzDefExtSimilitudeCenter
+%<--------------------------------------------------------------------------–>
+% Harmonic Division
+%<--------------------------------------------------------------------------–>
+% A , B , C ,D CA/CB = DA/DB
+%<--------------------------------------------------------------------------–>
+\def\tkz@numdha{0}
+\pgfkeys{/tkzharmonic/.cd,
+ ext/.code = \def\tkz@numdha{0},
+ int/.code = \def\tkz@numdha{1},
+ both/.code = \def\tkz@numdha{2},
+ both,
+}%
+
+\def\tkzDivHarmonic{\pgfutil@ifnextchar[{\tkz@DivHarmonic}{\tkz@DivHarmonic[]}}
+\def\tkz@DivHarmonic[#1](#2){%
+\begingroup
+\pgfqkeys{/tkzharmonic}{#1}
+ \ifcase\tkz@numdha%
+ \tkzDefDivHarmonicExt(#2)
+ \or%
+ \tkzDefDivHarmonicInt(#2)
+ \or%
+ \tkzDefDivHarmonicBoth(#2)
+ \fi
+\endgroup
+}
+\def\tkzDefDivHarmonicExt(#1,#2,#3){%
+\begingroup
+ \tkz@@CalcLengthcm(#3,#1){tkz@da}
+ \tkz@@CalcLengthcm(#3,#2){tkz@db}
+ \path[coordinate] (barycentric cs:#1={-\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult);
+\endgroup
+}
+
+\def\tkzDefDivHarmonicInt(#1,#2,#3){%
+\begingroup
+ \tkz@@CalcLengthcm(#3,#1){tkz@da}
+ \tkz@@CalcLengthcm(#3,#2){tkz@db}
+ \path[coordinate] (barycentric cs:#1={\tkz@db},#2={\tkz@da}) coordinate (tkzPointResult);
+\endgroup
+}
+
+\def\tkzDefDivHarmonicBoth(#1,#2,#3){%
+\begingroup
+\edef\tkz@k{\fpeval{#3}}
+ \path[coordinate] (barycentric cs:#1=1,#2={\tkz@k}) coordinate (tkzFirstPointResult);
+ \path[coordinate] (barycentric cs:#1=1,#2={-\tkz@k}) coordinate (tkzSecondPointResult);
+\endgroup
+}
+
+\let\tkzDefHarmonic\tkzDivHarmonic
%<--------------------------------------------------------------------------–>
% golden ratio
%<--------------------------------------------------------------------------–>
@@ -510,16 +585,24 @@
%<--------------------------------------------------------------------------–>
% Point on circle
%<--------------------------------------------------------------------------–>
+\def\tkz@numptcirc{0}
\pgfkeys{/tkzptcircle/.cd,
- angle/.store in = \tkz@angle,
- angle = 0 ,
- center/.store in = \tkz@center,
- radius/.store in = \tkz@radius,
+ through/.code args = {angle #1 center #2 point #3} {\def\tkz@angle{#1}%
+ \def\tkz@center{#2}%
+ \def\tkz@through{#3}%
+ \def\tkz@numptcirc{0}},
+ R/.code args = {angle #1 center #2 radius #3} {\def\tkz@angle{#1}%
+ \def\tkz@center{#2}%
+ \def\tkz@radius{#3}%
+ \def\tkz@numptcirc{1}},
}
\def\tkzDefPointOnCircle{\pgfutil@ifnextchar[{\tkz@DefPointOnCircle}{\tkz@DefPointOnCircle[]}}
\def\tkz@DefPointOnCircle[#1]{%
\begingroup
\pgfqkeys{/tkzptcircle}{#1}
+ \ifcase\tkz@numptcirc%
+ \tkz@@CalcLengthcm(\tkz@center,\tkz@through){tkz@radius}
+\fi
\path (\tkz@center) --++(\tkz@angle:\tkz@radius) coordinate(tkzPointResult);
\endgroup
}
@@ -532,5 +615,6 @@
\path (#2) to [#1] coordinate (tkzPointResult) (#3);
\endgroup
}
+
\makeatother
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
index 5d204fbd85..27951df7ac 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points-with.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-el-points-with.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-el-points-with.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% Vectors
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
index 20d0988a82..ecf22fbd9c 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-points.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-points.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-points.tex}
\makeatletter
%<--------------------------------------------------------------------------->
% init def point
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
index 871cd6a36d..42f5a4f5ce 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-polygons.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-polygons.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-polygons.tex}
% bug in regular polygon side 2020/03/09
\makeatletter
%<--------------------------------------------------------------------------–>
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
index ec13a910fd..bb679c6bea 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-protractor.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-protractor.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-protractor.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% !!! idea from Y. Combe !!!
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
index 7de5a1f1b1..ee07eddbd1 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-sectors.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-sectors.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-sectors.tex}
\makeatletter
%<----------------------- Sectors ------------------------------–>
\gdef\tkz@nums{0}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
index a22f1534f6..649ab09f7b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-show.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-show.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-show.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% finding specific points in a triangle
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
index 4ab0ae915e..04d9ea258b 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-obj-eu-triangles.tex
@@ -10,11 +10,10 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-triangles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-triangles.tex}
\makeatletter
-\newif\iftkz@swap@tr
%<--------------------------------------------------------------------------–>
% Triangle Equilateral
%<--------------------------------------------------------------------------–>
@@ -35,7 +34,6 @@
\endgroup
}
%<--------------------------------------------------------------------------–>
-
\def\tkzDefIsoscelesRightTriangle{\pgfutil@ifnextchar[{\tkz@DefIsoscelesRightTriangle}{%
\tkz@DefIsoscelesRightTriangle[]}}
@@ -142,16 +140,16 @@
golden/.code = \def\tkz@numtr{4},
sublime/.code = \def\tkz@numtr{4},
euclid/.code = \def\tkz@numtr{5},
- euclide/.code = \def\tkz@numtr{5},
+ euclide/.code = \def\tkz@numtr{5},
gold/.code = \def\tkz@numtr{6},
cheops/.code = \def\tkz@numtr{7},
two angles/.code args = {#1 and #2} { \def\tkz@numtr{8}%
\def\tkz@alpha{#1}%
\def\tkz@beta{#2}},
isosceles right/.code = \def\tkz@numtr{9},
- swap/.is if = tkz@swap@tr,
- swap/.default = true,
- swap = false,
+ swap/.is if = tkz@swap@tr,
+ swap/.default = true,
+ swap = false,
equilateral
}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
index 9d7af23518..4af6ca4f09 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-BB.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-obj-eu-BB.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-obj-eu-BB.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
\def\tkzShowBB{\pgfutil@ifnextchar[{\tkz@ShowBB}{\tkz@ShowBB[]}}
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
index 8e28c4a2b3..0748e4462a 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-angles.tex
@@ -10,13 +10,14 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-angles.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-angles.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
-% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224 \tkzGetAngle strange behavior
+% thanks karu : http://tex.stackexchange.com/questions/151667/tkzgetangle-strange-behavior/196224#196224
+% \tkzGetAngle strange behavior
% defines \tkz@FirstAngle and \tkz@SecondAngle sens trigo
%<--------------------------------------------------------------------------–>
\def\tkzNormalizeAngle(#1,#2){%
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
index b48a191b1f..9ad90734b2 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-base.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-eu-base.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-eu-base.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
index 5380ce9257..8f95c8e4ad 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-colors.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-eu-colors}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-eu-colors}
\makeatletter
%<------ Initialisation of the colors with tkzSetUpColors ----------------->
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex
index fb1633937f..74d351e2e4 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-intersections.tex
@@ -13,9 +13,9 @@
% The Current Maintainer of this work is Alain Matthes.
% utf8 encoding
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-intersections.tex}
+\def\fileversion{4.04}
+\def\filedate{2022/01/22}
+\typeout{2022/01/22 4.04 tkz-tools-intersections.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% intersection de deux lignes
@@ -127,28 +127,29 @@
\def\tkzTestInterLC(#1,#2)(#3,#4){%
\tkz@Projection(#1,#2)(#3){tkz@pth}% distance centre à la ligne
\tkz@@CalcLength(#3,tkz@pth){tkz@mathLen}%
-\tkz@@CalcLength(#3,#4){tkzLengthResult}
+\tkz@@CalcLength(#3,#4){tkzLengthResult}%calcul du rayon
\ifdim\tkz@mathLen pt>\tkzLengthResult pt\relax%
-\def\tkzflagLC{-1}
+\tkzFlagLCfalse
\else
-\def\tkzflagLC{1}
+\tkzFlagLCtrue
\fi
}
%<--------------------------------------------------------------------------–>
\def\tkz@numlc{0}
\pgfkeys{/linecircle/.cd,
- node/.code = \def\tkz@numlc{0},
- R/.code = \def\tkz@numlc{1},
- with nodes/.code = \def\tkz@numlc{2},
- common/.store in = \tkz@common,
- common = {},
+ node/.code = \def\tkz@numlc{0},
+ R/.code = \def\tkz@numlc{1},
+ with nodes/.code = \def\tkz@numlc{2},
+ common/.store in = \tkz@common,
+ near/.store in = \tkz@near,
+ common = {},
+ near = {},
node
}
%<--------------------------------------------------------------------------–>
\def\tkzInterLC{\pgfutil@ifnextchar[{\tkz@InterLC}{\tkz@InterLC[]}}
\def\tkz@InterLC[#1](#2,#3)(#4,#5){%
\begingroup
-\pgfkeys{linecircle/.cd}
\pgfqkeys{/linecircle}{#1}
\pgfinterruptboundingbox
\ifcase\tkz@numlc%
@@ -164,7 +165,8 @@
{tkzSecondPointResult}%
\fi
\ifx\tkz@common\tkzutil@empty
- \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an}
+ \ifx\tkz@near\tkzutil@empty
+ \tkzFindAngle(tkzSecondPointResult,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an}
\ifdim\tkz@an pt<180 pt\relax%
\else
\pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
@@ -172,8 +174,18 @@
\pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
\fi
\else
+ \tkz@@CalcLength(#2,tkzFirstPointResult){tkzLengthFirst}
+ \tkz@@CalcLength(#2,tkzSecondPointResult){tkzLengthSecond}
+ \ifdim \tkzLengthFirst pt < \tkzLengthSecond pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+ \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
+ \fi
+ \else
\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen}
- \ifdim\tkz@mathLen pt<0.05pt\relax%
+ \ifdim\tkz@mathLen pt<0.1pt\relax%
\else
\pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
\pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
@@ -256,60 +268,10 @@
\tkzInterLCR(#1,#2)(#3,\tkz@radius pt){#6}{#7}
\endgroup
}
-
-%<--------------------------------------------------------------------------–>
-% Intersection de deux cercles
-%<--------------------------------------------------------------------------–>
-\def\tkz@numcc{0}
-\pgfkeys{
-/circlecircle/.cd,
- node/.code = {\global\def\tkz@numcc{0}},
- R/.code = {\global\def\tkz@numcc{1}},
- with nodes/.code = {\global\def\tkz@numcc{2}},
- common/.store in = \tkz@common,
- common = {},
-}
%<--------------------------------------------------------------------------–>
-\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{\tkz@InterCC[]}}
-\def\tkz@InterCC[#1](#2,#3)(#4,#5){%
-\begingroup
-\pgfkeys{/circlecircle/.cd,node}
-\pgfqkeys{/circlecircle}{#1}
-\ifcase\tkz@numcc%
- % first case 0
- \tkz@save@length
- \tkz@@CalcLengthcm(#2,#3){tkz@rayA}
- \tkz@@CalcLengthcm(#4,#5){tkz@rayB}
- \tkz@restore@length
- \tkzInterCCR(#2,\tkz@rayA)(#4,\tkz@rayB){tkzFirstPointResult}{%
- tkzSecondPointResult}
- \or% 1
- \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
- \or%2
- \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
-\fi
- \ifx\tkz@common\tkzutil@empty
- \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an}
- \ifdim\tkz@an pt<180 pt\relax%
- \else
- \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
- \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
- \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
- \fi
- \else
-\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen}
- \ifdim\tkz@mathLen pt<0.05pt\relax%
- \else
- \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
- \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
- \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
- \fi
- \fi
-\endgroup
-}
+% Intersection of 2 circles
%<--------------------------------------------------------------------------–>
%<--------------------------------------------------------------------------–>
-
% méthode
% /* circle_circle_intersection() *
% * Determine the points where 2 circles in a common plane intersect.
@@ -385,6 +347,71 @@
%
% return 1;
% }
+%<--------------------------------------------------------------------------–>
+% Intersection de deux cercles
+%<--------------------------------------------------------------------------–>
+%<---------- test ------------------------------------------------------–>
+% test avec des nodes
+\def\tkzTestInterCC(#1,#2)(#3,#4){%
+\tkz@@CalcLength(#1,#3){tkz@mathLen}% distance entre les centres
+\tkz@@CalcLength(#2,#1){tkz@rA}%calcul du rayon
+\tkz@@CalcLength(#4,#3){tkz@rB}%calcul du rayon
+\edef\tkz@rS{\fpeval{\tkz@rA+\tkz@rB}}
+\ifdim\tkz@mathLen pt > \tkz@rS pt\relax%
+\tkzFlagCCfalse
+\else
+\tkzFlagCCtrue
+\fi
+}
+
+\def\tkz@numcc{0}
+\pgfkeys{
+/circlecircle/.cd,
+ node/.code = \def\tkz@numcc{0},
+ R/.code = \def\tkz@numcc{1},
+ with nodes/.code = \def\tkz@numcc{2},
+ common/.store in = \tkz@common,
+ common = {},
+ node
+}
+%<--------------------------------------------------------------------------–>
+\def\tkzInterCC{\pgfutil@ifnextchar[{\tkz@InterCC}{\tkz@InterCC[]}}
+\def\tkz@InterCC[#1](#2,#3)(#4,#5){%
+\begingroup
+\pgfqkeys{/circlecircle}{#1}
+\ifcase\tkz@numcc%
+ % first case 0
+ \tkz@save@length
+ \tkz@@CalcLengthcm(#2,#3){tkz@rayA}
+ \tkz@@CalcLengthcm(#4,#5){tkz@rayB}
+ \tkz@restore@length
+ \tkzInterCCR(#2,\tkz@rayA)(#4,\tkz@rayB){tkzFirstPointResult}{%
+ tkzSecondPointResult}
+ \or% 1
+ \tkzInterCCR(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}%
+ \or%2
+ \tkzInterCCWithNodes(#2,#3)(#4,#5){tkzFirstPointResult}{tkzSecondPointResult}
+\fi
+ \ifx\tkz@common\tkzutil@empty
+ \tkzFindAngle(#2,tkzFirstPointResult,#4) \tkzGetAngle{tkz@an}
+ \ifdim\tkz@an pt<180 pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+ \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
+ \else
+\tkz@@CalcLength(\tkz@common,tkzSecondPointResult){tkz@mathLen}
+ \ifdim\tkz@mathLen pt<0.05pt\relax%
+ \else
+ \pgfnodealias{tkzPointTmp}{tkzSecondPointResult}
+ \pgfnodealias{tkzSecondPointResult}{tkzFirstPointResult}
+ \pgfnodealias{tkzFirstPointResult}{tkzPointTmp}
+ \fi
+ \fi
+\endgroup
+}
+%<--------------------------------------------------------------------------–>
\def\tkzInterCCR(#1,#2)(#3,#4)#5#6{%
\begingroup
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
index 3cc9943e8e..9efc3f10ab 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-math.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-eu-math.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-eu-math.tex}
\makeatletter
%<-------------------------------------------------------------------------->
% \tkzpointnormalised#
@@ -54,7 +54,6 @@
% \veclen mais avec fp
% option cm le résultat est en cm sinon en pt
%<-------------------------------------------------------------------------->
-%\newif\iftkzLengthIncm \iftkzLengthIncmtrue
\pgfkeys{tkzcalclen/.cd,
cm/.is if = tkzLengthIncm,
cm/.default = true,
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
index 7ac948f2db..04db27c968 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-modules.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-utilities.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-utilities.tex}
\makeatletter
%<------------- % chargement des modules ---------------------------------->
\def\tkz@obj@all{angles,arcs,compass,defcircles,deflines,defpoints,defpointsby,defpointsrnd,defpointswith,polygons,protractor,sectors,show,triangles}%
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
index 3f419f19bd..36da262f36 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-text.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-eu-text.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-eu-text.tex}
\makeatletter
%<--------------------------------------------------------------------------–>
% tkzText
diff --git a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
index 65173a1d3c..3662ead876 100644
--- a/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
+++ b/macros/latex/contrib/tkz/tkz-euclide/latex/tkz-tools-eu-utilities.tex
@@ -10,9 +10,9 @@
% This work has the LPPL maintenance status “maintained”.
% The Current Maintainer of this work is Alain Matthes.
-\def\fileversion{4.03}
-\def\filedate{2022/01/19}
-\typeout{2022/01/19 4.03 tkz-tools-eu-utilities.tex}
+\def\fileversion{4.05b}
+\def\filedate{2022/02/07}
+\typeout{2022/02/07 4.05b tkz-tools-eu-utilities.tex}
\makeatletter
\pgfkeys{/tkzClip/.cd,
space/.store in = {\tkz@CLI@space},
@@ -168,5 +168,14 @@ space = {}}
}
\def\EnabledNumprint{\let\numprint\tkz@numprint}
%<---------------------------------------------------------–>
+\def\tkzSwapPoints(#1,#2){
+ \pgfnodealias{tkzPointTmp}{#2}
+ \pgfnodealias{#2}{#1}
+ \pgfnodealias{#1}{tkzPointTmp}}
+%<---------------------------------------------------------–>
+\def\tkzPermute(#1,#2,#3){
+\tkzURotateWithNodes(#1,#3,#2)(#3) \tkzGetPoint{tkzpt}
+\tkzURotateWithNodes(#1,#2,#3)(#2) \tkzGetPoint{#2}
+\tkzSwapPoints(tkzpt,#3)}
\makeatother
\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/tkz/tkz-fct/README.md b/macros/latex/contrib/tkz/tkz-fct/README.md
index 6f466c6666..c9b8b5413a 100644
--- a/macros/latex/contrib/tkz/tkz-fct/README.md
+++ b/macros/latex/contrib/tkz/tkz-fct/README.md
@@ -1,6 +1,6 @@
# tkz-fct – Tools for drawing graphs of functions
-Release 1.6c 2022/01/27
+Release 1.7c 2022/02/07
## Description
@@ -52,7 +52,9 @@ In order to format the numbers correctly, you place the following two lines
Documentation for `tkz-fct` is available on CTAN and in your TeX distribution.
## History
-- 1.6c Correction of bug qwhich prevented "tkz" packages from being loaded at the same time.
+- 1.7c Correction of the documentation
+- 1.6c Correction of bug which prevented "tkz" packages from being loaded at the same time.
+ Minor corrections to the documentation
- 1.5c Added a warning message that tkz-fct must be loaded before tkz-euclide
- 1.4c Correction of a bug in the macro \tkzFct. Correction of the documentation.
diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex
index 5c52bae065..dc6f6df150 100644
--- a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex
+++ b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-main.tex
@@ -19,11 +19,11 @@
]{tkz-doc}
\usepackage{etoc}
\gdef\tkznameofpack{tkz-fct}
-\gdef\tkzversionofpack{1.5c}
-\gdef\tkzdateofpack{2022/01/25}
-\gdef\tkznameofdoc{doc-tkz-tab}
-\gdef\tkzdateofdoc{2022/01/25}
-\gdef\tkzversionofdoc{1.5c}
+\gdef\tkzversionofpack{1.7c}
+\gdef\tkzdateofpack{2022/02/07}
+\gdef\tkznameofdoc{doc-tkz-fct}
+\gdef\tkzdateofdoc{2022/02/07}
+\gdef\tkzversionofdoc{1.7c}
\gdef\tkzauthorofpack{Alain Matthes}
\gdef\tkzadressofauthor{}
\gdef\tkznamecollection{AlterMundus}
@@ -51,7 +51,7 @@
pdfauthor={\tkzauthorofpack},
pdftitle={\tkznameofpack},
pdfkeywords={tikz, pgf, pdf, pdflatex, graphic, euclide,lualatex,
- points, maths, graph, gnuplot, angle ,function},
+ points, maths, graph, gnuplot, angle, function},
pdfcreator={\tkzengine}
}
\usepackage{url}
diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex
index ad5b8088ff..683c10a530 100644
--- a/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex
+++ b/macros/latex/contrib/tkz/tkz-fct/doc/latex/TKZdoc-fct-tangent.tex
@@ -65,7 +65,7 @@ On peut changer le style des tangentes avec, par exemple,
\tkzAxeXY
\tkzFct[color=red,samples=100,domain = 0:800]%
{(1./90000)*\x*\x*\x-(1./100)*\x*\x+(113./36)*\x}
- \tkzDrawTangentLine[color=blue,kr=300,kl=450,coord](450)
+ \tkzDrawTangentLine[color=blue,kr=300,kl=450](450)
\tkzText[draw, color = black,%
fill = brown!50, opacity = 0.8](300,1200)%
{$f(x)=\dfrac{1}{90000}x^3 -\dfrac{1}{{100}}x^2 +\dfrac{113}{36}x$}
diff --git a/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf b/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf
index c925fc1250..b1807b65e5 100644
--- a/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf
+++ b/macros/latex/contrib/tkz/tkz-fct/doc/tkz-fct.pdf
Binary files differ
diff --git a/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty b/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty
index a4d998ce85..e693b44b3c 100644
--- a/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty
+++ b/macros/latex/contrib/tkz/tkz-fct/latex/tkz-fct.sty
@@ -13,14 +13,16 @@
% constants from tkz-base
% \tkz@init@xstep
% \tkz@init@ystep
-\typeout{2022/01/27 1.6c function tkz-fct}
+\typeout{2022/01/27 1.7c function tkz-fct}
%<--------------------------------------------------------------------------->
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tkz-fct}[2022/01/27 1.6c function ]
+\ProvidesPackage{tkz-fct}[2022/01/27 1.7c function ]
\@ifpackageloaded{tkz-euclide}{\typeout{tkz-base and tkz-fct must be loaded before tkz-euclide}
\PackageError{tkz-fct}{tkz-base must be loaded before tkz-euclide}{tkz-base must be loaded before tkz-euclide}%
\endinput}{}
+\newif\iftkz@draw
+\newif\iftkz@fp
\newcount\tkz@tkzf@fct
\edef\tkzTWOPTCode{\the\catcode`\:}
\tkz@tkzf@fct=0 %
@@ -74,12 +76,9 @@
% Styles
%<--------------------------------------------------------------------------->
\def\tkzfctset#1{\pgfkeys{/tkztan/.cd,#1}}
-
\tkzfctset{tan style/.style={->,>=latex}} %<--------------------------------------------------------------------------->
% tkzFct
%<--------------------------------------------------------------------------->
-\newif\iftkz@draw
-\newif\iftkz@fp
\def\tkz@dmin{-5}\def\tkz@dmax{5}
\global\let\tkz@tmp@xa\tkz@init@xmin% modif 2016
\global\let\tkz@tmp@xb\tkz@init@xmax% modif 2016
@@ -588,7 +587,6 @@
\end{scope}
\endgroup
}
-
%<--------------------------------------------------------------------------–>
% tkzXH F rien T et [ ou ]
%<--------------------------------------------------------------------------–>