Now that the fixed points are defined, we can get new points from their references, with the macros of the package or with macros you create yourself. The calculations are usually done by the package and remain hidden.
You may need some mathematical constants; here is the list of the constants defined by the package.


\section{Auxiliary tools}
\subsection{Constants}

\tkzname{\tkznameofpack} knows the following constants:
\begin{tkzltxexample}[]
  \def\tkzPhi{1.618034}
  \def\tkzInvPhi{0.618034}
  \def\tkzSqrtPhi{1.27202}
  \def\tkzSqrTwo{1.414213}
  \def\tkzSqrThree{1.7320508}
  \def\tkzSqrFive{2.2360679}
  \def\tkzSqrTwobyTwo{0.7071065}
  \def\tkzPi{3.1415926}
  \def\tkzEuler{2.71828182}
\end{tkzltxexample}

\subsection{New point by calculation}

When a macro of \tkzname{\tkznameofpack} creates a new point, it is stored internally with the reference \tkzname{tkzPointResult}. You can give it your own reference with the macro \tkzcname{tkzGetPoint}; the new reference is placed between braces.

\begin{NewMacroBox}{tkzGetPoint}{\marg{ref}}%
If the result is in \tkzname{tkzPointResult}, you can access it with \tkzcname{tkzGetPoint}.

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{ref}{no default}{ \tkzcname{tkzGetPoint\{M\} } see the next example}
\end{tabular}
\end{NewMacroBox}

Sometimes you need to get two points. This is done with

\begin{NewMacroBox}{tkzGetPoints}{\marg{ref1}\marg{ref2}}%
The results are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}.

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{\{ref1,ref2\}}{no default}{ \tkzcname{tkzGetPoints\{M,N\} } It's the case with \tkzcname{tkzInterCC}}
\end{tabular}
\end{NewMacroBox}

If you only need the first or the second point, you can also use:

\begin{NewMacroBox}{tkzGetFirstPoint}{\marg{ref1}}%

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{ref1}{no default}{ \tkzcname{tkzGetFirstPoint\{M\} }}
\end{tabular}
\end{NewMacroBox}

\begin{NewMacroBox}{tkzGetSecondPoint}{\marg{ref2}}%

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{ref2}{no default}{ \tkzcname{tkzGetSecondPoint\{M\} }}
\end{tabular}
\end{NewMacroBox}

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}}%

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{name of a macro}{no default}{ \tkzcname{tkzGetLength\{rAB\} \tkzcname{rAB} gives the length in cm}}
\end{tabular}
\end{NewMacroBox}

%\tkzcname{tkzCalcLength}(A,B) After \tkzcname{tkzGetLength\{dAB\}} \tkzcname{dAB} gives $AB$ in cm}


\section{Special points}
Here are some special points.
%<--------------------------------------------------------------------------->
\subsection{Midpoint of a segment \tkzcname{tkzDefMidPoint}}
This macro defines the midpoint of a segment.

\begin{NewMacroBox}{tkzDefMidPoint}{\parg{pt1,pt2}}%
The result is in \tkzname{tkzPointResult}. We can access it with \tkzcname{tkzGetPoint}.

 \medskip
\begin{tabular}{lll}%
\toprule
arguments & default & definition \\
\midrule
\TAline{(pt1,pt2)}{no default}{pt1 and pt2 are two points}
\end{tabular}
\end{NewMacroBox}

\subsubsection{Use of \tkzcname{tkzDefMidPoint}}
See also the use of \tkzcname{tkzDefPoint}.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=1]
 \tkzDefPoint(2,3){A}
 \tkzDefPoint(6,2){B}
 \tkzDefMidPoint(A,B)
 \tkzGetPoint{M}
 \tkzDrawSegment(A,B)
 \tkzDrawPoints(A,B,M)
 \tkzLabelPoints[below](A,B,M)
\end{tikzpicture}
\end{tkzexample}

\subsection{\tkzname{Golden ratio} \tkzcname{tkzDefGoldenRatio}}
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$ and $b$ such that $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 of 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 $\dfrac{AC}{AB} = \dfrac{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}

