summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex')
-rw-r--r--Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex205
1 files changed, 205 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex b/Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex
new file mode 100644
index 00000000000..819b57dc772
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/tkz-euclide/latex/TKZdoc-euclide-tools.tex
@@ -0,0 +1,205 @@
+\section{Miscellaneous tools}
+\subsection{Duplicate a segment}
+This involves constructing a segment on a given half-line of the same length as a given segment.
+
+\begin{NewMacroBox}{tkzDuplicateSegment}{\parg{pt1,pt2}\parg{pt3,pt4}\marg{pt5}}%
+This involves creating a segment on a given half-line of the same length as a given segment . It is in fact the definition of a point.
+\tkzcname{tkzDuplicateSegment} is the new name of \tkzcname{tkzDuplicateLen}.
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & example & explication \\
+
+\midrule
+\TAline{(pt1,pt2)(pt3,pt4)\{pt5\}} {\tkzcname{tkzDuplicateSegment}(A,B)(E,F)\{C\}}{AC=EF and $C \in [AB)$} \\
+\bottomrule
+\end{tabular}
+
+\medskip
+The macro \tkzcname{tkzDuplicateLength} is identical to this one.
+\end{NewMacroBox}
+
+\begin{tkzexample}[latex=6cm,small]
+ \begin{tikzpicture}
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(2,-3){B}
+ \tkzDefPoint(2,5){C}
+ \tkzDrawSegments[red](A,B A,C)
+ \tkzDuplicateSegment(A,B)(A,C)
+ \tkzGetPoint{D}
+ \tkzDrawSegment[green](A,D)
+ \tkzDrawPoints[color=red](A,B,C,D)
+ \tkzLabelPoints[above right=3pt](A,B,C,D)
+ \end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Proportion of gold with \tkzcname{tkzDuplicateSegment}}
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[rotate=-90,scale=.75]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(10,0){B}
+ \tkzDefMidPoint(A,B)
+ \tkzGetPoint{I}
+ \tkzDefPointWith[orthogonal,K=-.75](B,A)
+ \tkzGetPoint{C}
+ \tkzInterLC(B,C)(B,I) \tkzGetSecondPoint{D}
+ \tkzDuplicateSegment(B,D)(D,A) \tkzGetPoint{E}
+ \tkzInterLC(A,B)(A,E) \tkzGetPoints{N}{M}
+ \tkzDrawArc[orange,delta=10](D,E)(B)
+ \tkzDrawArc[orange,delta=10](A,M)(E)
+ \tkzDrawLines(A,B B,C A,D)
+ \tkzDrawArc[orange,delta=10](B,D)(I)
+ \tkzDrawPoints(A,B,D,C,M,I,N)
+ \tkzLabelPoints(A,B,D,C,M,I,N)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Segment length \tkzcname{tkzCalcLength}}
+There's an option in \TIKZ\ named \tkzname{veclen}. This option
+ is used to calculate AB if A and B are two points.
+
+The only problem for me is that the version of \TIKZ\ is not accurate enough in some cases. My version uses the \tkzNamePack{xfp} package and is slower, but more accurate.
+
+\begin{NewMacroBox}{tkzCalcLength}{\oarg{local options}\parg{pt1,pt2}\marg{name of macro}}%
+The result is stored in a macro.
+
+\medskip
+\begin{tabular}{lll}%
+\toprule
+arguments & example & explication \\
+\midrule
+\TAline{(pt1,pt2)\{name of macro\}} {\tkzcname{tkzCalcLength}(A,B)\{dAB\}}{\tkzcname{dAB} gives $AB$ in pt}
+\bottomrule
+\end{tabular}
+
+\medskip
+Only one option
+
+\begin{tabular}{lll}%
+
+\toprule
+ options & default & example \\
+\midrule
+\TOline{cm} {false}{\tkzcname{tkzCalcLength}[cm](A,B)\{dAB\} \tkzcname{dAB} gives $AB$ in cm}
+\end{tabular}
+\end{NewMacroBox}
+
+\subsubsection{Compass square construction}
+
+\begin{tkzexample}[latex=7cm,small]
+\begin{tikzpicture}[scale=1]
+ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
+ \tkzDrawLine[add= .6 and .2](A,B)
+ \tkzCalcLength[cm](A,B)\tkzGetLength{dAB}
+ \tkzDefLine[perpendicular=through A](A,B)
+ \tkzDrawLine(A,tkzPointResult) \tkzGetPoint{D}
+ \tkzShowLine[orthogonal=through A,gap=2](A,B)
+ \tkzMarkRightAngle(B,A,D)
+ \tkzVecKOrth[-1](B,A)\tkzGetPoint{C}
+ \tkzCompasss(A,D D,C)
+ \tkzDrawArc[R](B,\dAB)(80,110)
+ \tkzDrawPoints(A,B,C,D)
+ \tkzDrawSegments[color=gray,style=dashed](B,C C,D)
+ \tkzLabelPoints(A,B,C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+
+\subsection{Transformation from pt to cm}
+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{tabular}{lll}%
+arguments & example & explication \\
+\midrule
+\TAline{(number){name of macro}} {\tkzcname{tkzpttocm}(120)\{len\}}{\tkzcname{len} gives a number of \tkzname{cm}}
+\bottomrule
+\end{tabular}
+
+\medskip
+You'll have to use \tkzcname{len} along with \tkzname{cm}. The result is stored in a macro.
+\end{NewMacroBox}
+
+\subsection{Transformation from cm to pt}
+\begin{NewMacroBox}{tkzcmtopt}{\parg{nombre}\marg{name of macro}}%
+\begin{tabular}{lll}%
+arguments & example & explication \\
+\midrule
+\TAline{(nombre)\{name of macro\}}{\tkzcname{tkzcmtopt}(5)\{len\}}{\tkzcname{len} length in \tkzname{pt}}
+\bottomrule
+\end{tabular}
+
+\medskip
+The result is stored in a macro. The result can be used with \tkzcname{len} \tkzname{pt}.
+\end{NewMacroBox}
+
+\subsubsection{Example}
+The macro \tkzcname{tkzDefCircle[radius](A,B)} defines the radius that we retrieve with \tkzcname{tkzGetLength}, but this result is in \tkzname{pt}.
+
+\begin{tkzexample}[latex=6cm,small]
+\begin{tikzpicture}[scale=.5]
+ \tkzDefPoint(0,0){A}
+ \tkzDefPoint(3,-4){B}
+ \tkzDefCircle[through](A,B)
+ \tkzGetLength{rABpt}
+ \tkzpttocm(\rABpt){rABcm}
+ \tkzDrawCircle(A,B)
+ \tkzDrawPoints(A,B)
+ \tkzLabelPoints(A,B)
+ \tkzDrawSegment[dashed](A,B)
+ \tkzLabelSegment(A,B){$\pgfmathprintnumber{\rABcm}$}
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsection{Get point coordinates}
+%<--------------------------------------------------------------------------–>
+% Coordonnées d'un point
+% result in #2x and #2y #1 is the point and we get its coordinates
+% use either $A$ one point \tkzGetPointCoord(A){V} then \Vx = xA and \Vy = yA
+% in cm
+% tkzGetPointCoord with [#1] cm or pt ?? todo
+%<--------------------------------------------------------------------------–>
+\begin{NewMacroBox}{tkzGetPointCoord}{\parg{$A$}\marg{name of macro}}%
+\begin{tabular}{lll}%
+arguments & example & explication \\
+\midrule
+\TAline{(point)\{name of macro\}} {\tkzcname{tkzGetPointCoord}(A)\{A\}}{\tkzcname{Ax} and \tkzcname{Ay} give coordinates for $A$}
+\end{tabular}
+
+\medskip
+Stores in two macros the coordinates of a point. If the name of the macro is \tkzname{p}, then \tkzcname{px} and \tkzcname{py} give the coordinates of the chosen point with the cm as unit.
+\end{NewMacroBox}
+
+\subsubsection{Coordinate transfer with \tkzcname{tkzGetPointCoord}}
+
+\begin{tkzexample}[width=8cm,small]
+\begin{tikzpicture}
+ \tkzInit[xmax=5,ymax=3]
+ \tkzGrid[sub,orange]
+ \tkzAxeXY
+ \tkzDefPoint(1,0){A}
+ \tkzDefPoint(4,2){B}
+ \tkzGetPointCoord(A){a}
+ \tkzGetPointCoord(B){b}
+ \tkzDefPoint(\ax,\ay){C}
+ \tkzDefPoint(\bx,\by){D}
+ \tkzDrawPoints[color=red](C,D)
+\end{tikzpicture}
+\end{tkzexample}
+
+\subsubsection{Sum of vectors with \tkzcname{tkzGetPointCoord}}
+\begin{tkzexample}[width=6cm,small]
+\begin{tikzpicture}[>=latex]
+ \tkzDefPoint(1,4){a}
+ \tkzDefPoint(3,2){b}
+ \tkzDefPoint(1,1){c}
+ \tkzDrawSegment[->,red](a,b)
+ \tkzGetPointCoord(c){c}
+ \draw[color=blue,->](a) -- ([shift=(b)]\cx,\cy) ;
+ \draw[color=purple,->](b) -- ([shift=(b)]\cx,\cy) ;
+ \tkzDrawSegment[->,blue](a,c)
+ \tkzDrawSegment[->,purple](b,c)
+\end{tikzpicture}
+\end{tkzexample}
+
+\endinput \ No newline at end of file