\subsection{Definition of circle by transformation; \tkzcname{tkzDefCircleBy} } These transformations are: \begin{itemize} \item translation; \item homothety; \item orthogonal reflection or symmetry; \item central symmetry; \item orthogonal projection; \item rotation (degrees); \item inversion. \end{itemize} The choice of transformations is made through the options. The macro is \tkzcname{tkzDefCircleBy} and the other for the transformation of a list of points \tkzcname{tkzDefCirclesBy}. For example, we'll write: \begin{tkzltxexample}[] \tkzDefCircleBy[translation= from A to A'](O,M) \end{tkzltxexample} $O$ is the center and $M$ is a point on the circle. The image is a circle. The new center is |tkzFirstPointResult| and |tkzSecondPointResult| is a point on the new circle. You can get the results with the macro \tkzcname{tkzGetPoints}. \medskip \begin{NewMacroBox}{tkzDefCircleBy}{\oarg{local options}\parg{pt1,pt2}}% The argument is a couple of points. The results is a couple of points. If you want to keep these points then the macro \tkzcname{tkzGetPoints\{O'\}\{M'\}} allows you to assign the name \tkzname{O'} to the center and \tkzname{M'} to the point on the circle. \begin{tabular}{lll}% \toprule arguments & definition & examples \\ \midrule \TAline{pt1,pt2} {existing points} {$(O,M)$} \bottomrule \end{tabular} \begin{tabular}{lll}% options & & examples \\ \midrule \TOline{translation}{= from \#1 to \#2}{[translation=from A to B](O,M)} \TOline{homothety} {= center \#1 ratio \#2}{[homothety=center A ratio .5](O,M)} \TOline{reflection} {= over \#1--\#2}{[reflection=over A--B](O,M)} \TOline{symmetry } {= center \#1}{[symmetry=center A](O,M)} \TOline{projection }{= onto \#1--\#2}{[projection=onto A--B](O,M)} \TOline{rotation } {= center \#1 angle \#2}{[rotation=center O angle 30](O,M)} \TOline{inversion}{= center \#1 through \#2}{[inversion =center O through A](O,M)} % \TOline{inversion negative}{= center \#1 through \#2}{[inversion negative =center O through A](O,M)} \bottomrule \end{tabular} \medskip \emph{The image is only defined and not drawn.} \end{NewMacroBox} \subsubsection{\tkzname{Translation}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[>=latex] \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D} \tkzDefCircleBy[translation= from B to A](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[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} \subsubsection{\tkzname{Reflection} (orthogonal symmetry)} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[>=latex] \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D} \tkzDefCircleBy[reflection = over A--B](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[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,right](D,D') \end{tikzpicture} \end{tkzexample} \subsubsection{\tkzname{Homothety}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1.2] \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D} \tkzDefCircleBy[homothety=center A ratio .5](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](A,C,D,C',D') \tkzDrawCircles(C,D C',D') \tkzLabelPoints[color=teal](A,C,C') \tkzLabelPoints[color=teal,right](D,D') \end{tikzpicture} \end{tkzexample} \subsubsection{\tkzname{Symmetry}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1] \tkzDefPoint(3,1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D} \tkzDefCircleBy[symmetry=center B](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints[teal](B,C,D,C',D') \tkzDrawLines[orange](C,C' D,D') \tkzDrawCircles(C,D C',D') \tkzLabelPoints[color=teal](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(3,-1){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){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') \tkzDrawCircles(C,D C',D') \end{tikzpicture} \end{tkzexample} \subsubsection{\tkzname{Inversion}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1.5] \tkzSetUpPoint[size=3,color=red,fill=red!20] \tkzSetUpStyle[color=purple,ultra thin]{st1} \tkzSetUpStyle[color=cyan,ultra thin]{st2} \tkzDefPoint(2,0){A} \tkzDefPoint(3,0){B} \tkzDefPoint(3,2){C} \tkzDefPoint(4,2){D} \tkzDefCircleBy[inversion = center B through A](C,D) \tkzGetPoints{C'}{D'} \tkzDrawPoints(A,B,C,D,C',D') \tkzLabelPoints(A,B,C,D,C',D') \tkzDrawCircles(B,A) \tkzDrawCircles[st1](C,D) \tkzDrawCircles[st2](C',D') \end{tikzpicture} \end{tkzexample} \endinput