\subsubsection{Golden arbelos}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.6]
\tkzDefPoints{0/0/A,10/0/B}
\tkzDefGoldenRatio(A,B)     \tkzGetPoint{C}
\tkzDefMidPoint(A,B)        \tkzGetPoint{O_1}
\tkzDefMidPoint(A,C)        \tkzGetPoint{O_2}
\tkzDefMidPoint(C,B)        \tkzGetPoint{O_3}
\tkzDrawSemiCircles[fill=purple!15](O_1,B)
\tkzDrawSemiCircles[fill=teal!15](O_2,C O_3,B)
\end{tikzpicture}
\end{tkzexample}

You can also use the following macro.
\subsection{\tkzname{Barycentric coordinates} with \tkzcname{tkzDefBarycentricPoint}}

$n$ points $pt_1$, $pt_2$, \dots, $pt_n$ define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin as common starting point. $\alpha_1$, $\alpha_2$,
\dots, $\alpha_n$ are $n$ numbers; the vector
\begin{align*}
  \frac{\alpha_1 \overrightarrow{v_1} + \alpha_2 \overrightarrow{v_2} + \cdots + \alpha_n \overrightarrow{v_n}}{\alpha_1
    + \alpha_2 + \cdots + \alpha_n}
\end{align*}
defines a unique point.

\begin{NewMacroBox}{tkzDefBarycentricPoint}{\parg{pt1=$\alpha_1$,pt2=$\alpha_2$,\dots}}%
\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
\emph{You need at least two points. Result in \tkzname{tkzPointResult}.}
\end{NewMacroBox}


\subsubsection{With two points}
In the following example, we get the barycenter of the points $A$ and $B$ with the coefficients $1$ and $2$, in other words:
\[
  \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB}
\]

\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
  \tkzDefPoint(2,3){A}
  \tkzDefShiftPointCoord[2,3](30:4){B}
  \tkzDefBarycentricPoint(A=1,B=2)
  \tkzGetPoint{G}
  \tkzDrawLine(A,B)
  \tkzDrawPoints(A,B,G)
  \tkzLabelPoints(A,B,G)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{With three points}
