diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex | 205 |
1 files changed, 205 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex b/Master/texmf-dist/doc/latex/tkz-euclide/TKZdoc-euclide-tools.tex new file mode 100644 index 00000000000..819b57dc772 --- /dev/null +++ b/Master/texmf-dist/doc/latex/tkz-euclide/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 |