This time $M$ is simply the centroid of the triangle.

 For simplicity and consistency, there is also \tkzcname{tkzCentroid}.
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.8]
  \tkzDefPoints{2/1/A,5/3/B,0/6/C}
  \tkzDefBarycentricPoint(A=1,B=1,C=1)
  \tkzGetPoint{G}
  \tkzDefMidPoint(A,B)  \tkzGetPoint{C'}
  \tkzDefMidPoint(A,C)  \tkzGetPoint{B'}
  \tkzDefMidPoint(C,B)  \tkzGetPoint{A'}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawLines[add=0 and 1,new](A,G B,G C,G)
  \tkzDrawPoints[new](A',B',C',G)
  \tkzDrawPoints(A,B,C)
  \tkzLabelPoint[above right](G){$G$}
  \tkzAutoLabelPoints[center=G](A,B,C)
  \tkzLabelPoints[above right](A')
  \tkzLabelPoints[below](B',C')
\end{tikzpicture}
\end{tkzexample}


\subsection{Internal and external similitude centers: \tkzcname{tkzDefSimilitudeCenter}}
The centers of the two homotheties that map one circle onto another are called the external and internal centers of similitude. You can use \tkzcname{tkzDefIntSimilitudeCenter} and \tkzcname{tkzDefExtSimilitudeCenter}, but the following macro is better.

\begin{NewMacroBox}{tkzDefSimilitudeCenter}{\oarg{options}\parg{O,A}\parg{O',B}}%

\begin{tabular}{lll}%
arguments           & example & explanation                         \\
\midrule
\TAline{\parg{pt1,pt2}\parg{pt3,pt4}}{$(O,A)(O',B)$} {$r=OA,r'=O'B$}
\end{tabular}

\medskip
\begin{tabular}{lll}%
\toprule
options             & default & definition                         \\
\midrule
\TOline{ext}{ext}{external center}
\TOline{int}{ext}{internal center}
\end{tabular}
\end{NewMacroBox}

\subsubsection{Internal and external with \tkzname{node}}
\begin{tkzexample}[latex=7.5cm,small]
\begin{tikzpicture}[scale=.7]
 \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}
 \tkzDefLine[tangent from = I](O,B)       
 \tkzGetPoints{D}{E}
 \tkzDefLine[tangent from = I](A,C)       
 \tkzGetPoints{D'}{E'}
 \tkzDefLine[tangent from = J](O,B)       
 \tkzGetPoints{F}{G}
 \tkzDefLine[tangent 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')
\end{tikzpicture}
\end{tkzexample}

\subsubsection{D'Alembert Theorem} % (fold)
\label{ssub:d_alembert_theorem}

\begin{tkzexample}[latex=7cm,small]
 \begin{tikzpicture}[scale=.6,rotate=90]
 \tkzDefPoints{0/0/A,3/0/a,7/-1/B,5.5/-1/b}
 \tkzDefPoints{5/-4/C,4.25/-4/c}
 \tkzDrawCircles(A,a B,b C,c)
 \tkzDefExtSimilitudeCenter(A,a)(B,b) \tkzGetPoint{I}
 \tkzDefExtSimilitudeCenter(A,a)(C,c) \tkzGetPoint{J}
 \tkzDefExtSimilitudeCenter(C,c)(B,b) \tkzGetPoint{K}
 \tkzDefIntSimilitudeCenter(A,a)(B,b) \tkzGetPoint{I'}
 \tkzDefIntSimilitudeCenter(A,a)(C,c) \tkzGetPoint{J'}
 \tkzDefIntSimilitudeCenter(C,c)(B,b) \tkzGetPoint{K'}
 \tkzDrawPoints(A,B,C,I,J,K,I',J',K')
 \tkzDrawSegments[new](I,K A,I A,J B,I B,K C,J C,K)
 \tkzDrawSegments[new](I,J' I',J I',K)
 \end{tikzpicture}
\end{tkzexample}

% subsubsection d_alembert_theorem (end)

You can also use \tkzcname{tkzDefBarycentricPoint} to find a center of homothety:

|\tkzDefBarycentricPoint(O=\r,A=\R)     \tkzGetPoint{I}| \\
|\tkzDefBarycentricPoint(O={-\r},A=\R)  \tkzGetPoint{J}|

\subsubsection{Example with \tkzname{node}}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[rotate=60,scale=.5]
 \tkzDefPoints{0/0/A,5/0/C}
 \tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
 \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')
\end{tikzpicture}
\end{tkzexample}
\newpage
%<---------------------------------------------------------------------->
\subsection{ \tkzname{Harmonic division} with \tkzcname{tkzDefHarmonic}}
%<---------------------------------------------------------------------->

\begin{NewMacroBox}{tkzDefHarmonic}{\oarg{options}\parg{pt1,pt2,pt3} or \parg{pt1,pt2,k}}%

\begin{tabular}{lll}%
options             & default & definition                         \\
\midrule
\TOline{both}{both}{\parg{A,B,2} we look for C and D such that $(A,B;C,D) = -1$ and CA=2CB }
\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}

\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{Bisector and harmonic division} % (fold)
\label{ssub:bisector_and_harmonic_division}

\begin{tkzexample}[vbox,small]
  \begin{tikzpicture}[scale=1.25]
  \tkzDefPoints{0/0/A,4/0/C,5/3/X}
  \tkzDefLine[bisector](A,X,C) \tkzGetPoint{x}
  \tkzInterLL(X,x)(A,C)        \tkzGetPoint{B}
  \tkzDefHarmonic[ext](A,C,B)  \tkzGetPoint{D}
  \tkzDrawPolygon(A,X,C)
  \tkzDrawSegments(X,B C,D D,X)
  \tkzDrawPoints(A,B,C,D,X)
  \tkzMarkAngles[mark=s|](A,X,B B,X,C)
  \tkzMarkRightAngle[size=.4,
                     fill=gray!20,
                     opacity=.3](B,X,D)
  \tkzLabelPoints(A,B,C,D)
  \tkzLabelPoints[above right](X)
  \end{tikzpicture}
\end{tkzexample}


% subsubsection bisector_and_harmonic_division (end)
\subsubsection{Option \tkzname{both}}
\tkzname{both} is the default option
\begin{tkzexample}[vbox,small]
\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}

%<---------------------------------------------------------------------->
\subsection{\tkzname{Equidistant points} with \tkzcname{tkzDefEquiPoints} }
%<---------------------------------------------------------------------->

\begin{NewMacroBox}{tkzDefEquiPoints}{\oarg{local options}\parg{pt1,pt2}}%
\begin{tabular}{lll}%
arguments &  default & definition \\
\midrule
\TAline{(pt1,pt2)}{no default}{unordered list of two items}
\end{tabular}

\begin{tabular}{lll}%
options             & default & definition  \\
\midrule
\TOline{dist} {2 (cm)} {half the distance between the two points}
\TOline{from=pt} {no default} {reference point}
\TOline{show} {false} {if true displays compass traces}
\TOline{/compass/delta} {0} {size of the compass mark}
\end{tabular}

\medskip
\emph{This macro gives two points of a straight line equidistant from a given point.}
\end{NewMacroBox}


\subsubsection{Using \tkzcname{tkzDefEquiPoints} with options}
\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
  \tkzSetUpCompass[color=purple,line width=1pt]
  \tkzDefPoints{0/1/A,5/2/B,3/4/C}
  \tkzDefEquiPoints[from=C,dist=1,show,
      /tkzcompass/delta=20](A,B)
   \tkzGetPoints{E}{H}
   \tkzDrawLines[color=blue](C,E C,H A,B)
   \tkzDrawPoints[color=blue](A,B,C)
   \tkzDrawPoints[color=red](E,H)
   \tkzLabelPoints(E,H)
   \tkzLabelPoints[color=blue](A,B,C)
\end{tikzpicture}
\end{tkzexample}
%<---------------------------------------------------------------------->
%                          Middle of an arc                             >
%<---------------------------------------------------------------------->
\subsection{Midpoint of an arc}
\begin{NewMacroBox}{tkzDefMidArc}{\parg{pt1,pt2,pt3}}%
\begin{tabular}{lll}%
arguments &  default & definition \\
\midrule
\TAline{$pt1,pt2,pt3$}{no default}{$pt1$ is the center, $\widearc{pt2pt3}$ the  arc}
\end{tabular}
\end{NewMacroBox}

\begin{tkzexample}[vbox,small]
  \begin{tikzpicture}[scale=1]
   \tkzDefPoints{0/0/A,10/0/B}
   \tkzDefGoldenRatio(A,B)                              \tkzGetPoint{C}
   \tkzDefMidPoint(A,B)                                 \tkzGetPoint{O_1}
   \tkzDefMidPoint(A,C)                                 \tkzGetPoint{O_2}
   \tkzDefMidPoint(C,B)                                 \tkzGetPoint{O_3}
   \tkzDefMidArc(O_3,B,C)                               \tkzGetPoint{P}
   \tkzDefMidArc(O_2,C,A)                               \tkzGetPoint{Q}
   \tkzDefMidArc(O_1,B,A)                               \tkzGetPoint{L}
   \tkzDefPointBy[rotation=center C angle 90](B)        \tkzGetPoint{c}
   \tkzInterCC[common=B](P,B)(O_1,B)                    \tkzGetFirstPoint{P_1}
   \tkzInterCC[common=C](P,C)(O_2,C)                    \tkzGetFirstPoint{P_2}
   \tkzInterCC[common=C](Q,C)(O_3,C)                    \tkzGetFirstPoint{P_3}
   \tkzInterLC[near](c,C)(O_1,A)                        \tkzGetFirstPoint{D}
   \tkzInterLL(A,P_1)(C,D)                              \tkzGetPoint{P_1'}
   \tkzDefPointBy[inversion = center A through D](P_2)  \tkzGetPoint{P_2'}
   \tkzDefCircle[circum](P_3,P_2,P_1)                   \tkzGetPoint{O_4}
   \tkzInterLL(B,Q)(A,P)                                \tkzGetPoint{S}
   \tkzDefMidPoint(P_2',P_1')                           \tkzGetPoint{o}
   \tkzDefPointBy[inversion = center A through D](S)    \tkzGetPoint{S'}
   \tkzDrawArc[cyan,delta=0](Q,A)(P_1)
   \tkzDrawArc[cyan,delta=0](P,P_1)(B)
   \tkzDrawSemiCircles[teal](O_1,B O_2,C O_3,B)
   \tkzDrawCircles[new](o,P O_4,P_1)
   \tkzDrawSegments(A,B)
   \tkzDrawSegments[cyan](A,P_1 A,S' A,P_2')
   \tkzDrawSegments[purple](B,L C,P_2' B,Q B,L S',P_1')
   \tkzDrawLines[add=0 and .8](B,P_2')
   \tkzDrawLines[add=0 and .4](C,D)
   \tkzDrawPoints(A,B,C,P,Q,P_3,P_2,P_1,P_1',D,P_2',L,S,S')
   \tkzLabelPoints(A,B,C,P_3)
   \tkzLabelPoints[above](P,Q,P_1)
   \tkzLabelPoints[above right](P_2,P_2',D,S')
   \tkzLabelPoints[above left](L,S)
    \tkzLabelPoints[below left](P_1')
  \end{tikzpicture}
\end{tkzexample}

%<---------------------------------------------------------------------->
%                          Point on a line                              >
%<---------------------------------------------------------------------->

\section{Point on line or circle}
\subsection{Point on a line with \tkzcname{tkzDefPointOnLine}}

\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 with \tkzcname{tkzDefPointOnCircle}}
The order of the arguments has changed: now it is center, angle and point or radius.
Two options work with radians: \tkzname{through in rad} and \tkzname{R in rad}.

\begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}%
\begin{tabular}{lll}%
options   & default & examples definition \\
\midrule
\TOline{through}  {}{through =  center K1 angle 30 point B]}
\TOline{R} {}{R =  center K1 angle 30 radius \tkzcname{rAp}}
\TOline{through in rad}  {}{through in rad=  center K1 angle pi/4 point B]}
\TOline{R in rad} {}{R in rad =  center K1 angle pi/6 radius \tkzcname{rAp}}
\end{tabular}

\medskip
\emph{The order of the arguments is: center, angle, and point or radius.}
\end{NewMacroBox}

\subsubsection{Altshiller's Theorem}
 The two lines joining the points of intersection of two orthogonal circles to a point of one of the circles meet the other circle in two diametrically opposite points (Altshiller-Court, p.~176).

\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=.4]
\tkzDefPoints{0/0/P,5/0/Q,3/2/I}
\tkzDefCircle[orthogonal from=P](Q,I)
\tkzGetFirstPoint{E}
\tkzDrawCircles(P,E Q,E)
\tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F}
\tkzDefPointOnCircle[through =  center P angle 80 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=6cm,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B,0.8/3/C}
\tkzDefPointOnCircle[R = center B  angle 90 radius 1]
\tkzGetPoint{I}
\tkzDefCircle[circum](A,B,C)
\tkzGetPoints{G}{g}
\tkzDefPointOnCircle[through = center G angle 30 point g]
\tkzGetPoint{J}
\tkzDefCircle[R](B,1) \tkzGetPoint{b}
\tkzDrawCircle[teal](B,b)
\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}

\subsection{Triangle center: \tkzcname{tkzDefTriangleCenter}}

\begin{NewMacroBox}{tkzDefTriangleCenter}{\oarg{local options}\parg{A,B,C}}%
\tkzHandBomb\ This macro defines a center of a triangle. Be careful: the arguments are lists of three points. The macro is used together with \tkzcname{tkzGetPoint} to get the center you are looking for.

 You can use \tkzname{tkzPointResult} directly if you don't need to keep the result.

\medskip
\begin{tabular}{lll}%
\toprule
arguments & default & example \\
\midrule
\TAline{(pt1,pt2,pt3)}{no default}{ \tkzcname{tkzDefTriangleCenter[ortho](B,C,A)}}
\midrule
options             & default & definition                         \\
\midrule
\TOline{ortho}  {circum}{intersection of the altitudes}
\TOline{orthic}  {circum}{\dots}
\TOline{centroid} {circum}{intersection of the medians}
\TOline{median} {circum}{ \dots }
\TOline{circum}{circum}{circle center circumscribed}
\TOline{in}    {circum}{center of the circle inscribed in a triangle }
\TOline{in}    {circum}{intersection of the bisectors}
\TOline{ex}    {circum}{center of a circle exinscribed to a triangle }
\TOline{euler}{circum}{center of Euler's circle }
\TOline{gergonne}{circum}{defined with the Contact triangle}
\TOline{symmedian} {circum}{Lemoine's point or symmedian center or Grebe's point }
\TOline{lemoine} {circum}{ \dots}
\TOline{grebe} {circum}{ \dots}
\TOline{spieker} {circum}{Spieker circle center}
\TOline{nagel}{circum}{Nagel Center}
\TOline{mittenpunkt} {circum}{Or middlespoint}
\TOline{feuerbach}{circum}{Feuerbach Point}

\end{tabular}
\end{NewMacroBox}

\subsubsection{Option \tkzname{ortho} or \tkzname{orthic}}
 The intersection $H$ of the three altitudes of a triangle is called the orthocenter.

\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}
  \tkzDefPoint(0,0){A}
  \tkzDefPoint(5,1){B}
  \tkzDefPoint(1,4){C}
  \tkzDefTriangleCenter[ortho](B,C,A)
  \tkzGetPoint{H}
  \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawSegments[new](A,Ha B,Hb C,Hc)
  \tkzDrawPoints(A,B,C,H)
  \tkzLabelPoint(H){$H$}
  \tkzLabelPoints[below](A,B)
  \tkzLabelPoints[above](C)
 \tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{centroid}}
\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=.75]
  \tkzDefPoints{0/0/A,5/0/B,1/4/C}
  \tkzDefTriangleCenter[centroid](A,B,C)
  \tkzGetPoint{G}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawLines[add = 0 and 2/3,new](A,G B,G C,G)
  \tkzDrawPoints(A,B,C,G)
  \tkzLabelPoint(G){$G$}
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{circum}}
\begin{tkzexample}[latex=6cm,small]
 \begin{tikzpicture}
  \tkzDefPoints{0/1/A,3/2/B,1/4/C}
  \tkzDefTriangleCenter[circum](A,B,C)
  \tkzGetPoint{O}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawCircle(O,A)
  \tkzDrawPoints(A,B,C,O)
  \tkzLabelPoint(O){$O$}
\end{tikzpicture}
\end{tkzexample}

\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.\\
(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia})

 \medskip
 We get the center of the incircle of the triangle. The result is of course in \tkzname{tkzPointResult}; we retrieve it with \tkzcname{tkzGetPoint}.

\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[in](A,B,C)
   \tkzGetPoint{I}
\tkzDrawLines(A,B B,C C,A)
\tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{i}
\tkzDrawCircle(I,i)
\tkzDrawPoint[red](I)
\tkzDrawPoints(A,B,C)
\tkzLabelPoint(I){$I$}
\end{tikzpicture}
\end{tkzexample}

\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.\\
(Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia})


 We get the center of an excircle of the triangle. The result is of course in \tkzname{tkzPointResult}; we retrieve it with \tkzcname{tkzGetPoint}.

\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}[scale=.5]
  \tkzDefPoints{0/1/A,3/2/B,1/4/C}
  \tkzDefTriangleCenter[ex](B,C,A)
  \tkzGetPoint{J_c}
  \tkzDefPointBy[projection=onto A--B](J_c)
  \tkzGetPoint{Tc}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawCircle[new](J_c,Tc)
  \tkzDrawLines[add=1.5 and 0](A,C B,C)
  \tkzDrawPoints(A,B,C,J_c)
  \tkzLabelPoints(J_c)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{euler}}
This macro gives the center of the nine-point circle, also called Euler's circle or Feuerbach's circle. The nine-point circle, also called Euler's circle or the Feuerbach circle, is the circle that passes through the perpendicular feet $H_A$, $H_B$, and $H_C$ dropped from the vertices of any reference triangle $ABC$ on the sides opposite them. Euler showed in 1765 that it also passes through the midpoints $M_A$, $M_B$, $M_C$ of the sides of $ABC$. By Feuerbach's theorem, the nine-point circle also passes through the midpoints $E_A$, $E_B$, and $E_C$ of the segments that join the vertices and the orthocenter $H$. These points are commonly referred to as the Euler points.\\ (\url{https://mathworld.wolfram.com/Nine-PointCircle.html})

\begin{tkzexample}[latex=6cm,small]
\begin{tikzpicture}[scale=1.2,rotate=90]
 \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
 \tkzDefSpcTriangle[medial,name=M](A,B,C){_A,_B,_C}
 \tkzDefTriangleCenter[euler](A,B,C)\tkzGetPoint{N}
 % I= N nine points
 \tkzDefTriangleCenter[ortho](A,B,C)\tkzGetPoint{H}
 \tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
 \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
 \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
 \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
 \tkzDrawPolygon(A,B,C)
 \tkzDrawCircle[new](N,E_A)
 \tkzDrawSegments[new](A,H_A B,H_B C,H_C)
 \tkzDrawPoints(A,B,C,N,H)
 \tkzDrawPoints[new](M_A,M_B,M_C)
 \tkzDrawPoints( H_A,H_B,H_C)
 \tkzDrawPoints[green](E_A,E_B,E_C)
 \tkzAutoLabelPoints[center=N,
 font=\scriptsize](A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,%
   E_A,E_B,E_C)
 \tkzLabelPoints[font=\scriptsize](H,N)
 \tkzMarkSegments[mark=s|,size=3pt,
 color=blue,line width=1pt](B,E_B E_B,H)
\end{tikzpicture}
\end{tkzexample}


\subsubsection{Option \tkzname{symmedian}}

The point of concurrence $K$ of the symmedians, sometimes also called the Lemoine point (in England and France) or the Grebe point (in Germany).\\
\href{https://mathworld.wolfram.com/SymmedianPoint.html}{Weisstein, Eric W. "Symmedian Point." From MathWorld--A Wolfram Web Resource.}

\begin{tkzexample}[latex=7cm,small]
\begin{tikzpicture}
  \tkzDefPoint(0,0){A}
  \tkzDefPoint(5,0){B}
  \tkzDefPoint(1,4){C}
  \tkzDefTriangleCenter[symmedian](A,B,C)
  \tkzGetPoint{K}
  \tkzDefTriangleCenter[median](A,B,C)
  \tkzGetPoint{G}
  \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
  \tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
  \tkzDefSpcTriangle[incentral,name=I](A,B,C){a,b,c}
  \tkzDrawPolygon(A,B,C)
  \tkzDrawLines[add = 0 and 2/3,new](A,K B,K C,K)
  \tkzDrawSegments[color=cyan](A,Ma B,Mb C,Mc)
  \tkzDrawSegments[color=green](A,Ia B,Ib C,Ic)
  \tkzDrawPoints(A,B,C,K,G,I)
  \tkzLabelPoints[font=\scriptsize](A,B,K,G,I)
  \tkzLabelPoints[above,font=\scriptsize](C)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{spieker}}
The Spieker center is the center $Sp$ of the Spieker circle, i.e., the incenter of the medial triangle of a reference triangle.\\
\href{https://mathworld.wolfram.com/SpiekerCenter.html}{Weisstein, Eric W. "Spieker Center." From MathWorld--A Wolfram Web Resource. }

\begin{tkzexample}[latex=8cm,small]
\begin{tikzpicture}
 \tkzDefPoints{0/0/A,6/0/B,5/5/C}
 \tkzDefSpcTriangle[medial](A,B,C){Ma,Mb,Mc}
 \tkzDefTriangleCenter[centroid](A,B,C)
 \tkzGetPoint{G}
 \tkzDefTriangleCenter[spieker](A,B,C)
 \tkzGetPoint{Sp}
 \tkzDrawPolygon[](A,B,C)
 \tkzDrawPolygon[new](Ma,Mb,Mc)
 \tkzDefCircle[in](Ma,Mb,Mc) \tkzGetPoints{I}{i}
 \tkzDrawCircle(I,i)
 \tkzDrawPoints(B,C,A,Sp,Ma,Mb,Mc)
 \tkzAutoLabelPoints[center=G,dist=.3](Ma,Mb)
 \tkzLabelPoints[right](Sp)
 \tkzLabelPoints[below](A,B,Mc)
 \tkzLabelPoints[above](C)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{gergonne}}

The Gergonne Point is the point of concurrency which results from connecting the vertices of a triangle to the opposite points of tangency of the triangle's incircle.
(Joseph Gergonne, French mathematician.)

\begin{tkzexample}[latex=8cm,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/B,3.6/0/C,2.8/4/A}
\tkzDefTriangleCenter[gergonne](A,B,C)
\tkzGetPoint{Ge}
\tkzDefSpcTriangle[intouch](A,B,C){C_1,C_2,C_3}
\tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{i}
\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
\tkzDrawSegments[new](A,C_1 B,C_2 C,C_3)
\tkzDrawPoints(A,...,C,C_1,C_2,C_3)
\tkzDrawPoints[red](Ge)
\tkzLabelPoints(B,C,C_1,Ge)
\tkzLabelPoints[above](A,C_2,C_3)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Option \tkzname{nagel}}
Let $Ta$ be the point at which the excircle with center $Ja$ meets the side $BC$ of a triangle $ABC$, and define $Tb$ and $Tc$ similarly. Then the lines $ATa$, $BTb$, and $CTc$ concur in the Nagel point $Na$.\\
\href{https://mathworld.wolfram.com/NagelPoint.html}{Weisstein, Eric W. "Nagel point." From MathWorld--A Wolfram Web Resource. }


\begin{tkzexample}[latex=7cm,small]
  \begin{tikzpicture}[scale=.5]
  \tkzDefPoints{0/0/A,6/0/B,4/6/C}
  \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
  \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
  \tkzDefTriangleCenter[nagel](A,B,C)
  \tkzGetPoint{Na}
  \tkzDrawPolygon[blue](A,B,C)
  \tkzDrawLines[add=0 and 1](A,Ta B,Tb C,Tc)
  \tkzDrawPoints[new](Ja,Jb,Jc,Ta,Tb,Tc)
  \tkzClipBB
  \tkzDrawLines[add=1 and 1,dashed](A,B B,C C,A)
  \tkzDrawCircles[new](Ja,Ta Jb,Tb Jc,Tc)
  \tkzDrawSegments[new,dashed](Ja,Ta Jb,Tb Jc,Tc)
  \tkzDrawPoints(B,C,A)
  \tkzDrawPoints[new](Na)
  \tkzLabelPoints(B,C,A)
  \tkzLabelPoints[new](Na)
  \tkzLabelPoints[new](Ja,Jb,Jc,Ta,Tb,Tc)
  \tkzMarkRightAngles[fill=gray!20](Ja,Ta,C
              Jb,Tb,A Jc,Tc,B)
  \end{tikzpicture}
\end{tkzexample}


\subsubsection{Option   \tkzname{mittenpunkt}}

The mittenpunkt (also called the middlespoint) of a triangle $ABC$ is the symmedian point of the excentral triangle, i.e., the point of concurrence $M$ of the lines from the excenters through the midpoints of the corresponding sides.\\
\href{https://mathworld.wolfram.com/Mittenpunkt.html}{Weisstein, Eric W. "Mittenpunkt." From MathWorld--A Wolfram Web Resource.}


\begin{tkzexample}[latex=8cm,small]
\begin{tikzpicture}[scale=.5]
 \tkzDefPoints{0/0/A,6/0/B,4/6/C}
 \tkzDefSpcTriangle[centroid](A,B,C){Ma,Mb,Mc}
 \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
 \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
 \tkzDefTriangleCenter[mittenpunkt](A,B,C)
 \tkzGetPoint{Mi}
 \tkzDrawPoints[new](Ma,Mb,Mc,Ja,Jb,Jc)
 \tkzClipBB
 \tkzDrawPolygon[blue](A,B,C)
 \tkzDrawLines[add=0 and 1](Ja,Ma
               Jb,Mb Jc,Mc)
 \tkzDrawLines[add=1 and 1](A,B A,C B,C)
 \tkzDrawCircles[new](Ja,Ta Jb,Tb Jc,Tc)
 \tkzDrawPoints(B,C,A)
 \tkzDrawPoints[new](Mi)
 \tkzLabelPoints(Mi)
 \tkzLabelPoints[left](Mb)
 \tkzLabelPoints[new](Ma,Mc,Jb,Jc)
 \tkzLabelPoints[above left](Ja,Jc)
\end{tikzpicture}
\end{tkzexample}

\subsubsection{Relation between  \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}}

The Gergonne point $Ge$, the centroid $G$ and the mittenpunkt $M$ are collinear, with $GeG/GM=2$.

\begin{tkzexample}[vbox,small]
\begin{tikzpicture}
\tkzDefPoints{0/0/A,2/2/B,8/0/C}
\tkzDefTriangleCenter[gergonne](A,B,C) \tkzGetPoint{Ge}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\tkzDefTriangleCenter[mittenpunkt](A,B,C)
\tkzGetPoint{M}
\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
\tkzDrawLines[add=.25 and .25,new](Ge,M)
\tkzDrawPoints(A,...,C)
\tkzDrawPoints[red,size=2](G,M,Ge)
\tkzLabelPoints(A,...,C,M,G,Ge)
\tkzMarkSegment[mark=s||](Ge,G)
\tkzMarkSegment[mark=s|](G,M)
\end{tikzpicture}
\end{tkzexample}

\endinput