\newpage

\section{Examples} % (fold)
\label{sec:examples}
   
\subsection{D'Alembert 1} % (fold)
\label{sub:d_alembert_1}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
   \begin{verbatim}
   \begin{tkzelements}
      z.A = point : new (0,0)
      z.a = point : new (4,0)
      z.B = point : new (7,-1)
      z.b = point : new (5.5,-1)
      z.C = point : new (5,-4)
      z.c = point : new (4.25,-4)
      C.Aa    = circle :    new (z.A,z.a)
      C.Bb    = circle :    new (z.B,z.b)
      C.Cc    = circle :    new (z.C,z.c)
      z.I = C.Aa : external_similitude (C.Bb)
      z.J = C.Aa : external_similitude (C.Cc)
      z.K = C.Cc : external_similitude (C.Bb)
      z.Ip    = C.Aa : internal_similitude (C.Bb)
      z.Jp    = C.Aa : internal_similitude (C.Cc)
      z.Kp    = C.Cc : internal_similitude (C.Bb)
   \end{tkzelements}
   \begin{tikzpicture}[rotate=-60]
      \tkzGetNodes
      \tkzDrawCircles(A,a B,b C,c)
      \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[purple](I,J' I',J I',K)
      \tkzLabelPoints(I,J,K,I',J',K')
   \end{tikzpicture}
   \end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = .5
z.A = point : new (0,0)
z.a = point : new (4,0)
z.B = point : new (7,-1)
z.b = point : new (5.5,-1)
z.C = point : new (5,-4)
z.c = point : new (4.25,-4)
C.Aa    = circle :    new (z.A,z.a)
C.Bb    = circle :    new (z.B,z.b)
C.Cc    = circle :    new (z.C,z.c)
z.I = C.Aa : external_similitude (C.Bb)
z.J = C.Aa : external_similitude (C.Cc)
z.K = C.Cc : external_similitude (C.Bb)
z.Ip    = C.Aa : internal_similitude (C.Bb)
z.Jp    = C.Aa : internal_similitude (C.Cc)
z.Kp    = C.Cc : internal_similitude (C.Bb)
\end{tkzelements}
\hspace*{\fill}  
\begin{tikzpicture}[rotate=30]
   \tkzGetNodes
   \tkzDrawCircles(A,a B,b C,c)
   \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[purple](I,J' I',J I',K)
   \tkzLabelPoints(I,J,K,I',J',K')
\end{tikzpicture}
\end{minipage}
% subsection d_alembert_1 (end)

\subsection{D'Alembert 2} % (fold)
\label{sub:d_alembert_2}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
   \begin{verbatim}
   \begin{tkzelements}
      scale = .75
      z.A     = point : new (0,0)
      z.a     = point : new (5,0)
      z.B     = point : new (7,-1)
      z.b     = point : new (3,-1)
      z.C     = point : new (5,-4)
      z.c     = point : new (2,-4)
      C.Aa    = circle :    new (z.A,z.a)
      C.Bb    = circle :    new (z.B,z.b)
      C.Cc    = circle :    new (z.C,z.c)
      z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
      z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
      z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
   \end{tkzelements}
   \begin{tikzpicture}
      \tkzGetNodes
      \tkzDrawCircles(A,a B,b C,c)
      \tkzDrawLines[new](i,j k,l m,n)
   \end{tikzpicture}
   \end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
   scale = .5
   z.A     = point : new (0,0)
   z.a     = point : new (5,0)
   z.B     = point : new (7,-1)
   z.b     = point : new (3,-1)
   z.C     = point : new (5,-4)
   z.c     = point : new (2,-4)
   C.Aa    = circle :    new (z.A,z.a)
   C.Bb    = circle :    new (z.B,z.b)
   C.Cc    = circle :    new (z.C,z.c)
   z.i,z.j = get_points (C.Aa : radical_axis (C.Bb))
   z.k,z.l = get_points (C.Aa : radical_axis (C.Cc))
   z.m,z.n = get_points (C.Bb : radical_axis (C.Cc))
\end{tkzelements}

\hspace*{\fill} 
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,a B,b C,c)
\tkzDrawLines[new](i,j k,l m,n)
\end{tikzpicture}
\end{minipage}
% subsection d_alembert_2 (end)

\subsection{Alternate} % (fold)
\label{sub:alternate}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.A  = point: new (0 , 0)
   z.B  = point: new (6 , 0)
   z.C  = point: new (1 , 5)
   T    = triangle: new (z.A,z.B,z.C)
   z.I  = T.incenter
   L.AI = line: new (z.A,z.I) 
   z.D  = intersection (L.AI,T.bc)
   L.LLC    = T.ab: ll_from (z.C)
   z.E  = intersection (L.AI,L.LLC)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawLine[purple](C,E)
   \tkzDrawSegment[purple](A,E)
   \tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
   \tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
   \tkzDrawPoints(A,...,E)
   \tkzLabelPoints(A,B)
   \tkzLabelPoints[above](C,D,E)
   \tkzMarkSegments(A,C C,E)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\hspace*{\fill} 
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
z.A  = point: new (0 , 0)
z.B  = point: new (6 , 0)
z.C  = point: new (1 , 5)
T    = triangle: new (z.A,z.B,z.C)
z.I  = T.incenter
L.AI = line: new (z.A,z.I) 
z.D  = intersection (L.AI,T.bc)
L.LLC    = T.ab: ll_from (z.C)
z.E  = intersection (L.AI,L.LLC)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawLine[purple](C,E)
\tkzDrawSegment[purple](A,E)
\tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D)
\tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)
\tkzDrawPoints(A,...,E)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D,E)
\tkzMarkSegments(A,C C,E)
\end{tikzpicture}
\end{minipage}
% subsection alternate (end)

\subsection{Apollonius circle} % (fold)
\label{sub:apollonius_circle}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale=.75
   z.A      = point: new (0 , 0)
   z.B      = point: new (6 , 0)
   z.M      = point: new (5 , 3)
   T.MAB    = triangle : new (z.M,z.A,z.B)
   L.bis    = T.MAB : bisector ()
   z.C      = L.bis.pb
   L.bisext = T.MAB : bisector_ext ()
   z.D      = intersection (T.MAB.bc, L.bisext)
   L.CD     = line: new (z.C,z.D)
   z.O      = L.CD.mid
   L.AM     = T.MAB.ab
   z.E      = z.M : symmetry (z.A)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawSegment[add=0 and 1](A,M)
   \tkzDrawSegments[purple](M,C M,D)
   \tkzDrawCircle[purple](O,C)
   \tkzDrawSegments(A,B B,M D,B)
   \tkzDrawPoints(A,B,M,C,D)
   \tkzLabelPoints[below right](A,B,C,D)
   \tkzLabelPoints[above](M)
   \tkzFillAngles[opacity=.4,cyan!20](A,M,B)
   \tkzFillAngles[opacity=.4,purple!20](B,M,E)
   \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
   \tkzMarkAngles[mark=|](A,M,C C,M,B)
   \tkzMarkAngles[mark=||](B,M,D D,M,E)
\end{tikzpicture} 
\end{tkzexample}


\begin{tkzelements}
scale=.75
   z.A  = point: new (0 , 0)
   z.B  = point: new (6 , 0)
   z.M  = point: new (5 , 3)
   T.MAB    = triangle : new (z.M,z.A,z.B)
   L.bis    = T.MAB : bisector ()
   z.C  = L.bis.pb
   L.bisext = T.MAB : bisector_ext ()
   z.D  = intersection (T.MAB.bc, L.bisext)
   L.CD = line: new (z.C,z.D)
   z.O  = L.CD.mid
   L.AM = T.MAB.ab
   z.E  = z.M : symmetry (z.A)
\end{tkzelements}

\hspace*{\fill}  
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawSegment[add=0 and 1](A,M)
   \tkzDrawSegments[purple](M,C M,D)
   \tkzDrawCircle[purple](O,C)
   \tkzDrawSegments(A,B B,M D,B)
   \tkzDrawPoints(A,B,M,C,D)
   \tkzLabelPoints[below right](A,B,C,D)
   \tkzLabelPoints[above](M)
   \tkzFillAngles[opacity=.4,cyan!20](A,M,B)
   \tkzFillAngles[opacity=.4,purple!20](B,M,E)
   \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
   \tkzMarkAngles[mark=|](A,M,C C,M,B)
   \tkzMarkAngles[mark=||](B,M,D D,M,E)
\end{tikzpicture} 
\hspace*{\fill}

%subsection apollonius_circle (end)

\subsection{Apollonius and circle circumscribed } % (fold)
\label{sub:apollonius_and_circle_circumscribed}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale =.75
   z.A   = point: new (0 , 0)
   z.B   = point: new (6 , 0)
   z.M   = point: new (5 , 4)
   T.AMB = triangle: new (z.A,z.M,z.B)
   L.AB  = T.AMB.ca
   z.I   = T.AMB.incenter
   L.MI  = line: new (z.M,z.I)
   z.C   = intersection (L.AB , L.MI)
   L.MJ  = L.MI: ortho_from (z.M)
   z.D   = intersection (L.AB , L.MJ)
   L.CD  = line: new (z.C,z.D)
   z.O   = L.CD.mid
   z.G   = T.AMB.circumcenter
   C.GA  = circle: new (z.G,z.A)
   C.OC  = circle: new (z.O,z.C)
   _,z.N = intersection (C.GA , C.OC)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,M)
   \tkzDrawCircles[purple](O,C G,A)
   \tkzDrawSegments[purple](M,D)
   \tkzDrawSegments(D,B O,G M,C)
   \tkzDrawSegments[red,dashed](M,N M,O M,G)
   \tkzDrawPoints(A,B,M,C,D,N,O,G)
   \tkzLabelPoints[below right](A,B,C,D,N,O,G)
   \tkzLabelPoints[above](M)
   \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
\end{tikzpicture}
\end{tkzexample}


\begin{tkzelements}
   scale =.75
   z.A   = point: new (0 , 0)
   z.B   = point: new (6 , 0)
   z.M   = point: new (5 , 4)
   T.AMB = triangle: new (z.A,z.M,z.B)
   L.AB  = T.AMB.ca
   z.I   = T.AMB.incenter
   L.MI  = line: new (z.M,z.I)
   z.C   = intersection (L.AB , L.MI)
   L.MJ  = L.MI: ortho_from (z.M)
   z.D   = intersection (L.AB , L.MJ)
   L.CD  = line: new (z.C,z.D)
   z.O   = L.CD.mid
   z.G   = T.AMB.circumcenter
   C.GA  = circle: new (z.G,z.A)
   C.OC  = circle: new (z.O,z.C)
   _,z.N = intersection (C.GA , C.OC)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,M)
\tkzDrawCircles[purple](O,C G,A)
\tkzDrawSegments[purple](M,D)
\tkzDrawSegments(D,B O,G M,C)
\tkzDrawSegments[red,dashed](M,N M,O M,G)
\tkzDrawPoints(A,B,M,C,D,N,O,G)
\tkzLabelPoints[below right](A,B,C,D,N,O,G)
\tkzLabelPoints[above](M)
\tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D)
\end{tikzpicture}
\hspace*{\fill}


%subsection apollonius_and_circle_circumscribed (end)
%
\subsection{Apollonius circles in a triangle} % (fold)
\label{sub:apollonius_circles}


\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A   = point: new (0 , 0)
   z.B   = point: new (6 , 0)   
   z.C   = point: new (4.5 , 1)
   T.ABC = triangle: new (z.A,z.B,z.C)
   z.I   = T.ABC.incenter
   z.O   = T.ABC.circumcenter    
   L.CI  = line: new (z.C,z.I)
   z.Cp  = intersection (T.ABC.ab , L.CI)
   z.x   = L.CI.north_pa
   L.Cx  = line: new (z.C,z.x)
   z.R   = intersection (L.Cx,T.ABC.ab)
   L.CpR = line: new (z.Cp,z.R)
   z.O1  = L.CpR.mid   
   L.AI  = line: new (z.A,z.I)
   z.Ap  = intersection (T.ABC.bc , L.AI)
   z.y   = L.AI.north_pa
   L.Ay  = line: new (z.A,z.y)
   z.S   = intersection (L.Ay,T.ABC.bc)
   L.ApS = line: new (z.Ap,z.S)
   z.O2  = L.ApS.mid 
   L.BI  = line: new (z.B,z.I)
   z.Bp  = intersection (T.ABC.ca , L.BI)
   z.z   = L.BI.north_pa
   L.Bz  = line: new (z.B,z.z)
   z.T   = intersection (L.Bz,T.ABC.ca)
   L.Bpt = line: new (z.Bp,z.T)
   z.O3  = L.Bpt.mid
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles[blue!50!black](O1,C' O2,A' O3,B')
   \tkzDrawSegments[new](B,S C,T A,R)
   \tkzDrawPolygon(A,B,C)
   \tkzDrawPoints(A,B,C,A',B',C',O,I,R,S,T,O1,O2,O3)
   \tkzLabelPoints(A,B,C,A',B',C',O,I)
   \tkzLabelPoints(O1,O2,O3)
   \tkzDrawCircle[purple](O,A)
   \tkzDrawLine(O1,O2)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A   = point: new (0 , 0)
z.B   = point: new (6 , 0)   
z.C   = point: new (4.5 , 1)
T.ABC = triangle: new (z.A,z.B,z.C)
z.I   = T.ABC.incenter
z.O   = T.ABC.circumcenter    
L.CI  = line: new (z.C,z.I)
z.Cp  = intersection (T.ABC.ab , L.CI)
z.x   = L.CI.north_pa
L.Cx  = line: new (z.C,z.x)
z.R   = intersection (L.Cx,T.ABC.ab)
L.CpR = line: new (z.Cp,z.R)
z.O1  = L.CpR.mid   
L.AI  = line: new (z.A,z.I)
z.Ap  = intersection (T.ABC.bc , L.AI)
z.y   = L.AI.north_pa
L.Ay  = line: new (z.A,z.y)
z.S   = intersection (L.Ay,T.ABC.bc)
L.ApS = line: new (z.Ap,z.S)
z.O2  = L.ApS.mid 
L.BI  = line: new (z.B,z.I)
z.Bp  = intersection (T.ABC.ca , L.BI)
z.z   = L.BI.north_pa
L.Bz  = line: new (z.B,z.z)
z.T   = intersection (L.Bz,T.ABC.ca)
L.Bpt = line: new (z.Bp,z.T)
z.O3  = L.Bpt.mid
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[blue!50!black](O1,C' O2,A' O3,B')
\tkzDrawSegments[new](B,S C,T A,R)
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,A',B',C',O,I,R,S,T,O1,O2,O3)
\tkzLabelPoints(A,B,C,A',B',C',O,I)
\tkzLabelPoints(O1,O2,O3)
\tkzDrawCircle[purple](O,A)
\tkzDrawLine(O1,O2)
\end{tikzpicture}
\hspace*{\fill}
% subsection apollonius_circles (end)

\subsection{Archimedes} % (fold)
\label{sub:archimedes}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
   \begin{verbatim}
   \begin{tkzelements}
      z.O_1    = point:   new  (0, 0)
      z.O_2    = point:   new  (0, 1)
      z.A      = point:   new  (0, 3)
      z.F      = point:   polar (3, math.pi/6)
      L        = line:    new   (z.F,z.O_1)
      C        = circle:  new  (z.O_1,z.A)
      z.E      = intersection (L,C)
      T        = triangle: new (z.F,z.E,z.O_2)
      z.x      = T: parallelogram ()
      L        = line: new    (z.x,z.O_2)
      C        = circle: new  (z.O_2,z.A)
      z.C,z.D  = intersection (L ,C)
   \end{tkzelements}
   \begin{tikzpicture}
      \tkzGetNodes
      \tkzDrawCircles(O_1,A O_2,A)
      \tkzDrawSegments[new](O_1,A E,F C,D)
      \tkzDrawSegments[purple](A,E A,F)
      \tkzDrawPoints(A,O_1,O_2,E,F,C,D)
      \tkzLabelPoints(A,O_1,O_2,E,F,C,D)
   \end{tikzpicture}
   \end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
    z.O_1  = point:   new  (0, 0)
    z.O_2  = point:   new  (0, 1)
    z.A    = point:   new  (0, 3)
    z.F    = point:   polar (3, math.pi/6)
    L  = line:    new   (z.F,z.O_1)
    C  = circle:  new  (z.O_1,z.A)
    z.E    = intersection (L,C)
    T  = triangle: new (z.F,z.E,z.O_2)
    z.x    = T: parallelogram ()
    L     = line: new    (z.x,z.O_2)
    C     = circle: new  (z.O_2,z.A)
    z.C,z.D   = intersection (L ,C)
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O_1,A O_2,A)
\tkzDrawSegments[new](O_1,A E,F C,D)
\tkzDrawSegments[purple](A,E A,F)
\tkzDrawPoints(A,O_1,O_2,E,F,C,D)
\tkzLabelPoints(A,O_1,O_2,E,F,C,D)
\end{tikzpicture}
\end{minipage}
%\subsection{Bankoff circle} % (fold)

\label{sub:bankoff_circle}
\begin{tkzexample}[small,code only]
\begin{tkzelements}
   z.A      = point: new (0 , 0)
   z.B      = point: new (10 , 0)
   L.AB     = line : new (z.A,z.B)
   z.C      = L.AB: gold_ratio ()
   L.AC     = line : new (z.A,z.C)
   L.CB     = line : new (z.C,z.B)
   z.O_0    = L.AB.mid
   z.O_1    = L.AC.mid
   z.O_2    = L.CB.mid
   C.O0B    = circle : new (z.O_0,z.B)
   C.O1C    = circle : new (z.O_1,z.C)
   C.O2C    = circle : new (z.O_2,z.B)
   z.Pp     = C.O0B : midarc (z.B,z.A)
   z.P      = C.O1C : midarc (z.C,z.A)
   z.Q      = C.O2C : midarc (z.B,z.C)
   L.O1O2   = line : new (z.O_1,z.O_2)
   L.O0O1   = line : new (z.O_0,z.O_1)
   L.O0O2   = line : new (z.O_0,z.O_2)
   z.M_0    = L.O1O2 : harmonic_ext (z.C)
   z.M_1    = L.O0O1 : harmonic_int (z.A)
   z.M_2    = L.O0O2 : harmonic_int (z.B)
   L.BP     = line : new (z.B,z.P)
   L.AQ     = line : new (z.A,z.Q)
   z.S      = intersection (L.BP,L.AQ)
   L.PpO0   = line : new (z.Pp,z.O_0)
   L.PC     = line : new (z.P,z.C)
   z.Ap     = intersection (L.PpO0,L.PC)
   L.CS     = line : new (z.C,z.S)
   C.M1A    = circle : new (z.M_1,z.A)
   C.M2B    = circle : new (z.M_2,z.B)
   z.P_0    = intersection (L.CS,C.O0B)
   z.P_1    = intersection (C.M2B,C.O1C)
   z.P_2    = intersection (C.M1A,C.O2C)
   T.P0P1P2 = triangle : new (z.P_0,z.P_1,z.P_2)
   z.O_4    = T.P0P1P2.circumcenter
   T.CP1P2  = triangle : new (z.C,z.P_1,z.P_2)
   z.O_5    = T.CP1P2.circumcenter
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSemiCircles[teal](O_0,B)
\tkzDrawSemiCircles[teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
\tkzDrawCircle[fill=green!10](O_4,P_0)
\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
\tkzDrawSegments(A,B O_0,P' B,P A,Q)
\tkzDrawSegments(P,B Q,O_2 P,O_1)
\tkzDrawSegments[purple](O_5,P_2 O_5,P_1 O_5,C)
\tkzDrawPoints(A,B,C,P_0,P_2,P_1,O_0,O_1,O_2,O_4,O_5,Q,P,P',S)
\tkzLabelPoints[below](A,B,C,O_0,O_1,O_2,P')
\tkzLabelPoints[above](Q,P)
\tkzLabelPoints[above right](P_0,P_2,P_1,O_5,O_4,S)
\begin{scope}[font=\scriptsize]
  \tkzLabelCircle[above](O_1,C)(120){$(\beta)$}
  \tkzLabelCircle[above](O_2,B)(70){$(\gamma)$}
  \tkzLabelCircle[above](O_0,B)(110){$(\alpha)$}
  \tkzLabelCircle[left](O_4,P_2)(60){$(\delta)$}
  \tkzLabelCircle[left](O_5,C)(140){$(\epsilon)$}
\end{scope}
\end{tikzpicture}
\end{tkzexample}


\begin{tkzelements}
   scale = 1.25
   z.A  = point: new (0 , 0)
   z.B  = point: new (10 , 0)
   L.AB = line : new (z.A,z.B)
   z.C  = L.AB: gold_ratio ()
   L.AC = line : new (z.A,z.C)
   L.CB = line : new (z.C,z.B)
   z.O_0    = L.AB.mid
   z.O_1    = L.AC.mid
   z.O_2    = L.CB.mid
   C.O0B    = circle : new (z.O_0,z.B)
   C.O1C    = circle : new (z.O_1,z.C)
   C.O2C    = circle : new (z.O_2,z.B)
   z.Pp = C.O0B : midarc (z.B,z.A)
   z.P  = C.O1C : midarc (z.C,z.A)
   z.Q  = C.O2C : midarc (z.B,z.C)
   L.O1O2   = line : new (z.O_1,z.O_2)
   L.O0O1   = line : new (z.O_0,z.O_1)
   L.O0O2   = line : new (z.O_0,z.O_2)
   z.M_0    = L.O1O2 : harmonic_ext (z.C)
   z.M_1    = L.O0O1 : harmonic_int (z.A)
   z.M_2    = L.O0O2 : harmonic_int (z.B)
   L.BP = line : new (z.B,z.P)
   L.AQ = line : new (z.A,z.Q)
   z.S  = intersection (L.BP,L.AQ)
   L.PpO0   = line : new (z.Pp,z.O_0)
   L.PC = line : new (z.P,z.C)
   z.Ap = intersection (L.PpO0,L.PC)
   L.CS = line : new (z.C,z.S)
   C.M1A    = circle : new (z.M_1,z.A)
   C.M2B    = circle : new (z.M_2,z.B)
   z.P_0    = intersection (L.CS,C.O0B)
   z.P_1    = intersection (C.M2B,C.O1C)
   z.P_2    = intersection (C.M1A,C.O2C)
   T.P0P1P2 = triangle : new (z.P_0,z.P_1,z.P_2)
   z.O_4    = T.P0P1P2.circumcenter
   T.CP1P2  = triangle : new (z.C,z.P_1,z.P_2)
   z.O_5    = T.CP1P2.circumcenter
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSemiCircles[teal](O_0,B)
\tkzDrawSemiCircles[teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
\tkzDrawCircle[fill=green!10](O_4,P_0)
\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
\tkzDrawSegments(A,B O_0,P' B,P A,Q)
\tkzDrawSegments(P,B Q,O_2 P,O_1)
\tkzDrawSegments[purple](O_5,P_2 O_5,P_1 O_5,C)
\tkzDrawPoints(A,B,C,P_0,P_2,P_1,O_0,O_1,O_2,O_4,O_5,Q,P,P',S)
\tkzLabelPoints[below](A,B,C,O_0,O_1,O_2,P')
\tkzLabelPoints[above](Q,P)
\tkzLabelPoints[above right](P_0,P_2,P_1,O_5,O_4,S)
\begin{scope}[font=\scriptsize]
  \tkzLabelCircle[above](O_1,C)(120){$(\beta)$}
  \tkzLabelCircle[above](O_2,B)(70){$(\gamma)$}
  \tkzLabelCircle[above](O_0,B)(110){$(\alpha)$}
  \tkzLabelCircle[left](O_4,P_2)(60){$(\delta)$}
  \tkzLabelCircle[left](O_5,C)(140){$(\epsilon)$}
\end{scope}
\end{tikzpicture}
\hspace*{\fill}
% subsection bankoff_circle (end)

\subsection{Excircles} % (fold)
\label{sub:excircles}


\begin{tkzexample}[small,code only]
\begin{tkzelements}
   scale                =  0.7
   z.A                  = point: new (0,0)
   z.B                  = point: new (6,0)
   z.C                  = point: new (.8,4)
   T                    = triangle: new ( z.A, z.B, z.C)
   z.K                  = T.centroid
   z.J_a,z.J_b,z.J_c    = get_points (T: excentral())
   z.T_a,z.T_b,z.T_c    = get_points (T: extouch())
   la                   = line: new ( z.A, z.T_a)
   lb                   = line: new ( z.B, z.T_b)
   z.G                  = intersection (la,lb)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPoints[new](J_a,J_b,J_c)
   \tkzClipBB
   \tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
   \tkzDrawLines[add=1 and 1](A,B B,C C,A)
   \tkzDrawSegments[new](A,T_a B,T_b C,T_c)
   \tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
   \tkzDrawPolygon(A,B,C)
   \tkzDrawPolygon[new](T_a,T_b,T_c)
   \tkzDrawPoints(A,B,C,K)
   \tkzDrawPoints[new](T_a,T_b,T_c)
   \tkzLabelPoints[below left](A)
   \tkzLabelPoints[below](B)
   \tkzLabelPoints[above](C)
   \tkzLabelPoints[new,below left](T_b)
   \tkzLabelPoints[new,below right](T_c)
   \tkzLabelPoints[new,right=6pt](T_a)
   \tkzMarkRightAngles[fill=gray!15](J_a,T_a,B J_b,T_b,C J_c,T_c,A)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   scale=0.7
   z.A    = point: new (0,0)
   z.B    = point: new (6,0)
   z.C    = point: new (.8,4)
   T      = triangle: new ( z.A, z.B, z.C)
   z.K    = T.centroid
   z.J_a,z.J_b,z.J_c  = get_points (T: excentral())
   z.T_a,z.T_b,z.T_c  = get_points (T: extouch())
   la     = line: new ( z.A, z.T_a)
   lb     = line: new ( z.B, z.T_b)
   z.G    = intersection (la,lb)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints[new](J_a,J_b,J_c)
\tkzClipBB
\tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
\tkzDrawLines[add=1 and 1](A,B B,C C,A)
\tkzDrawSegments[new](A,T_a B,T_b C,T_c)
\tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](T_a,T_b,T_c)
\tkzDrawPoints(A,B,C,K)
\tkzDrawPoints[new](T_a,T_b,T_c)
\tkzLabelPoints[below left](A)
\tkzLabelPoints[below](B)
\tkzLabelPoints[above](C)
\tkzLabelPoints[new,below left](T_b)
\tkzLabelPoints[new,below right](T_c)
\tkzLabelPoints[new,right=6pt](T_a)
\tkzMarkRightAngles[fill=gray!15](J_a,T_a,B J_b,T_b,C J_c,T_c,A)
\end{tikzpicture}
\hspace*{\fill}
% subsection excircles (end)


\subsection{Orthogonal circle through} % (fold)
\label{sub:orthogonal_circle_through}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.O   = point: new (0,1)
   z.A   = point: new (1,0)
   z.z1  = point: new (-1.5,-1.5)
   z.z2  = point: new (2.5,-1.25)
   C.OA  = circle: new (z.O,z.A)
   C     = C.OA: orthogonal_through (z.z1,z.z2)
   z.c   = C.center
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle(O,A)
   \tkzDrawCircle[new](c,z1)
   \tkzDrawPoints[new](O,A,z1,z2,c)
   \tkzLabelPoints[right](O,A,z1,z2,c)
\end{tikzpicture}
\end{tkzexample}%

\begin{tkzelements}
   z.O   = point: new (0,1)
   z.A   = point: new (1,0)
   z.z1  = point: new (-1.5,-1.5)
   z.z2  = point: new (2.5,-1.25)
   C.OA  = circle: new (z.O,z.A)
   C = C.OA: orthogonal_through (z.z1,z.z2)
   z.c   = C.center
\end{tkzelements}

   \hspace*{\fill}
   \begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle(O,A)
   \tkzDrawCircle[orange](c,z1)
   \tkzDrawPoints[orange](O,A,z1,z2,c)
   \tkzLabelPoints[right](O,A,z1,z2,c)
   \end{tikzpicture}
   \hspace*{\fill}
% subsection orthogonal_circle_through (end)

\subsection{Devine ratio} % (fold)
\label{sub:devine_ratio}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.A         = point: new (0 , 0)
z.B         = point: new (8 , 0)
L.AB        = line: new (z.A,z.B)
z.C         = L.AB: gold_ratio ()
L.AC        = line: new (z.A,z.C)
z.O_1       = L.AC.mid
_,_,z.G,z.H = get_points(L.AB: square ())
_,_,z.E,z.F = get_points(L.AC: square ())
L.CB        = line: new (z.C,z.B)
z.O_2       = L.CB.mid
z.O_0       = L.AB.mid
L.BE        = line: new (z.B,z.E)
L.GH        = line: new (z.G,z.H)
z.K         = intersection (L.BE,L.GH)
C0          = circle: new (z.O_0,z.B)
z.R,_       = intersection (L.BE,C0)
C2          = circle: new (z.O_2,z.B)
z.S,_       = intersection (L.BE,C2)
L.AR        = line:   new (z.A,z.R)
C1          = circle: new (z.O_1,z.C)
_,z.T       = intersection (L.AR,C1)
L.BG        = line: new (z.B,z.G)
z.L         = intersection (L.AR,L.BG)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,C,E,F A,B,G,H)
\tkzDrawCircles(O_1,C O_2,B O_0,B)
\tkzDrawSegments(H,C B,K A,L)
\tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
\tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB    = line: new (z.A,z.B)
z.C = L.AB: gold_ratio ()
L.AC    = line: new (z.A,z.C)
z.O_1   = L.AC.mid
_,_,z.G,z.H = get_points(L.AB: square ())
_,_,z.E,z.F = get_points(L.AC: square ())
L.CB    = line: new (z.C,z.B)
z.O_2   = L.CB.mid
z.O_0   = L.AB.mid
L.BE    = line: new (z.B,z.E)
L.GH    = line: new (z.G,z.H)
z.K = intersection (L.BE,L.GH)
C0  = circle: new (z.O_0,z.B)
z.R,_   = intersection (L.BE,C0)
C2  = circle: new (z.O_2,z.B)
z.S,_   = intersection (L.BE,C2)
L.AR    = line:   new (z.A,z.R)
C1  = circle: new (z.O_1,z.C)
_,z.T   = intersection (L.AR,C1)
L.BG    = line: new (z.B,z.G)
z.L = intersection (L.AR,L.BG)
\end{tkzelements}

   \hspace*{\fill}
   \begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygons(A,C,E,F A,B,G,H)
   \tkzDrawCircles(O_1,C O_2,B O_0,B)
   \tkzDrawSegments(H,C B,K A,L)
   \tkzDrawPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
   \tkzLabelPoints(A,B,C,K,E,F,G,H,O_0,O_1,O_2,R,S,T,L)
   \end{tikzpicture}
   \hspace*{\fill}
% subsection devine_ratio (end)

\subsection{Director circle} % (fold)
\label{sub:director_circle}
% modif C: point (0.25) instead of 2
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
   \begin{verbatim}
   \begin{tkzelements}
   scale    = .5
   z.O      = point: new (0 , 0)
   z.F1     = point: new (4 , 0)
   z.F2     = point: new (-4 , 0)
   z.H      = point: new (4*math.sqrt(2) , 0)
   E        = ellipse: foci (z.F2,z.F1,z.H)
   a,b      = E.Rx, E.Ry
   z.A      = E.covertex
   T        = triangle: new (z.H,z.O,z.A)
   z.P      = T: parallelogram ()
   C        = circle: new (z.O,z.P)
   z.L      = C: point (0.25)
   L.J,L.K  = E: tangent_from (z.L)
   z.J      = L.J.pb
   z.K      = L.K.pb
   \end{tkzelements}
    \begin{tikzpicture}
    \tkzGetNodes
    \tkzDrawPoints(F1,F2,O)
   \tkzDrawCircles[teal](O,P)
   \tkzDrawPolygon(H,O,A,P)
   \tkzDrawEllipse[red](O,\tkzUseLua{a},\tkzUseLua{b},0)
   \tkzDrawSegments[orange](O,P O,L L,J L,K)
   \tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
   \tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
   \tkzMarkRightAngles(A,P,H J,L,K)
   \end{tikzpicture}
   \end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = .5
z.O   = point: new (0 , 0)
z.F1  = point: new (4 , 0)
z.F2  = point: new (-4 , 0)
z.H   = point: new (4*math.sqrt(2) , 0)
E     = ellipse: foci (z.F2,z.F1,z.H)
a,b   = E.Rx, E.Ry
z.A   = E.covertex
T     = triangle: new (z.H,z.O,z.A)
z.P   = T: parallelogram ()
C     = circle: new (z.O,z.P)
z.L   = C: point (0.25)
L.J,L.K  = E: tangent_from (z.L)
z.J      = L.J.pb
z.K      = L.K.pb
\end{tkzelements}

\hspace*{\fill} 
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(F1,F2,O)
\tkzDrawCircles[teal](O,P)
\tkzDrawPolygon(H,O,A,P)
\tkzDrawEllipse[red](O,\tkzUseLua{a},\tkzUseLua{b},0)
\tkzDrawSegments[orange](O,P O,L L,J L,K)
\tkzDrawPoints(F1,F2,O,H,A,P,L,J,K)
\tkzLabelPoints(F1,F2,O,H,A,P,L,J,K)
\tkzMarkRightAngles(A,P,H J,L,K)
\end{tikzpicture}
\end{minipage}
% subsection director_circle (end)


\subsection{Gold division} % (fold)
\label{sub:gold_division}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.A         = point:  new (0,0)
z.B         = point:  new (2.5,0)
L.AB        = line:   new (z.A,z.B)
C.AB        = circle: new (z.A,z.B)
C.BA        = circle: new (z.B,z.A)
z.J         = L.AB: midpoint ()
L.JB        = line:new (z.J,z.B)
z.F,z.E     = intersection (C.AB , C.BA)
z.I,_       = intersection (L.AB , C.BA)
z.K         = L.JB : midpoint ()
L.mediator  = L.JB: mediator ()
z.G         = intersection (L.mediator,C.BA)
L.EG        = line:new (z.E,z.G)
z.C         = intersection  (L.EG,L.AB)
z.O         = C.AB: antipode (z.B)
\end{tkzelements}
   \begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawArc[delta=5](O,B)(G)
   \tkzDrawCircles(A,B B,A)
   \tkzDrawSegments(A,E B,E O,I)
   \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
   \tkzMarkSegments[mark=s||](A,E B,E O,A)
   \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
   \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
   \end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A     = point:  new (0,0)
z.B     = point:  new (2.5,0)
L.AB    = line:   new (z.A,z.B)
C.AB    = circle: new (z.A,z.B)
C.BA    = circle: new (z.B,z.A)
z.J     = L.AB: midpoint ()
L.JB    = line:new (z.J,z.B)
z.F,z.E = intersection (C.AB , C.BA)
z.I,_   = intersection (L.AB , C.BA)
z.K     = L.JB : midpoint ()
L.mediator  = L.JB: mediator ()
z.G   = intersection (L.mediator,C.BA)
L.EG    = line:new (z.E,z.G)
z.C     = intersection  (L.EG,L.AB)
z.O     = C.AB: antipode (z.B)
\end{tkzelements}

   \hspace*{\fill}
   \begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawArc[delta=5](O,B)(G)
   \tkzDrawCircles(A,B B,A)
   \tkzDrawSegments(A,E B,E O,I)
   \tkzDrawSegments[purple](J,E A,G G,I K,G E,G)
   \tkzMarkSegments[mark=s||](A,E B,E O,A)
   \tkzDrawPoints(A,B,C,E,I,J,G,O,K)
   \tkzLabelPoints(A,B,C,E,I,J,G,O,K)
   \end{tikzpicture}
   \hspace*{\fill}
% subsection gold_division (end)

\subsection{Ellipse} % (fold)
\label{sub:ellipse}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.C       = point: new (3 , 2)
   z.A       = point: new (5 , 1)
   L.CA      = line : new (z.C,z.A)
   z.b       = L.CA.north_pa
   L         = line : new (z.C,z.b)
   z.B       = L : point (0.5)
   E         = ellipse: new (z.C,z.A,z.B)
   a         = E.Rx
   b         = E.Ry
   slope     = math.deg(E.slope)

\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles[teal](C,A)
   \tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{slope})
   \tkzDrawPoints(C,A,B,b)
   \tkzLabelPoints(C,A,B)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.C  = point: new (3 , 2)
z.A  = point: new (5 , 1)
L.CA = line : new (z.C,z.A)
z.b  = L.CA.north_pa
L    = line : new (z.C,z.b)
z.B  = L : point (0.5)
E    = ellipse: new (z.C,z.A,z.B)
a    = E.Rx
b    = E.Ry
slope    = math.deg(E.slope)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal](C,A)
\tkzDrawEllipse[red](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{slope})
\tkzDrawPoints(C,A,B,b)
\tkzLabelPoints(C,A,B)
\end{tikzpicture}
\hspace*{\fill}
 % subsection ellipse (end)

\subsection{Ellipse with radii} % (fold)
\label{sub:ellipse_with_radii}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.C      = point: new (0 , 4)
z.B      = point: new (4 , 0)
z.D      = point: new (2 , 6)
b        = math.sqrt(8)
a        = math.sqrt(32)
ang      = math.deg(math.pi/4)
E        = ellipse: radii (z.C,a,b,math.pi/4)
z.V      = E : point (0)
z.CoV    = E : point (0.25)
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawEllipse[blue](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
\tkzDrawPoints(C,V,CoV)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.C    = point: new (0 , 4)
z.B    = point: new (4 , 0)
z.D    = point: new (2 , 6)
b  = math.sqrt(8)
a  = math.sqrt(32)
ang    = math.deg(math.pi/4)
E  = ellipse: radii (z.C,a,b,math.pi/4)
z.V    = E : point (0)
z.CoV  = E : point (0.25)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawEllipse[blue](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
\tkzDrawPoints(C,V,CoV)
\end{tikzpicture}
% subsection ellipse_with_radii (end)

\subsection{Ellipse\_with\_foci} % (fold)
\label{sub:ellipse_with_foci}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   local e
   e           = .8
   z.A         = point: new (2 , 3)
   z.B         = point: new (5 , 4)
   z.K         = point: new (6, 7)  
   L.AB        = line: new (z.A,z.B)
   z.C         = L.AB.mid
   c           = point.abs(z.B-z.C)
   a           = c/e
   b           = math.sqrt (a^2-c^2)  
   z.V         = z.C + a*(z.B-z.C)/point.abs(z.B-z.C)   
   E           = ellipse: foci (z.A,z.B,z.V)
   z.cV        = E.covertex 
   ang         = math.deg(E.slope)
   L.ta,L.tb   = E: tangent_from (z.K)
   z.F         = L.ta.pb
   z.G         = L.tb.pb
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPoints(A,B,C,K,F,G,V,cV)
   \tkzLabelPoints(A,B,C,K,F,G,V,cV)
   \tkzDrawEllipse[teal](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
   \tkzDrawLines(K,F K,G)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
local e
e           = .8
z.A         = point: new (2 , 3)
z.B         = point: new (5 , 4)
z.K         = point: new (6, 7)  
L.AB        = line: new (z.A,z.B)
z.C         = L.AB.mid
c           = point.abs(z.B-z.C)
a           = c/e
b           = math.sqrt (a^2-c^2)  
z.V         = z.C + a*(z.B-z.C)/point.abs(z.B-z.C)   
E           = ellipse: foci (z.A,z.B,z.V)
z.cV        = E.covertex 
ang         = math.deg(E.slope)
L.ta,L.tb   = E: tangent_from (z.K)
z.F         = L.ta.pb
z.G         = L.tb.pb
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
  \tkzGetNodes
  \tkzDrawPoints(A,B,C,K,F,G,V,cV)
  \tkzLabelPoints(A,B,C,K,F,G,V,cV)
  \tkzDrawEllipse[teal](C,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
  \tkzDrawLines(K,F K,G)
\end{tikzpicture}
 \hspace*{\fill}
% subsection ellipse_with_foci (end)

\subsection{Euler relation} % (fold)
\label{sub:euler_relation}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale          =  .75
   z.A            = point: new (0 , 0)
   z.B            = point: new (5 , 0)
   z.C            = point: new (-.4 , 4)
   T.ABC          = triangle: new (z.A,z.B,z.C)
   z.J,z.K        = get_points(T.ABC: ex_circle (2))
   z.X ,z.Y,z.K   = T.ABC : projection (z.J)
   z.I,z.H        = get_points(T.ABC : in_circle())
   z.O            = T.ABC.circumcenter
   C.OA           = circle : new (z.O,z.A)
   T.IBA          = triangle: new (z.I,z.B,z.A)
   z.w            = T.IBA.circumcenter
   L.Ow           = line : new (z.O,z.w)
   _,z.E          = intersection (L.Ow, C.OA)
\end{tkzelements}
   \begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawArc(J,X)(Y)
   \tkzDrawCircles(I,H O,A)
   \tkzDrawCircle[red](w,I)
   \tkzDrawLines(Y,C A,B X,C E,w E,B)
   \tkzDrawSegments[blue](J,C J,K I,H I,O w,B)
   \tkzDrawPoints(A,B,C,I,J,E,w,H,K,O)
   \tkzLabelPoints(A,B,C,J,I,w,H,K,E,O)
   \tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
   \end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A   = point: new (0 , 0)
z.B   = point: new (5 , 0)
   z.C    = point: new (-.4 , 4)
T.ABC     = triangle: new (z.A,z.B,z.C)
z.J,z.K   = get_points(T.ABC: ex_circle (2))
z.X ,z.Y,z.K  = T.ABC : projection (z.J)
z.I,z.H   = get_points(T.ABC : in_circle())
z.O   = T.ABC.circumcenter
C.OA      = circle : new (z.O,z.A)
T.IBA     = triangle: new (z.I,z.B,z.A)
z.w   = T.IBA.circumcenter
L.Ow      = line : new (z.O,z.w)
_,z.E     = intersection (L.Ow, C.OA)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawArc(J,X)(Y)
\tkzDrawCircles(I,H O,A)
\tkzDrawCircle[red](w,I)
\tkzDrawLines(Y,C A,B X,C E,w E,B)
\tkzDrawSegments[blue](J,C J,K I,H I,O w,B)
\tkzDrawPoints(A,B,C,I,J,E,w,H,K,O)
\tkzLabelPoints(A,B,C,J,I,w,H,K,E,O)
\tkzMarkRightAngles[fill=gray!20,opacity=.4](C,H,I A,K,J)
\end{tikzpicture}
\hspace*{\fill}
% subsection euler_relation (end)

\subsection{External angle} % (fold)
\label{sub:external_angle}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale =.8
   z.A    = point: new (0 , 0)
   z.B    = point: new (5 , 0)
   z.C    = point: new (-2 , 4)
   T.ABC  = triangle: new (z.A,z.B,z.C)
   T.ext  = T.ABC: excentral ()
   z.O    = T.ABC.circumcenter
   z.D    = intersection (T.ext.ab,T.ABC.ab)
   z.E    = z.C: symmetry (z.B)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawLine[purple,add=0 and .5](B,C)
   \tkzDrawSegment[purple](A,D)
   \tkzDrawSegment[orange](C,D)
   \tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
   \tkzMarkAngles[mark=|](D,C,A E,C,D)
   \tkzDrawPoints(A,...,D)
   \tkzLabelPoints[above](C)
   \tkzLabelPoints(A,B,D)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale    = .8
z.A      = point: new (0 , 0)
z.B      = point: new (5 , 0)
z.C      = point: new (-2 , 4)
T.ABC    = triangle: new (z.A,z.B,z.C)
T.ext    = T.ABC: excentral ()
z.O      = T.ABC.circumcenter
z.D      = intersection (T.ext.ab,T.ABC.ab)
z.E      = z.C: symmetry (z.B)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawLine[purple,add=0 and .5](B,C)
\tkzDrawSegment[purple](A,D)
\tkzDrawSegment[orange](C,D)
\tkzFillAngles[purple!30,opacity=.2](D,C,A E,C,D)
\tkzMarkAngles[mark=|](D,C,A E,C,D)
\tkzDrawPoints(A,...,D)
\tkzLabelPoints[above](C)
\tkzLabelPoints(A,B,D)
\end{tikzpicture}
\end{minipage}
% subsection external_angle (end)

\subsection{Internal angle} % (fold)
\label{sub:internal_angle}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale =  .8
   z.A   = point: new (0 , 0)
   z.B   = point: new (6 , 0)
   z.C   = point: new (1 , 5)
   T     = triangle: new (z.A,z.B,z.C)
   z.I   = T.incenter
   L.AI  = line: new (z.A,z.I)
   z.D   = intersection (L.AI, T.bc)
   L.LL  = T.ab: ll_from (z.C)
   L.AD  = line: new (z.A,z.D)
   z.E   = intersection (L.LL,L.AD)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawLine[purple](C,E)
   \tkzDrawSegment[purple](A,E)
   \tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D) 
   \tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)    
   \tkzDrawPoints(A,...,E) 
   \tkzLabelPoints(A,B)   
   \tkzLabelPoints[above](C,D,E) 
   \tkzMarkSegments(A,C C,E)   
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale =.8
z.A = point: new (0 , 0)
z.B = point: new (6 , 0)
z.C = point: new (1 , 5)
T   = triangle: new (z.A,z.B,z.C)
z.I = T.incenter
L.AI    = line: new (z.A,z.I)
z.D = intersection (L.AI, T.bc)
L.LL    = T.ab: ll_from (z.C)
L.AD    = line: new (z.A,z.D)
z.E = intersection (L.LL,L.AD)
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawLine[purple](C,E)
\tkzDrawSegment[purple](A,E)
\tkzFillAngles[purple!30,opacity=.4](B,A,C C,E,D) 
\tkzMarkAngles[mark=|](B,A,D D,A,C C,E,D)    
\tkzDrawPoints(A,...,E) 
\tkzLabelPoints(A,B)   
\tkzLabelPoints[above](C,D,E) 
\tkzMarkSegments(A,C C,E)   
\end{tikzpicture}
\end{minipage}
%subsection internal_angle (end)

\subsection{Feuerbach theorem} % (fold)
\label{sub:nine_points}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale     =  1.5
   z.A       = point: new (0 , 0)
   z.B       = point: new (5 , -.5)
   z.C       = point: new (-.5 , 3)
   T.ABC     = triangle: new (z.A,z.B,z.C)
   z.O       = T.ABC.circumcenter
   z.N       = T.ABC.eulercenter
   z.I,z.K   = get_points(T.ABC: in_circle())
   z.H       = T.ABC.ab : projection (z.I)
   z.Ap,
   z.Bp,
   z.Cp      = get_points (T.ABC : medial ())
   C.IH      = circle:new (z.I,z.H)
   C.NAp     = circle:new (z.N,z.Ap)
   C.OA      = circle:new (z.O,z.A)
   z.U       = C.OA.south
   z.L       = C.NAp.south
   z.M       = C.NAp.north
   z.X       = T.ABC.ab: projection (z.C)
   L.CU      = line: new (z.C,z.U)
   L.ML      = line: new (z.M,z.L)
   z.P       = L.CU: projection (z.A)
   z.Q       = L.CU: projection (z.B)
   L.LH      = line: new (z.L,z.H)
   z.F       = intersection (L.LH,C.IH) -- feuerbach
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawLine(L,F)
   \tkzDrawCircle[red](N,A')
   \tkzDrawCircle[blue](I,H)
   \tkzDrawCircles[teal](O,A L,C')
   \tkzDrawSegments(M,L B,U Q,C C,X A,P B,Q)
   \tkzDrawPolygons(A,B,C A',B',C')
   \tkzDrawPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
   \tkzLabelPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale  =  1
z.A    = point: new (0 , 0)
z.B    = point: new (5 , -.5)
z.C    = point: new (-.5 , 3)
T.ABC  = triangle: new (z.A,z.B,z.C)
z.O    = T.ABC.circumcenter
z.N    = T.ABC.eulercenter
z.I,z.K    = get_points(T.ABC: in_circle())
z.H = T.ABC.ab : projection (z.I)
z.Ap,z.Bp,z.Cp = get_points (T.ABC : medial ())
C.IH   = circle:new (z.I,z.H)
C.NAp  = circle:new (z.N,z.Ap)
C.OA   = circle:new (z.O,z.A)
z.U    = C.OA.south
z.L    = C.NAp.south
z.M    = C.NAp.north
z.X    = T.ABC.ab: projection (z.C)
L.CU   = line: new (z.C,z.U)
L.ML   = line: new (z.M,z.L)
z.P    = L.CU: projection (z.A)
z.Q    = L.CU: projection (z.B)
L.LH   = line: new (z.L,z.H)
z.F  = intersection (L.LH,C.IH) -- feuerbach
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}[rotate=90]
\tkzGetNodes
\tkzDrawLine(L,F)
\tkzDrawCircle[red](N,A')
\tkzDrawCircle[blue](I,H)
\tkzDrawCircles[teal](O,A L,C')
\tkzDrawSegments(M,L B,U Q,C C,X A,P B,Q)
\tkzDrawPolygons(A,B,C A',B',C')
\tkzDrawPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
\tkzLabelPoints(A,B,C,N,H,A',B',C',U,L,M,P,Q,F,I)
\end{tikzpicture}   
\end{minipage}
% subsection nine_points (end)

\subsection{Gold ratio with segment} % (fold)
\label{sub:gold_ratio_with_segment}
\begin{minipage}{.5\textwidth}
 \begin{verbatim}
\begin{tkzelements}
   z.A      = point: new (0 , 0)
   z.B      = point: new (8 , 0)
   L.AB     = line: new (z.A,z.B)
   _,_,z.X,z.Y = get_points(L.AB: square ())
   L.BX     = line: new (z.B,z.X)
   z.M      = L.BX.mid
   C.MA     = circle: new (z.M,z.A)
   _,z.K    = intersection (L.BX,C.MA)
   L.AK     = line: new (z.Y,z.K)
   z.C      = intersection (L.AK,L.AB)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawLines(A,B X,K)
   \tkzDrawLine[teal](Y,K)
   \tkzDrawPoints(A,B,C,X,Y,M,K)
   \tkzDrawArc[delta=20](M,A)(K)
   \tkzLabelPoints(A,B,C)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
scale = .5
z.A = point: new (0 , 0)
z.B = point: new (8 , 0)
L.AB    = line: new (z.A,z.B)
_,_,z.X,z.Y = get_points(L.AB: square ())
L.BX    = line: new (z.B,z.X)
z.M = L.BX.mid
C.MA    = circle: new (z.M,z.A)
_,z.K   = intersection (L.BX,C.MA)
L.AK    = line: new (z.Y,z.K)
z.C = intersection (L.AK,L.AB)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,B X,K)
\tkzDrawLine[teal](Y,K)
\tkzDrawPoints(A,B,C,X,Y,M,K)
\tkzDrawArc[delta=20](M,A)(K)
\tkzLabelPoints(A,B,C)
\end{tikzpicture}
\end{minipage}
%subsection gold_ratio_with_segment (end)

\subsection{Gold Arbelos} % (fold)
\label{sub:gold_arbelos}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   scale    = .6
   z.A      = point: new (0 , 0)
   z.C      = point: new (6 , 0)
   L.AC     = line: new (z.A,z.C)
   _,_,z.x,z.y  = get_points(L.AC: square ())
   z.O_1    = L.AC . mid
   C        = circle: new (z.O_1,z.x)
   z.B      = intersection (L.AC,C)
   L.CB     = line: new (z.C,z.B)
   z.O_2    = L.CB.mid
   L.AB     = line: new (z.A,z.B)
   z.O_0    = L.AB.mid
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O_1,C O_2,B O_0,B)
   \tkzDrawPoints(A,C,B,O_1,O_2,O_0)
   \tkzLabelPoints(A,C,B)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
scale    = .4
z.A  = point: new (0 , 0)
z.C  = point: new (6 , 0)
L.AC = line: new (z.A,z.C)
_,_,z.x,z.y  = get_points(L.AC: square ())
z.O_1    = L.AC . mid
C    = circle: new (z.O_1,z.x)
z.B  = intersection (L.AC,C)
L.CB = line: new (z.C,z.B)
z.O_2    = L.CB.mid
L.AB = line: new (z.A,z.B)
z.O_0    = L.AB.mid
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O_1,C O_2,B O_0,B O_1,x)
\tkzDrawPoints(A,C,B,O_1,O_2,O_0,x)
\tkzLabelPoints[below right](A,C,B)
\end{tikzpicture}
\end{minipage}
% subsection gold_arbelos (end)

\subsection{Harmonic division v1} % (fold)
\label{sub:harmonic_division_v1}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale=.75
   z.A  = point: new (0 , 0)
   z.B  = point: new (4 , 0)
   z.D  = point: new (12,0)
   L.AB = line : new (z.A,z.B)
   z.X  = L.AB.north_pa
   L.XB = line : new (z.X,z.B)
   z.E  = L.XB.mid
   L.DE = line : new (z.D,z.E)
   L.XA = line : new (z.X,z.A)
   z.F  = intersection (L.DE,L.XA)
   L.AE = line : new (z.A,z.E)
   L.BF = line : new (z.B,z.F)
   z.G  = intersection (L.AE,L.BF)
   L.XG = line : new (z.X,z.G)
z.C  = intersection (L.XG,L.AB)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDefPoints{0/0/A,4/0/B}
   \tkzDefPoints{2/2/G}
   \tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E}
   \tkzInterLL(G,E)(A,B)   \tkzGetPoint{D}
   \tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F}
   \tkzInterLL(G,F)(A,B)   \tkzGetPoint{C}
   \tkzDrawLines(A,D A,G F,E G,F G,D)
   \tkzDrawPoints(A,B,G,E,F,C,D)
   \tkzLabelPoints(A,B,G,E,F,C,D)
   \tkzMarkSegments(F,B B,E)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale=.75
z.A  = point: new (0 , 0)
z.B  = point: new (4 , 0)
z.D  = point: new (12,0)
L.AB = line : new (z.A,z.B)
z.X  = L.AB.north_pa
L.XB = line : new (z.X,z.B)
z.E  = L.XB.mid
L.DE = line : new (z.D,z.E)
L.XA = line : new (z.X,z.A)
z.F  = intersection (L.DE,L.XA)
L.AE = line : new (z.A,z.E)
L.BF = line : new (z.B,z.F)
z.G  = intersection (L.AE,L.BF)
L.XG = line : new (z.X,z.G)
z.C  = intersection (L.XG,L.AB)
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefPoints{2/2/G}
\tkzDefLine[parallel=through B,K=.5](A,G) \tkzGetPoint{E}
\tkzInterLL(G,E)(A,B)   \tkzGetPoint{D}
\tkzDefPointBy[symmetry= center B](E) \tkzGetPoint{F}
\tkzInterLL(G,F)(A,B)   \tkzGetPoint{C}
\tkzDrawLines(A,D A,G F,E G,F G,D)
\tkzDrawPoints(A,B,G,E,F,C,D)
\tkzLabelPoints(A,B,G,E,F,C,D)
\tkzMarkSegments(F,B B,E)
\end{tikzpicture}
\end{minipage}
% subsection harmonic_division_v1 (end)

\subsection{Harmonic division v2} % (fold)
\label{sub:harmonic_division_v2}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale    = .5
   z.A      = point: new (0 , 0)
   z.B      = point: new (6 , 0)
   z.D      = point: new (12 , 0)
   L.AB     = line: new (z.A,z.B)
   z.X      = L.AB.north_pa
   L.XB     = line: new (z.X,z.B)
   z.E      = L.XB.mid
   L.ED     = line: new (z.E,z.D)
   L.AX     = line: new (z.A,z.X)
   L.AE     = line: new (z.A,z.E)
   z.F      = intersection (L.ED,L.AX)
   L.BF     = line: new (z.B,z.F)
   z.G      = intersection (L.AE,L.BF)
   L.GX     = line: new (z.G,z.X)
   z.C      = intersection (L.GX,L.AB)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawLines(A,D A,E B,F D,F X,A X,B X,C)
   \tkzDrawPoints(A,...,G,X)
   \tkzLabelPoints(A,...,G,X)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = .5
z.A    = point: new (0 , 0)
z.B    = point: new (6 , 0)
z.D    = point: new (12 , 0)
L.AB   = line: new (z.A,z.B)
z.X    = L.AB.north_pa
L.XB   = line: new (z.X,z.B)
z.E    = L.XB.mid
L.ED   = line: new (z.E,z.D)
L.AX   = line: new (z.A,z.X)
L.AE   = line: new (z.A,z.E)
z.F    = intersection (L.ED,L.AX)
L.BF   = line: new (z.B,z.F)
z.G    = intersection (L.AE,L.BF)
L.GX   = line: new (z.G,z.X)
z.C    = intersection (L.GX,L.AB)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines(A,D A,E B,F D,F X,A X,B X,C)
\tkzDrawPoints(A,...,G,X)
\tkzLabelPoints(A,...,G,X)
\end{tikzpicture}
\end{minipage}
% subsection harmonic_division_v2 (end)

\subsection{Menelaus} % (fold)
\label{sub:menelaus}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   z.A  = point: new (0 , 0)
   z.B  = point: new (6 , 0)
   z.C  = point: new (5 , 4)
   z.P  = point: new (-1 , 0)
   z.X  = point: new (6 , 3)
   L.AC = line: new (z.A,z.C)
   L.PX = line: new (z.P,z.X)
   L.BC = line: new (z.B,z.C)
   z.Q  = intersection (L.AC,L.PX)
   z.R  = intersection (L.BC,L.PX)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawLine[new](P,R)
   \tkzDrawLines(P,B A,C B,C)
   \tkzDrawPoints(P,Q,R,A,B,C)
   \tkzLabelPoints(A,B,C,P,Q,R)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
z.A   = point: new (0 , 0)
z.B   = point: new (6 , 0)
z.C   = point: new (5 , 4)
z.P   = point: new (-1 , 0)
z.X   = point: new (6 , 3)
L.AC  = line: new (z.A,z.C)
L.PX  = line: new (z.P,z.X)
L.BC  = line: new (z.B,z.C)
z.Q   = intersection (L.AC,L.PX)
z.R   = intersection (L.BC,L.PX)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawLine[new](P,R)
\tkzDrawLines(P,B A,C B,C)
\tkzDrawPoints(P,Q,R,A,B,C)
\tkzLabelPoints(A,B,C,P,Q,R)
\end{tikzpicture}
\end{minipage}
% subsection menelaus (end)

\subsection{Radical axis v1} % (fold)
\label{sub:radical_axis_v1}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale    = .75
z.X      = point : new (0,0)
z.B      = point : new (2,2)
z.Y      = point : new (7,1)
z.Ap     = point : new (8,-1)
L.XY     = line :    new (z.X,z.Y)
C.XB     = circle : new (z.X,z.B)
C.YAp    = circle : new (z.Y,z.Ap)
z.E,z.F  = get_points (C.XB : radical_axis (C.YAp))
z.A      = C.XB : point (0.4)
T.ABAp   = triangle: new (z.A,z.B,z.Ap)
z.O      = T.ABAp.circumcenter
C.OAp    = circle : new (z.O,z.Ap)
_,z.Bp   = intersection (C.OAp,C.YAp)
L.AB     = line : new (z.A,z.B)
L.ApBp   = line : new (z.Ap,z.Bp)
z.M      = intersection (L.AB,L.ApBp)
z.H      = L.XY : projection (z.M)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(X,B Y,A')
   \tkzDrawArc[dashed,delta=30](O,A')(A)
   \tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
   \tkzDrawLines[red](A,M A',M X,Y E,F)
   \tkzDrawLines[red,add=1 and 3](M,H)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale    = .75
z.X      = point : new (0,0)
z.B      = point : new (2,2)
z.Y      = point : new (7,1)
z.Ap     = point : new (8,-1)
L.XY     = line :    new (z.X,z.Y)
C.XB     = circle : new (z.X,z.B)
C.YAp    = circle : new (z.Y,z.Ap)
z.E,z.F  = get_points (C.XB : radical_axis (C.YAp))
z.A      = C.XB : point (0.4)
T.ABAp   = triangle: new (z.A,z.B,z.Ap)
z.O      = T.ABAp.circumcenter
C.OAp    = circle : new (z.O,z.Ap)
_,z.Bp   = intersection (C.OAp,C.YAp)
L.AB     = line : new (z.A,z.B)
L.ApBp   = line : new (z.Ap,z.Bp)
z.M      = intersection (L.AB,L.ApBp)
z.H      = L.XY : projection (z.M)
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(X,B Y,A')
\tkzDrawArc[dashed,delta=30](O,A')(A)
\tkzDrawPoints(A,B,A',B',M,H,X,Y,O,E,F)
\tkzDrawLines[red](A,M A',M X,Y E,F)
\tkzDrawLines[red,add=1 and 3](M,H)
\end{tikzpicture}
% subsection radical_axis_v1 (end)

\subsection{Radical axis v2} % (fold)
\label{sub:radical_axis_v2}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.O         = point : new (-1,0)
   z.Op        = point : new (4,-1)
   z.B         = point : new (0,2)
   z.D         = point : new (4,0)
   C.OB        = circle :    new (z.O,z.B)
   C.OpD       = circle :    new (z.Op,z.D)
   L.EF        = C.OB : radical_axis (C.OpD)
   z.E,z.F     = get_points (L.EF)   
   z.M         = L.EF : point (2)
   L.MT,L.MTp  = C.OB : tangent_from (z.M)
   _,z.T       = get_points (L.MT)
   _,z.Tp      = get_points (L.MTp)
   L.MK,L.MKp  = C.OpD : tangent_from (z.M)
   _,z.K       = get_points (L.MK)
   _,z.Kp      = get_points (L.MKp)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,B O',D)
   \tkzDrawLine[add=1 and 2](E,F)
   \tkzDrawLine[add=.5 and .5](O,O')
   \tkzDrawSegments(M,T M,T' M,K M,K')
   \tkzDrawCircle(M,T)
   \tkzDrawPoints(O,O',T,M,T',K,K')
   \tkzLabelPoints(O,O',T,T',K,K',M)
   \end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale =1.25
z.O     = point : new (-1,0)
z.Op    = point : new (4,-1)
z.B     = point : new (0,2)
z.D     = point : new (4,0)
C.OB    = circle :    new (z.O,z.B)
C.OpD   = circle :    new (z.Op,z.D)
L.EF    = C.OB : radical_axis (C.OpD)
z.E,z.F = get_points (L.EF)
z.M     = L.EF : point (2)
L.MT,L.MTp  = C.OB : tangent_from (z.M)
_,z.T = get_points (L.MT)
_,z.Tp = get_points (L.MTp)
L.MK,L.MKp  = C.OpD : tangent_from (z.M)
_,z.K = get_points (L.MK)
_,z.Kp = get_points (L.MKp)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine[add=1 and 2](E,F)
\tkzDrawLine[add=.5 and .5](O,O')
\tkzDrawSegments(M,T M,T' M,K M,K')
\tkzDrawCircle(M,T)
\tkzDrawPoints(O,O',T,M,T',K,K')
\tkzLabelPoints(O,O',T,T',K,K',M)
\end{tikzpicture}\hspace*{\fill}
% subsection radical_axis_v2 (end)

\subsection{Radical axis v3} % (fold)
\label{sub:radical_axis_v3}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.O     = point : new (0,0)
   z.B     = point : new (4,0)
   z.Op    = point : new (6,0)
   C.OB    = circle :    new (z.O,z.B)
   C.OpB   = circle :    new (z.Op,z.B)
   L.EF    = C.OB : radical_axis (C.OpB)
   z.E,z.F = get_points(L.EF)
   z.M     = L.EF : point (2)
   _,L     = C.OB : tangent_from (z.M)
   _,z.T   = get_points (L)
   L,_     = C.OpB : tangent_from (z.M)
   _,z.Tp  = get_points (L)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,B O',B)
   \tkzDrawSegments(M,T M,T')
   \tkzDrawLine[add=.5 and 1](E,F)
   \tkzDrawLine[add=.5 and .5](O,O')
   \tkzDrawPoints(O,B,O',E,F,M,T,T')
   \tkzLabelPoints(O,O',B,E,F,T,T')
   \tkzDrawArc(M,T')(T)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.O     = point : new (0,0)
z.B     = point : new (4,0)
z.Op    = point : new (6,0)
C.OB    = circle :    new (z.O,z.B)
C.OpB   = circle :    new (z.Op,z.B)
L.EF    = C.OB : radical_axis (C.OpB)
z.E,z.F = get_points(L.EF)
z.M     = L.EF : point (2)
_,L     = C.OB : tangent_from (z.M)
_,z.T   = get_points (L)
L,_     = C.OpB : tangent_from (z.M)
_,z.Tp  = get_points (L)
\end{tkzelements}


\hspace*{\fill}  
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',B)
\tkzDrawSegments(M,T M,T')
\tkzDrawLine[add=.5 and 1](E,F)
\tkzDrawLine[add=.5 and .5](O,O')
\tkzDrawPoints(O,B,O',E,F,M,T,T')
\tkzLabelPoints(O,O',B,E,F,T,T')
\tkzDrawArc(M,T')(T)
\end{tikzpicture}
\hspace*{\fill}
% subsection radical_axis_v3 (end)

\subsection{Radical axis v4} % (fold)
\label{sub:radical_axis_v4}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.O     = point : new (0,0)
   z.B     = point : new (5,0)
   z.Op    = point : new (3,0)
   C.OB    = circle :    new (z.O,z.B)
   C.OpB   = circle :    new (z.Op,z.B)
   L.EF    = C.OB : radical_axis (C.OpB)
   z.E,z.F = get_points(L.EF)
   z.M     = L.EF : point (1.5)
   L,_     = C.OB : tangent_from (z.M)
   _,z.T   = get_points (L)
   L,_     = C.OpB : tangent_from (z.M)
   _,z.Tp  = get_points (L)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,B O',B)
   \tkzDrawSegments(M,T M,T')
   \tkzDrawLine[add=1 and 1](E,F)
   \tkzDrawLine[add=.3 and .3](O,O')
   \tkzDrawPoints(O,O',B,E,F,T,T',M)
   \tkzLabelPoints[below right](O,O',B,E,F,T,T')
   \tkzDrawArc(M,T)(B)
\end{tikzpicture}
\end{tkzexample}


\begin{tkzelements}
   z.O     = point : new (0,0)
   z.B     = point : new (5,0)
   z.Op    = point : new (3,0)
   C.OB    = circle :    new (z.O,z.B)
   C.OpB   = circle :    new (z.Op,z.B)
   L.EF    = C.OB : radical_axis (C.OpB)
   z.E,z.F = get_points(L.EF)
   z.M     = L.EF : point (1.5)
   L,_     = C.OB : tangent_from (z.M)
   _,z.T   = get_points (L)
   L,_     = C.OpB : tangent_from (z.M)
   _,z.Tp  = get_points (L)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',B)
\tkzDrawSegments(M,T M,T')
\tkzDrawLine[add=1 and 1](E,F)
\tkzDrawLine[add=.3 and .3](O,O')
\tkzDrawPoints(O,O',B,E,F,T,T',M)
\tkzLabelPoints[below right](O,O',B,E,F,T,T')
\tkzDrawArc(M,T)(B)
\end{tikzpicture}
\hspace*{\fill}
% subsection radical_axis_v4 (end)

\subsection{Radical center} % (fold)
\label{sub:radical_center}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.O      = point : new (0,0)
   z.x      = point : new (1,0)
   z.y      = point : new (4,0)
   z.z      = point : new (2,0)
   z.Op     = point : new (4,2)
   z.P      = point : new (2,2.5)
   C.Ox     = circle :    new (z.O,z.x)
   C.Pz     = circle :    new (z.P,z.z)
   C.Opy    = circle :    new (z.Op,z.y)
   z.ap,z.a = intersection (C.Ox,C.Pz)
   z.bp,z.b = intersection (C.Opy,C.Pz)
   L.aap    = line : new (z.a,z.ap)
   L.bbp    = line : new (z.b,z.bp)
   z.X      = intersection (L.aap,L.bbp)
-- or z.X   = radical_center(C.Ox,C.Pz,C.Opy)
   L.OOp    = line : new (z.O,z.Op)
   z.H      = L.OOp : projection (z.X)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,a O',b P,z)
   \tkzDrawLines[red](a,X b',X H,X O,O')
   \tkzDrawPoints(O,O',P,a,a',b,b',X,H)
   \tkzLabelPoints[below right](O,O',P,H)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
z.O         = point : new (0,0)
z.x         = point : new (1,0)
z.y         = point : new (4,0)
z.z         = point : new (2,0)
z.Op        = point : new (4,2)
z.P         = point : new (2,2.5)
C.Ox        = circle :    new (z.O,z.x)
C.Pz        = circle :    new (z.P,z.z)
C.Opy       = circle :    new (z.Op,z.y)
z.ap,z.a    = intersection (C.Ox,C.Pz)
z.bp,z.b    = intersection (C.Opy,C.Pz)
L.aap       = line : new (z.a,z.ap)
L.bbp       = line : new (z.b,z.bp)
z.X         = intersection (L.aap,L.bbp)
L.OOp       = line : new (z.O,z.Op)
z.H         = L.OOp : projection (z.X)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,a O',b P,z)
\tkzDrawLines[red](a,X b',X H,X O,O')
\tkzDrawPoints(O,O',P,a,a',b,b',X,H)
\tkzLabelPoints[below right](O,O',P,H)
\end{tikzpicture}
\end{minipage}
% subsection radical_center (end)

\subsection{Radical circle} % (fold)
\label{sub:radical_circle}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim} 
\begin{tkzelements}
   scale       = .25
   z.A         = point: new (0,0)
   z.B         = point: new (6,0)
   z.C         = point: new (0.8,4)
   T.ABC       = triangle : new ( z.A,z.B,z.C ) 
   C.exa       = T.ABC : ex_circle ()
   z.I_a,z.Xa  = get_points (C.exa)
   C.exb       = T.ABC : ex_circle (1)
   z.I_b,z.Xb  = get_points (C.exb)
   C.exc       = T.ABC : ex_circle (2)
   z.I_c,z.Xc  = get_points (C.exc)
   C.ortho     = radical_circle (C.exa,C.exb,C.exc)
   z.w,z.a     = get_points (C.ortho)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawCircles(I_a,Xa I_b,Xb I_c,Xc)
   \tkzDrawCircles[red,thick](w,a)
   \tkzDrawPoints(A,B,C)
   \tkzLabelPoints(A,B,C)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
   scale       = .25
   z.A         = point: new (0,0)
   z.B         = point: new (6,0)
   z.C         = point: new (0.8,4)
   T.ABC       = triangle : new ( z.A,z.B,z.C ) 
   C.exa       = T.ABC : ex_circle ()
   z.I_a,z.Xa  = get_points (C.exa)
   C.exb       = T.ABC : ex_circle (1)
   z.I_b,z.Xb  = get_points (C.exb)
   C.exc       = T.ABC : ex_circle (2)
   z.I_c,z.Xc  = get_points (C.exc)
   C.ortho     = radical_circle (C.exa,C.exb,C.exc)
   z.w,z.a     = get_points (C.ortho)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawCircles(I_a,Xa I_b,Xb I_c,Xc)
   \tkzDrawCircles[red,thick](w,a)
   \tkzDrawPoints(A,B,C)
   \tkzLabelPoints(A,B,C)
\end{tikzpicture}
\end{minipage}
% subsection radical_circle (end)
 
\subsection{Hexagram} % (fold)
\label{sub:hexagram}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A               = point: new (0 , 0)
   z.B               = point: new (5 , 1)
   L.AB              = line : new (z.A,z.B)
   z.C               = point: new (.8 , 3)
   T.ABC             = triangle: new (z.A,z.B,z.C)
   z.N               = T.ABC.eulercenter
   z.G               = T.ABC.centroid
   z.O               = T.ABC.circumcenter
   z.H               = T.ABC.orthocenter
   z.Ma,z.Mb,z.Mc    = get_points (T.ABC : medial ())
   z.Ha,z.Hb,z.Hc    = get_points (T.ABC : orthic ())   
   z.Ea,z.Eb,z.Ec    = get_points (T.ABC: extouch())
   L.euler           = T.ABC : euler_line () 
   C.circum          = T.ABC : circum_circle () 
   C.euler           = T.ABC : euler_circle () 
   z.I,z.J           = intersection (L.euler,C.euler) 
   E                 = ellipse: foci (z.H,z.O,z.I)  
   a                 = E.Rx
   b                 = E.Ry
   ang               = math.deg(E.slope)
   L.AH              = line: new (z.A,z.H)
   L.BH              = line: new (z.B,z.H)
   L.CH              = line: new (z.C,z.H)
   z.X               = intersection (L.AH,C.circum)  
   _,z.Y             = intersection (L.BH,C.circum)  
   _,z.Z             = intersection (L.CH,C.circum)  
   L.BC              = line: new (z.B,z.C) 
   L.XO              = line: new (z.X,z.O)
   L.YO              = line: new (z.Y,z.O)
   L.ZO              = line: new (z.Z,z.O)
   z.x               = intersection (L.BC,L.XO)
   z.U               = intersection (L.XO,E)
  _,z.V              = intersection (L.YO,E)
  _,z.W              = intersection (L.ZO,E)
 \end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon(A,B,C)
   \tkzDrawCircles[red](N,Ma O,A)
   \tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
   \tkzDrawPolygon[red](U,V,W)
   \tkzLabelPoints[red](U,V,W)
   \tkzLabelPoints(A,B,C,X,Y,Z)
   \tkzDrawLine[blue](I,J)
   \tkzLabelPoints[blue,right](O,N,G,H,I,J)
   \tkzDrawPoints(I,J,U,V,W)
   \tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
   \tkzDrawEllipse[blue](N,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale = 2
E = {}
z.A      = point: new (0 , 0)
z.B      = point: new (5 , 1)
L.AB     = line : new (z.A,z.B)
z.C      = point: new (.8 , 3)
T.ABC    = triangle: new (z.A,z.B,z.C)
z.N = T.ABC.eulercenter
z.G = T.ABC.centroid
z.O = T.ABC.circumcenter
z.H = T.ABC.orthocenter
z.Ma,z.Mb,z.Mc = get_points (T.ABC : medial ())
z.Ha,z.Hb,z.Hc = get_points (T.ABC : orthic ())   
z.Ea,z.Eb,z.Ec   = get_points (T.ABC: extouch())
L.euler      = T.ABC : euler_line () 
C.circum     = T.ABC : circum_circle () 
C.euler      = T.ABC : euler_circle () 
z.I,z.J      = intersection (L.euler,C.euler) 
 E = ellipse: foci (z.H,z.O,z.I)  
a = E.Rx
b = E.Ry
ang     = math.deg(E.slope)
L.AH    = line: new (z.A,z.H)
L.BH    = line: new (z.B,z.H)
L.CH    = line: new (z.C,z.H)
z.X     = intersection (L.AH,C.circum)  
_,z.Y   = intersection (L.BH,C.circum)  
_,z.Z   = intersection (L.CH,C.circum)  
L.BC    = line: new (z.B,z.C) 
L.XO    = line: new (z.X,z.O)
L.YO    = line: new (z.Y,z.O)
L.ZO    = line: new (z.Z,z.O)
z.x     = intersection (L.BC,L.XO)
z.U     = intersection (L.XO,E)
_,z.V   = intersection (L.YO,E)
_,z.W   = intersection (L.ZO,E) 
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawCircles[red](N,Ma O,A)
\tkzDrawSegments(A,X B,Y C,Z B,Hb C,Hc X,O Y,O Z,O)
\tkzDrawPolygon[red](U,V,W)
\tkzLabelPoints[red](U,V,W)
\tkzLabelPoints(A,B,C,X,Y,Z)
\tkzDrawLine[blue](I,J)
\tkzLabelPoints[blue,right](O,N,G,H,I,J)
\tkzDrawPoints(I,J,U,V,W)
\tkzDrawPoints(A,B,C,N,G,H,O,X,Y,Z,Ma,Mb,Mc,Ha,Hb,Hc)
\tkzDrawEllipse[blue](N,\tkzUseLua{a},\tkzUseLua{b},\tkzUseLua{ang})
\end{tikzpicture}
\hspace*{\fill}
% subsection hexagram (end)

\subsection{Gold Arbelos properties} % (fold)
\label{sub:gold_arbelos_properties}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A      = point : new(0,0)
   z.B      = point : new(10,0)
   z.C      = gold_segment_ (z.A,z.B)
   L.AB     = line:new (z.A,z.B)
   z.O_1    = L.AB.mid
   L.AC     = line:new (z.A,z.C)
   z.O_2    = L.AC.mid
   L.CB     = line:new (z.C,z.B)
   z.O_3    = L.CB.mid
   C1       = circle:new (z.O_1,z.B)
   C2       = circle:new (z.O_2,z.C)
   C3       = circle:new (z.O_3,z.B)
   z.Q      = C2.north
   z.P      = C3.north
   L1       = line:new (z.O_2,z.O_3)
   z.M_0    = L1:harmonic_ext (z.C)
   L2       = line:new (z.O_1,z.O_2)
   z.M_1    = L2:harmonic_int (z.A)
   L3       = line:new (z.O_1,z.O_3)
   z.M_2    = L3:harmonic_int (z.B)
   Lbq      = line:new (z.B,z.Q)
   Lap      = line:new (z.A,z.P)
   z.S      = intersection (Lbq,Lap)
   z.x      = z.C: north ()
   L        = line : new (z.C,z.x)
   z.D,_    = intersection (L,C1)
   L.CD     = line :new (z.C,z.D)
   z.O_7    = L.CD.mid
   C.DC     = circle: new (z.D,z.C)
   z.U,z.V  = intersection (C.DC,C1)
   L.UV     = line :new (z.U,z.V)
   z.R ,z.S = L.UV : projection (z.O_2,z.O_3)
   L.O1D    = line : new (z.O_1,z.D)
   z.W      = intersection (L.UV,L.O1D)
   z.O      = C.DC : inversion (z.W)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles[teal](O_1,B)
   \tkzDrawSemiCircles[thin,teal](O_2,C O_3,B)
   \tkzDrawArc[purple,delta=0](D,V)(U)
   \tkzDrawCircle[new](O_7,C)
   \tkzDrawSegments[thin,purple](A,D D,B C,R C,S C,D U,V)
   \tkzDrawSegments[thin,red](O,D A,O O,B)
   \tkzDrawPoints(A,B,C,D,O_7) %,
   \tkzDrawPoints(O_1,O_2,O_3,U,V,R,S,W,O)
   \tkzDrawSegments[cyan](O_3,S O_2,R)
   \tkzDrawSegments[very thin](A,B)
   \tkzDrawSegments[cyan,thin](C,U U,D)
   \tkzMarkRightAngles[size=.2,fill=gray!40,opacity=.4](D,C,A A,D,B
     D,S,C D,W,V O_3,S,U O_2,R,U)
   \tkzFillAngles[cyan!40,opacity=.4](B,A,D A,D,O_1
     C,D,B D,C,R B,C,S A,R,O_2)
   \tkzFillAngles[green!40,opacity=.4](S,C,D W,R,D
     D,B,C R,C,A O_3,S,B)
   \tkzLabelPoints[below](C,O_2,O_3,O_1)
   \tkzLabelPoints[above](D)
   \tkzLabelPoints[below](O)
   \tkzLabelPoints[below left](A)
   \tkzLabelPoints[above left](R)
   \tkzLabelPoints[above right](S)
   \tkzLabelPoints[left](V)
   \tkzLabelPoints[below right](B,U,W,O_7)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A  = point : new(0,0)
z.B  = point : new(10,0)
z.C  = gold_segment_ (z.A,z.B)
L.AB = line:new (z.A,z.B)
z.O_1    = L.AB.mid
L.AC = line:new (z.A,z.C)
z.O_2    = L.AC.mid
L.CB = line:new (z.C,z.B)
z.O_3    = L.CB.mid
C1   = circle:new (z.O_1,z.B)
C2   = circle:new (z.O_2,z.C)
C3   = circle:new (z.O_3,z.B)
z.Q  = C2.north
z.P  = C3.north
L1   = line:new (z.O_2,z.O_3)
z.M_0    = L1:harmonic_ext (z.C)
L2   = line:new (z.O_1,z.O_2)
z.M_1    = L2:harmonic_int (z.A)
L3   = line:new (z.O_1,z.O_3)
z.M_2    = L3:harmonic_int (z.B)
Lbq  = line:new (z.B,z.Q)
Lap  = line:new (z.A,z.P)
z.S  = intersection (Lbq,Lap)
z.x  = z.C: north ()
L    = line : new (z.C,z.x)
z.D,_    = intersection (L,C1)
L.CD = line :new (z.C,z.D)
z.O_7    = L.CD.mid
C.DC = circle: new (z.D,z.C)
z.V,z.U  = intersection (C.DC,C1)
L.UV = line :new (z.U,z.V)
z.R ,z.S = L.UV : projection (z.O_2,z.O_3)
L.O1D    = line : new (z.O_1,z.D)
z.W  = intersection (L.UV,L.O1D)
z.O  = C.DC : inversion (z.W)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles[teal](O_1,B)
\tkzDrawSemiCircles[thin,teal](O_2,C O_3,B)
\tkzDrawArc[purple,delta=0](D,V)(U)
\tkzDrawCircle[new](O_7,C)
\tkzDrawSegments[thin,purple](A,D D,B C,R C,S C,D U,V)
\tkzDrawSegments[thin,red](O,D A,O O,B)
\tkzDrawPoints(A,B,C,D,O_7) %,
\tkzDrawPoints(O_1,O_2,O_3,U,V,R,S,W,O)
\tkzDrawSegments[cyan](O_3,S O_2,R)
\tkzDrawSegments[very thin](A,B)
\tkzDrawSegments[cyan,thin](C,U U,D)
\tkzMarkRightAngles[size=.2,fill=gray!40,opacity=.4](D,C,A A,D,B
 D,S,C D,W,V O_3,S,U O_2,R,U)
\tkzFillAngles[cyan!40,opacity=.4](B,A,D A,D,O_1
 C,D,B D,C,R B,C,S A,R,O_2)
\tkzFillAngles[green!40,opacity=.4](S,C,D W,R,D
 D,B,C R,C,A O_3,S,B)
\tkzLabelPoints[below](C,O_2,O_3,O_1)
\tkzLabelPoints[above](D)
\tkzLabelPoints[below](O)
\tkzLabelPoints[below left](A)
\tkzLabelPoints[above left](R)
\tkzLabelPoints[above right](S)
\tkzLabelPoints[left](V)
\tkzLabelPoints[below right](B,U,W,O_7)
\end{tikzpicture}
\hspace*{\fill}
% subsection gold_arbelos_properties (end)

\subsection{Apollonius circle v1 with inversion} % (fold)
\label{sub:apollonius_circle_v1_with_inversion}
\begin{tkzexample}[code only,small]
\begin{tkzelements}
   scale             = .7
   z.A               = point: new (0,0)
   z.B               = point: new (6,0)
   z.C               = point: new (0.8,4)
   T.ABC             = triangle : new ( z.A,z.B,z.C )
   z.N               = T.ABC.eulercenter
   z.Ea,z.Eb,z.Ec    = get_points ( T.ABC : feuerbach () )
   z.Ja,z.Jb,z.Jc    = get_points ( T.ABC : excentral () )
   z.S               = T.ABC : spieker_center ()
   C.JaEa            = circle : new (z.Ja,z.Ea)
   C.ortho           = circle : radius (z.S,math.sqrt(C.JaEa : power (z.S) ))
   z.a               = C.ortho.south
   C.euler           = T.ABC: euler_circle ()
   C.apo             = C.ortho : inversion (C.euler)
   z.O               = C.apo.center
   z.xa,z.xb,z.xc    = C.ortho : inversion (z.Ea,z.Eb,z.Ec)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
\tkzDrawCircles[red](O,xa N,Ea)
\tkzFillCircles[green!30!black,opacity=.3](O,xa)
\tkzFillCircles[yellow!30,opacity=.7](Ja,Ea Jb,Eb Jc,Ec)
\tkzFillCircles[teal!30!black,opacity=.3](S,a)
\tkzFillCircles[green!30,opacity=.3](N,Ea)
\tkzDrawPoints[red](Ea,Eb,Ec,xa,xb,xc,N)
\tkzClipCircle(O,xa)
\tkzDrawLines[add=3 and 3](A,B A,C B,C)
\tkzDrawCircles(Ja,Ea Jb,Eb Jc,Ec)
\tkzFillCircles[lightgray!30,opacity=.7](Ja,Ea Jb,Eb Jc,Ec)
\tkzDrawCircles[teal](S,a)
\tkzDrawPoints(A,B,C,O)
\tkzDrawPoints[teal](S)
\tkzLabelPoints(A,B,C,O,S,N)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   scale             = .5
   z.A               = point: new (0,0)
   z.B               = point: new (6,0)
   z.C               = point: new (0.8,4)
   T.ABC             = triangle : new ( z.A,z.B,z.C )
   z.N               = T.ABC.eulercenter
   z.Ea,z.Eb,z.Ec    = get_points ( T.ABC : feuerbach () )
   z.Ja,z.Jb,z.Jc    = get_points ( T.ABC : excentral () )
   z.S               = T.ABC : spieker_center ()
   C.JaEa            = circle : new (z.Ja,z.Ea)
   C.ortho           = circle : radius (z.S,math.sqrt(C.JaEa : power (z.S) ))
   z.a               = C.ortho.south
   C.euler           = T.ABC: euler_circle ()
   C.apo             = C.ortho : inversion (C.euler)
   z.O               = C.apo.center
   z.xa,z.xb,z.xc    = C.ortho : inversion (z.Ea,z.Eb,z.Ec)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
   \tkzGetNodes
\tkzDrawCircles[red](O,xa N,Ea)
\tkzFillCircles[green!30!black,opacity=.3](O,xa)
\tkzFillCircles[yellow!30,opacity=.7](Ja,Ea Jb,Eb Jc,Ec)
\tkzFillCircles[teal!30!black,opacity=.3](S,a)
\tkzFillCircles[green!30,opacity=.3](N,Ea)
\tkzDrawPoints[red](Ea,Eb,Ec,xa,xb,xc,N)
\tkzClipCircle(O,xa)
\tkzDrawLines[add=3 and 3](A,B A,C B,C)
\tkzDrawCircles(Ja,Ea Jb,Eb Jc,Ec)
\tkzFillCircles[lightgray!30,opacity=.7](Ja,Ea Jb,Eb Jc,Ec)
\tkzDrawCircles[teal](S,a)
\tkzDrawPoints(A,B,C,O)
\tkzDrawPoints[teal](S)
\tkzLabelPoints(A,B,C,O,S,N)
\end{tikzpicture}
\hspace*{\fill}
% subsection apollonius_circle_v1_with_inversion (end)

\subsection{Apollonius circle v2} % (fold)
\label{sub:apollonius_circle_v2}
 \begin{tkzexample}[small,code only]
\begin{tkzelements}
   scale       = .5
   z.A         = point: new (0,0)
   z.B         = point: new (6,0)
   z.C         = point: new (0.8,4)
   T.ABC       = triangle: new(z.A,z.B,z.C)
   z.O         = T.ABC.circumcenter
   z.H         = T.ABC.orthocenter
   z.G         = T.ABC.centroid
   z.L         = T.ABC: lemoine_point ()
   z.S         = T.ABC: spieker_center ()
   C.euler     = T.ABC: euler_circle ()
   z.N,z.Ma    = get_points (C.euler)
   C.exA       = T.ABC : ex_circle ()
   z.Ja,z.Xa   = get_points (C.exA)
   C.exB       = T.ABC : ex_circle (1)
   z.Jb,z.Xb   = get_points (C.exB)
   C.exC       = T.ABC : ex_circle (2)
   z.Jc,z.Xc   = get_points (C.exC)
   L.OL        = line: new (z.O,z.L)
   L.NS        = line: new (z.N,z.S)
   z.o         = intersection (L.OL,L.NS) -- center of Apollonius circle
   L.NMa       = line: new (z.N,z.Ma)
   L.ox        = L.NMa: ll_from (z.o)
   L.MaS       = line: new (z.Ma,z.S)
   z.t         = intersection (L.ox,L.MaS) -- through
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawLines[add=1 and 1](A,B A,C B,C)
   \tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
   \tkzClipCircle(o,t)
   \tkzDrawLines[red](o,L N,o Ma,t)
   \tkzDrawLines[cyan,add=4 and 4](Ma,N o,t)
   \tkzDrawPoints(A,B,C,Ma,Ja,Jb,Jc)
   \tkzDrawPoints[red](N,O,L,S,o,t)
   \tkzLabelPoints[right,font=\tiny](A,B,C,Ja,Jb,Jc,O,N,L,S,Ma,o)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale =.3
z.A    = point: new (0,0)
z.B    = point: new (6,0)
z.C    = point: new (0.8,4)
T.ABC  = triangle: new(z.A,z.B,z.C)
z.O    = T.ABC.circumcenter
z.H    = T.ABC.orthocenter
z.G    = T.ABC.centroid
z.L    = T.ABC: lemoine_point ()
z.S    = T.ABC: spieker_center ()
C.euler    = T.ABC: euler_circle ()
z.N,z.Ma   = get_points (C.euler)
C.exA  = T.ABC : ex_circle ()
z.Ja,z.Xa  = get_points (C.exA)
C.exB  = T.ABC : ex_circle (1)
z.Jb,z.Xb  = get_points (C.exB)
C.exC  = T.ABC : ex_circle (2)
z.Jc,z.Xc  = get_points (C.exC)
L.OL   = line: new (z.O,z.L)
L.NS   = line: new (z.N,z.S)
z.o    = intersection (L.OL,L.NS) -- center of Apollonius circle
L.NMa  = line: new (z.N,z.Ma)
L.ox   = L.NMa: ll_from (z.o)
L.MaS  = line: new (z.Ma,z.S)
z.t    = intersection (L.ox,L.MaS) -- through
\end{tkzelements}


\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawLines[add=1 and 1](A,B A,C B,C)
\tkzDrawCircles(Ja,Xa Jb,Xb Jc,Xc o,t N,Ma) %
\tkzClipCircle(o,t)
\tkzDrawLines[red](o,L N,o Ma,t)
\tkzDrawLines[cyan,add=4 and 4](Ma,N o,t)
\tkzDrawPoints(A,B,C,Ma,Ja,Jb,Jc)
\tkzDrawPoints[red](N,O,L,S,o,t)
\tkzLabelPoints[right,font=\tiny](A,B,C,Ja,Jb,Jc,O,N,L,S,Ma,o)
\end{tikzpicture}
\hspace*{\fill}
% subsection apollonius_circle_v2 (end)


\subsection{Orthogonal circles v1} % (fold)
\label{sub:orthogonal_circles_v1}

\begin{tkzexample}[small,code only]
\begin{tkzelements}
   scale    = .6
   z.C_1    = point: new (0,0)
   z.C_2    = point: new (8,0)
   z.A      = point: new (5,0)
   C        = circle: new (z.C_1,z.A)
   z.S,z.T  = get_points (C: orthogonal_from (z.C_2))
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(C_1,T C_2,T)
   \tkzDrawSegments(C_1,T C_2,T)
   \tkzDrawLine(C_1,C_2)
   \tkzMarkRightAngle[fill=teal,%
  opacity=.2,size=1](C_1,T,C_2)
   \tkzDrawPoints(C_1,C_2,T)
   \tkzLabelPoints(C_1,C_2)
   \tkzLabelPoints[above](T)
   \tkzLabelSegment[left](C_1,T){r}
   \tkzLabelSegments[right](C_2,T){$\gamma$}
   \tkzLabelSegment[below](C_1,C_2){d}
   \tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
   \tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale    = .6
z.C_1    = point: new (0,0)
z.C_2    = point: new (8,0)
z.A  = point: new (5,0)
C    = circle: new (z.C_1,z.A)
z.S,z.T  = get_points (C: orthogonal_from (z.C_2))
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_1,T C_2,T)
\tkzDrawSegments(C_1,T C_2,T)
\tkzDrawLine(C_1,C_2)
\tkzMarkRightAngle[fill=teal,opacity=.2,size=.5](C_1,T,C_2)
\tkzDrawPoints(C_1,C_2,T)
\tkzLabelPoints(C_1,C_2)
\tkzLabelPoints[above](T)
\tkzLabelSegment[left](C_1,T){r}
\tkzLabelSegments[right](C_2,T){$\gamma$}
\tkzLabelSegment[below](C_1,C_2){d}
\tkzLabelCircle[left=10pt](C_1,T)(180){Circle 1}
\tkzLabelCircle[right=10pt](C_2,T)(180){Circle 2}
\end{tikzpicture}
\hspace*{\fill}
% subsection orthogonal_circles_v1 (end)

\subsection{Orthogonal circles v2} % (fold)
\label{sub:orthogonal_circles_v2}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
scale    = .75
z.O      = point: new (2,2)
z.Op     = point: new (-4,1)
z.P      = point: polar (4,0)
C.OP     = circle: new (z.O,z.P)
C.Oz1    =  C.OP : orthogonal_from (z.Op)
z.z1     = C.Oz1.through
L.OP     = line : new (z.O,z.P)
C.Opz1   = circle: new (z.Op,z.z1)
L.T,L.Tp = C.Opz1 : tangent_from (z.O)
z.T      = L.T.pb
z.Tp     = L.Tp.pb
L.OOp    = line : new (z.O,z.Op)
z.M      = L.OOp.mid
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle[red](O,P)
   \tkzDrawCircle[purple](O',z1)
   \tkzDrawCircle[cyan](M,T)
   \tkzDrawSegments(O',T O,T' O',T')
   \tkzDrawSegment[purple](O',T)
   \tkzDrawSegments[red](O,T O,O')
   \tkzDrawPoints(O,O',T,T',M)
   \tkzMarkRightAngle[fill=gray!10](O',T,O)
   \tkzLabelPoint[below](O){$O$}
   \tkzLabelPoint[above](T){$T$}
   \tkzLabelPoint[above](M){$M$}
   \tkzLabelPoint[below](T'){$T'$}
   \tkzLabelPoint[above left](O'){$O'$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale = .75
z.O      = point: new (2,2)
z.Op     = point: new (-4,1)
z.P      = point: polar (4,0)
C.OP     = circle: new (z.O,z.P)
C.Oz1    =  C.OP : orthogonal_from (z.Op)
z.z1     = C.Oz1.through
L.OP     = line : new (z.O,z.P)
C.Opz1   = circle: new (z.Op,z.z1)
L.T,L.Tp = C.Opz1 : tangent_from (z.O)
z.T      = L.T.pb
z.Tp     = L.Tp.pb
L.OOp    = line : new (z.O,z.Op)
z.M      = L.OOp.mid
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle[red](O,P)
\tkzDrawCircle[purple](O',z1)
\tkzDrawCircle[cyan](M,T)
\tkzDrawSegments(O',T O,T' O',T')
\tkzDrawSegment[purple](O',T)
\tkzDrawSegments[red](O,T O,O')
\tkzDrawPoints(O,O',T,T',M)
\tkzMarkRightAngle[fill=gray!10](O',T,O)
\tkzLabelPoint[below](O){$O$}
\tkzLabelPoint[above](T){$T$}
\tkzLabelPoint[above](M){$M$}
\tkzLabelPoint[below](T'){$T'$}
\tkzLabelPoint[above left](O'){$O'$}
\end{tikzpicture}
\hspace*{\fill}
% subsection orthogonal_circles_v2 (end)
%
\subsection{Orthogonal circle to two circles} % (fold)
\label{sub:orthogonal_circle_to_two_circles}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.O         = point :   new (-1,0)
   z.B         = point :   new (0,2)
   z.Op        = point :   new (4,-1)
   z.D         = point :   new (4,0)
   C.OB        = circle :  new (z.O,z.B)
   C.OpD       = circle :  new (z.Op,z.D)
   z.E,z.F     = get_points (C.OB : radical_axis (C.OpD))
   L.EF        = line : new (z.E,z.F)
   z.M         = L.EF : point (2.25)
   L.T,L.Tp    = C.OB : tangent_from (z.M)
   L.K,L.Kp    = C.OpD : tangent_from (z.M)
   z.T         = L.T.pb
   z.K         = L.K.pb
   z.Tp        = L.Tp.pb
   z.Kp        = L.Kp.pb
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,B O',D)
   \tkzDrawLine[add=1 and 2,cyan](E,F)
   \tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
   \tkzDrawSegments[cyan](M,T M,T' M,K M,K')
   \tkzDrawCircle(M,T)
   \tkzDrawPoints(O,O',T,M,T',K,K')
   \tkzLabelPoints(O,O',T,T',M,K,K')
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   scale = 1.25
z.O   = point :   new (-1,0)
z.B   = point :   new (0,2)
z.Op  = point :   new (4,-1)
z.D   = point :   new (4,0)
C.OB  = circle :  new (z.O,z.B)
C.OpD = circle :  new (z.Op,z.D)
z.E,z.F   = get_points (C.OB : radical_axis (C.OpD))
L.EF  = line : new (z.E,z.F)
z.M   = L.EF : point (2.25)
L.T,L.Tp  = C.OB : tangent_from (z.M)
L.K,L.Kp  = C.OpD : tangent_from (z.M)
z.T = L.T.pb
z.K = L.K.pb
z.Tp = L.Tp.pb
z.Kp = L.Kp.pb
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B O',D)
\tkzDrawLine[add=1 and 2,cyan](E,F)
\tkzDrawLines[add=.5 and .5,orange](O,O' O,T O,T')
\tkzDrawSegments[cyan](M,T M,T' M,K M,K')
\tkzDrawCircle(M,T)
\tkzDrawPoints(O,O',T,M,T',K,K')
\tkzLabelPoints(O,O',T,T',M,K,K')
\end{tikzpicture}
\hspace*{\fill}
% \subsection{Orthogonal to two circles} % (fold)

\subsection{Midcircles} % (fold)
\label{sub:midcircles}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A      = point: new (0 , 0)
   z.B      = point: new (10 , 0)
   L.AB     = line : new (z.A,z.B)
   z.C      = L.AB: gold_ratio ()
   L.AC     = line : new (z.A,z.C)
   L.CB     = line : new (z.C,z.B)
   z.O_0    = L.AB.mid
   z.O_1    = L.AC.mid
   z.O_2    = L.CB.mid
   C.O0B    = circle : new (z.O_0,z.B)
   C.O1C    = circle : new (z.O_1,z.C)
   C.O2C    = circle : new (z.O_2,z.B)
   z.Q      = C.O1C : midarc (z.C,z.A)
   z.P      = C.O2C : midarc (z.B,z.C)
   L.O1O2   = line : new (z.O_1,z.O_2)
   L.O0O1   = line : new (z.O_0,z.O_1)
   L.O0O2   = line : new (z.O_0,z.O_2)
   z.M_0    = L.O1O2 : harmonic_ext (z.C)
   z.M_1    = L.O0O1 : harmonic_int (z.A)
   z.M_2    = L.O0O2 : harmonic_int (z.B)
   L.BQ     = line : new (z.B,z.Q)
   L.AP     = line : new (z.A,z.P)
   z.S      = intersection (L.BQ,L.AP)
   L.CS     = line : new (z.C,z.S)
   C.M1A    = circle : new (z.M_1,z.A)
   C.M2B    = circle : new (z.M_2,z.B)
   z.P_0    = intersection (L.CS,C.O0B)
   z.P_1    = intersection (C.M2B,C.O1C)
   z.P_2    = intersection (C.M1A,C.O2C)
   T.P012   = triangle : new (z.P_0,z.P_1,z.P_2)
   z.O_4    = T.P012.circumcenter
   T.CP12   = triangle : new (z.C,z.P_1,z.P_2)
   z.O_5    = T.CP12.circumcenter
   z.BN     = z.B : north ()
   L.BBN    = line : new (z.B,z.BN)
   L.M1P2   = line : new (z.M_1,z.P_2)
   z.J      = intersection (L.BBN,L.M1P2)
   L.AP0    = line : new (z.A,z.P_0)
   L.BP0    = line : new (z.B,z.P_0)
   C.O4P0   = circle : new (z.O_4,z.P_0)
   _,z.G    = intersection (L.AP0,C.O4P0)
   z.H      = intersection (L.BP0,C.O4P0)
   z.Ap     = z.M_1: symmetry (z.A)
   z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
\tkzDrawSemiCircles[teal](O_0,B)
\tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
\tkzDrawSemiCircles[color = orange](M_2,B)
\tkzDrawSemiCircles[color = orange](M_1,A')
\tkzDrawArc[purple,delta=0](M_0,P_0)(C)
\tkzDrawSegments[very thin](A,B A,P B,Q)
\tkzDrawSegments[color=cyan](O_0,P_0 B,J G,J G,O_0 H,O_2)
\tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
\tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
\tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
\tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
\tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
\tkzLabelPoints[above](P_0,O_5,O_4)
\tkzLabelPoints[above](P_1,J)
\tkzLabelPoints[above](P_2,P,Q,S)
\tkzLabelPoints[above right](H,E)
\tkzLabelPoints[above left](F,G)
\tkzLabelPoints[below right](H_0)
\tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
\tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
\tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
\tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
\tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.A  = point: new (0 , 0)
z.B  = point: new (10 , 0)
L.AB = line : new (z.A,z.B)
z.C  = L.AB: gold_ratio ()
L.AC = line : new (z.A,z.C)
L.CB = line : new (z.C,z.B)
z.O_0    = L.AB.mid
z.O_1    = L.AC.mid
z.O_2    = L.CB.mid
C.O0B    = circle : new (z.O_0,z.B)
C.O1C    = circle : new (z.O_1,z.C)
C.O2C    = circle : new (z.O_2,z.B)
z.Q  = C.O1C : midarc (z.C,z.A)
z.P  = C.O2C : midarc (z.B,z.C)
L.O1O2   = line : new (z.O_1,z.O_2)
L.O0O1   = line : new (z.O_0,z.O_1)
L.O0O2   = line : new (z.O_0,z.O_2)
z.M_0    = L.O1O2 : harmonic_ext (z.C)
z.M_1    = L.O0O1 : harmonic_int (z.A)
z.M_2    = L.O0O2 : harmonic_int (z.B)
L.BQ = line : new (z.B,z.Q)
L.AP = line : new (z.A,z.P)
z.S  = intersection (L.BQ,L.AP)
L.CS = line : new (z.C,z.S)
C.M1A    = circle : new (z.M_1,z.A)
C.M2B    = circle : new (z.M_2,z.B)
z.P_0    = intersection (L.CS,C.O0B)
z.P_1    = intersection (C.M2B,C.O1C)
z.P_2    = intersection (C.M1A,C.O2C)
T.P012   = triangle : new (z.P_0,z.P_1,z.P_2)
z.O_4    = T.P012.circumcenter
T.CP12   = triangle : new (z.C,z.P_1,z.P_2)
z.O_5    = T.CP12.circumcenter
z.BN = z.B : north ()
L.BBN    = line : new (z.B,z.BN)
L.M1P2   = line : new (z.M_1,z.P_2)
z.J  = intersection (L.BBN,L.M1P2)
L.AP0    = line : new (z.A,z.P_0)
L.BP0    = line : new (z.B,z.P_0)
C.O4P0   = circle : new (z.O_4,z.P_0)
_,z.G  = intersection (L.AP0,C.O4P0)
z.H    = intersection (L.BP0,C.O4P0)
z.Ap = z.M_1: symmetry (z.A)
z.H_4,z.F,z.E,z.H_0 = L.AB : projection (z.O_4,z.G,z.H,z.P_0)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle[thin,fill=green!10](O_4,P_0)
\tkzDrawCircle[purple,fill=purple!10,opacity=.5](O_5,C)
\tkzDrawSemiCircles[teal](O_0,B)
\tkzDrawSemiCircles[thin,teal,fill=teal!20,opacity=.5](O_1,C O_2,B)
\tkzDrawSemiCircles[color = orange](M_2,B)
\tkzDrawSemiCircles[color = orange](M_1,A')
\tkzDrawArc[purple,delta=0](M_0,P_0)(C)
\tkzDrawSegments[very thin](A,B A,P B,Q)
\tkzDrawSegments[color=cyan](O_0,P_0 B,J G,J G,O_0 H,O_2)
\tkzDrawSegments[ultra thin,purple](M_1,P_0 M_2,P_0 M_1,M_0 M_0,P_1 M_0,P_0 M_1,J)
\tkzDrawPoints(A,B,C,P_0,P_2,P_1,M_0,M_1,M_2,J,P,Q,S)
\tkzDrawPoints(O_0,O_1,O_2,O_4,O_5,G,H)
\tkzMarkRightAngle[size=.2,fill=gray!20,opacity=.4](O_0,P_0,M_0)
\tkzLabelPoints[below](A,B,C,M_0,M_1,M_2,O_1,O_2,O_0)
\tkzLabelPoints[above](P_0,O_5,O_4)
\tkzLabelPoints[above](P_1,J)
\tkzLabelPoints[above](P_2,P,Q,S)
\tkzLabelPoints[above right](H,E)
\tkzLabelPoints[above left](F,G)
\tkzLabelPoints[below right](H_0)
\tkzLabelCircle[below=4pt,font=\scriptsize](O_1,C)(80){$(\beta)$}
\tkzLabelCircle[below=4pt,font=\scriptsize](O_2,B)(80){$(\gamma)$}
\tkzLabelCircle[below=4pt,font=\scriptsize](O_0,B)(110){$(\alpha)$}
\tkzLabelCircle[left,font=\scriptsize](O_4,P_2)(60){$(\delta)$}
\tkzLabelCircle[above left,font=\scriptsize](O_5,C)(40){$(\epsilon)$}
\end{tikzpicture}
\hspace*{\fill}
% subsection midcircles (end)

\subsection{Pencil v1} % (fold)
\label{sub:pencil_v1}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale       = .75
   z.A         = point : new (0,2)
   z.B         = point : new (0,-2)
   z.C_0       = point : new (-3,0)
   z.C_1       = point : new (2,0)
   z.C_3       = point : new (2.5,0)
   z.C_5       = point : new (1,0)
   L.BA        = line : new (z.B,z.A)
   z.M_0       = L.BA : point (1.25)
   z.M_1       = L.BA : point (1.5)
   C.C0A       = circle :    new (z.C_0,z.A)
   z.x,z.y     = get_points (C.C0A : orthogonal_from (z.M_0))
   z.xp,z.yp   = get_points (C.C0A : orthogonal_from (z.M_1))
   z.O         = L.BA.mid
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
   \tkzDrawCircles[thick,color=red](M_0,x M_1,x')
   \tkzDrawCircles[thick,color=blue](O,A)
   \tkzDrawLines(C_0,C_1 B,M_1)
   \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
   \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
   \tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale=.75
z.A     = point : new (0,2)
z.B     = point : new (0,-2)
z.C_0   = point : new (-3,0)
z.C_1   = point : new (2,0)
z.C_3   = point : new (2.5,0)
z.C_5   = point : new (1,0)
L.BA    = line : new (z.B,z.A)
z.M_0   = L.BA : point (1.25)
z.M_1   = L.BA : point (1.5)
C.C0A   = circle :    new (z.C_0,z.A)
z.x,z.y = get_points (C.C0A : orthogonal_from (z.M_0))
z.xp,z.yp   = get_points (C.C0A : orthogonal_from (z.M_1))
z.O     = L.BA.mid
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_0,A C_1,A C_3,A C_5,A)
\tkzDrawCircles[thick,color=red](M_0,x M_1,x')
\tkzDrawCircles[thick,color=blue](O,A)
\tkzDrawLines(C_0,C_1 B,M_1)
\tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,x,y)
\tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,x,y)
\tkzLabelLine[pos=1.25,right]( M_0,M_1){$(\Delta)$}
\end{tikzpicture}
\hspace*{\fill}
% subsection pencil_v1 (end)

\subsection{Pencil v2} % (fold)
\label{sub:pencil_v2}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale=.75
   z.A     = point : new (0,0)
   z.B     = point : new (1,0)
   z.C_0   = point : new (-2,0)
   z.C_1   = point : new (4,0)
   C.C0A   = circle : new (z.C_0,z.A)
   C.C1B   = circle : new (z.C_1,z.B)
   L.EF    = C.C0A : radical_axis (C.C1B)
   z.M_0   = L.EF : point (2)
   z.M_1   = L.EF : point (-1)
   z.M_2   = L.EF : point (-2)
   C.orth0     = C.C0A : orthogonal_from (z.M_0)
   C.orth1     = C.C0A : orthogonal_from (z.M_1)
   C.orth2     = C.C0A : orthogonal_from (z.M_2)
   z.u         = C.orth0.through
   z.v         = C.orth1.through
   z.t         = C.orth2.through
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(C_0,A C_1,B)
   \tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
   \tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
   \tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
   \tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
   \tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   scale=.75
   z.A     = point : new (0,0)
   z.B     = point : new (1,0)
   z.C_0   = point : new (-2,0)
   z.C_1   = point : new (4,0)
   C.C0A   = circle :    new (z.C_0,z.A)
   C.C1B   = circle : new (z.C_1,z.B)
   L.EF    = C.C0A : radical_axis (C.C1B)
   z.M_0   = L.EF : point (2)
   z.M_1   = L.EF : point (-1)
   z.M_2   = L.EF : point (-2)
   C.orth0     = C.C0A : orthogonal_from (z.M_0)
   C.orth1     = C.C0A : orthogonal_from (z.M_1)
   C.orth2     = C.C0A : orthogonal_from (z.M_2)
   z.u         = C.orth0.through
   z.v         = C.orth1.through
   z.t         = C.orth2.through
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(C_0,A C_1,B)
\tkzDrawCircles[thick,color=red](M_0,u M_1,v M_2,t)
\tkzDrawLines[add= .75 and .75](C_0,C_1 M_0,M_1)
\tkzDrawPoints(A,B,C_0,C_1,M_0,M_1,M_2)
\tkzLabelPoints[below right](A,B,C_0,C_1,M_0,M_1,M_2)
\tkzLabelLine[pos=2,right]( M_0,M_1){$(\Delta)$}
\end{tikzpicture}
\hspace*{\fill}
%subsection pencil_v2 (end)

\subsection{Power v1} % (fold)
\label{sub:power_v1}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.O     = point : new (0,0)
   z.A     = point : new (2,-2)
   z.M     = point : new (-6,0)
   L.AM    = line : new (z.A,z.M)
   C.OA    = circle :    new (z.O,z.A)
   z.Ap    = C.OA : antipode (z.A)
   z.B     = intersection (L.AM, C.OA)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle(O,A)
   \tkzMarkRightAngle[fill=gray!10](A',B,M)
   \tkzDrawSegments(M,O A,A' A',B)
   \tkzDrawPoints(O,A,A',M,B)
   \tkzLabelPoints(O,A,A',M,B)
   \tkzDrawSegments[-Triangle](M,A M,A')
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = 1
z.O   = point : new (0,0)
z.A   = point : new (2,-2)
z.M   = point : new (-6,0)
L.AM  = line : new (z.A,z.M)
C.OA  = circle : new (z.O,z.A)
z.Ap  = C.OA : antipode (z.A)
z.B   = intersection (L.AM, C.OA)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzMarkRightAngle[fill=gray!10](A',B,M)
\tkzDrawSegments(M,O A,A' A',B)
\tkzDrawPoints(O,A,A',M,B)
\tkzLabelPoints(O,A,A',M,B)
\tkzDrawSegments[-Triangle](M,A M,A')
\end{tikzpicture}
\end{minipage}
% subsection power_v1 (end)

\subsection{Power v2} % (fold)
\label{sub:power_v2}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.O     = point : new (0,0)
   z.A     = point : new (2,2)
   z.M     = point : new (-1.5,0)
   L.AM    = line : new (z.A,z.M)
   C.OA    = circle :    new (z.O,z.A)
   z.Ap    = C.OA : antipode (z.A)
   _,z.B   = intersection (L.AM, C.OA)
   z.m     = z.M : north(1)
   L.mM    = line : new (z.m,z.M)
   z.U,z.V = intersection (L.mM,C.OA)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle(O,A)
   \tkzMarkRightAngle[fill=gray!10](A',B,M)
   \tkzDrawSegments(M,O A,A' A',B A,B U,V)
   \tkzDrawPoints(O,A,A',M,B,U,V,m)
   \tkzLabelPoints(O,A,M,U,V,m)
   \tkzLabelPoints[below left](A',B)
   \tkzDrawSegments(M,A M,A')
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = 1
z.O     = point : new (0,0)
z.A     = point : new (2,2)
z.M     = point : new (-1.5,0)
L.AM    = line : new (z.A,z.M)
C.OA    = circle :    new (z.O,z.A)
z.Ap    = C.OA : antipode (z.A)
_,z.B   = intersection (L.AM, C.OA)
z.m     = z.M : north(1)
L.mM    = line : new (z.m,z.M)
z.U,z.V = intersection (L.mM,C.OA)
\end{tkzelements}

\hspace*{\fill}\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzMarkRightAngle[fill=gray!10](A',B,M)
\tkzDrawSegments(M,O A,A' A',B A,B U,V)
\tkzDrawPoints(O,A,A',M,B,U,V,m)
\tkzLabelPoints(O,A,M,U,V,m)
\tkzLabelPoints[below left](A',B)
\tkzDrawSegments(M,A M,A')
\end{tikzpicture}
\end{minipage}
% subsection power_v2 (end)

\subsection{Reim v1} % (fold)
\label{sub:reim_v1}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A     = point: new (0,0)
   z.E     = point: new (-2,2)
   C.AE    = circle :   new (z.A,z.E)
   z.C     = C.AE : point (0.65)
   z.D     = C.AE : point (0.5)
   z.F     = C.AE : point (0.30)
   L.EC    = line: new (z.E,z.C)
   z.H     = L.EC : point (1.5)
   T.CDH   = triangle : new (z.C,z.D,z.H)
   z.B     = T.CDH.circumcenter
   C.BD    = circle : new (z.B,z.D)
   L.FD    = line: new (z.F,z.D)
   z.G     = intersection (L.FD,C.BD)
   z.O     = intersection (L.EC,L.FD)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(A,E B,H)
   \tkzDrawSegments(E,D C,F)
   \tkzDrawLines(E,O F,O)
   \tkzDrawLines[red](E,F H,G)
   \tkzDrawPoints(A,...,H,O)
   \tkzLabelPoints(A,B,D,F,G,O)
   \tkzLabelPoints[above](E,C,H)
   \tkzMarkAngles[size=.5](E,C,F E,D,F)
   \tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
   \tkzMarkAngles[size=.5](F,C,H G,D,E)
   \tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   z.A     = point: new (0,0)
   z.E     = point: new (-2,2)
   C.AE    = circle :   new (z.A,z.E)
   z.C     = C.AE : point (0.65)
   z.D     = C.AE : point (0.5)
   z.F     = C.AE : point (0.30)
   L.EC    = line: new (z.E,z.C)
   z.H     = L.EC : point (1.5)
   T.CDH   = triangle : new (z.C,z.D,z.H)
   z.B     = T.CDH.circumcenter
   C.BD    = circle : new (z.B,z.D)
   L.FD    = line: new (z.F,z.D)
   z.G     = intersection (L.FD,C.BD)
   z.O     = intersection (L.EC,L.FD)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,E B,H)
\tkzDrawSegments(E,D C,F)
\tkzDrawLines(E,O F,O)
\tkzDrawLines[red](E,F H,G)
\tkzDrawPoints(A,...,H,O)
\tkzLabelPoints(A,B,D,F,G,O)
\tkzLabelPoints[above](E,C,H)
\tkzMarkAngles[size=.5](E,C,F E,D,F)
\tkzFillAngles[green!40,opacity=.4,size=.5](E,C,F E,D,F)
\tkzMarkAngles[size=.5](F,C,H G,D,E)
\tkzFillAngles[red!40,opacity=.4,size=.5](F,C,H G,D,E)
\end{tikzpicture}
\hspace*{\fill}
% subsection reim_v1 (end)

\subsection{Reim v2} % (fold)
\label{sub:reim_v2}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale    = .6
   z.A      = point: new (0,0)
   z.B      = point: new (10,0)
   z.C      = point: new (4,0)
   C.AC     = circle: new (z.A,z.C)
   z.c,z.cp = get_points (C.AC: tangent_at (z.C))
   z.M      = C.AC: point (0.6)
   L.MC     = line: new (z.M,z.C)
   C.BC     = circle: new (z.B,z.C)
   z.N      = intersection (L.MC,C.BC)
   z.m,z.mp = get_points (C.AC: tangent_at (z.M))
   z.n,z.np = get_points (C.BC: tangent_at (z.N))
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(A,C B,C)
   \tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
   \tkzDrawSegment(M,N)
   \tkzDrawPoints(A,B,C,M,N)
   \tkzLabelPoints[below right](A,B,C,M,N)
   \tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
   \tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
   \tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale = .6
z.A     = point: new (0,0)
z.B     = point: new (10,0)
z.C     = point: new (4,0)
C.AC    = circle: new (z.A,z.C)
z.c,z.cp    = get_points (C.AC: tangent_at (z.C))
z.M      = C.AC: point (0.6)
L.MC    = line: new (z.M,z.C)
C.BC    = circle: new (z.B,z.C)
z.N     = intersection (L.MC,C.BC)
z.m,z.mp    = get_points (C.AC: tangent_at (z.M))
z.n,z.np    = get_points (C.BC: tangent_at (z.N))
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,C B,C)
\tkzDrawLines[new,add=1 and 1](M,m N,n C,c)
\tkzDrawSegment(M,N)
\tkzDrawPoints(A,B,C,M,N)
\tkzLabelPoints[below right](A,B,C,M,N)
\tkzFillAngles[blue!30,opacity=.3](m',M,C N,C,c' M,C,c n',N,C)
\tkzLabelCircle[below=4pt,font=\scriptsize](A,C)(90){$(\alpha)$}
\tkzLabelCircle[left=4pt,font=\scriptsize](B,C)(-90){$(\beta)$}
\end{tikzpicture}
\hspace*{\fill}
% subsection reim_v2 (end)

\subsection{Reim v3} % (fold)
\label{sub:reim_v3}
\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   z.A     = point: new (0,0)
   z.B     = point: new (8,0)
   z.C     = point: new (2,6)
   L.AB    = line : new (z.A,z.B)
   L.AC    = line : new (z.A,z.C)
   L.BC    = line : new (z.B,z.C)
   z.I     = L.BC : point (0.75)
   z.J     = L.AC : point (0.4)
   z.K     = L.AB : point (0.5)
   T.AKJ   = triangle : new (z.A,z.K,z.J)
   T.BIK   = triangle : new (z.B,z.I,z.K)
   T.CIJ   = triangle : new (z.C,z.I,z.J)
   z.x     = T.AKJ.circumcenter
   z.y     = T.BIK.circumcenter
   z.z     = T.CIJ.circumcenter
   C.xK    = circle: new (z.x,z.K)
   C.yK    = circle: new (z.y,z.K)
   z.O,_   = intersection (C.xK,C.yK)
   C.zO    = circle: new (z.z,z.O)
   L.KO    = line: new (z.K,z.O)
   z.D     = intersection (L.KO,C.zO)
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawSegments(K,D D,C)
   \tkzDrawPolygon[teal](A,B,C)
   \tkzDrawCircles[orange](x,A y,B z,C)
   \tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
   \tkzLabelPoints[below](A,B,J,K,O)
   \tkzLabelPoints[above](C,D,I)
   \tkzDrawPoints[fill=black](O)
   \tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
   \tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
   \tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
   scale = 1.25
   z.A     = point: new (0,0)
   z.B     = point: new (8,0)
   z.C     = point: new (2,6)
   L.AB    = line : new (z.A,z.B)
   L.AC    = line : new (z.A,z.C)
   L.BC    = line : new (z.B,z.C)
   z.I     = L.BC : point (0.75)
   z.J     = L.AC : point (0.4)
   z.K     = L.AB : point (0.5)
   T.AKJ   = triangle : new (z.A,z.K,z.J)
   T.BIK   = triangle : new (z.B,z.I,z.K)
   T.CIJ   = triangle : new (z.C,z.I,z.J)
   z.x     = T.AKJ.circumcenter
   z.y     = T.BIK.circumcenter
   z.z     = T.CIJ.circumcenter
   C.xK    = circle: new (z.x,z.K)
   C.yK    = circle: new (z.y,z.K)
   z.O,_   = intersection (C.xK,C.yK)
   C.zO    = circle: new (z.z,z.O)
   L.KO    = line: new (z.K,z.O)
   z.D     = intersection (L.KO,C.zO)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegments(K,D D,C)
\tkzDrawPolygon[teal](A,B,C)
\tkzDrawCircles[orange](x,A y,B z,C)
\tkzDrawPoints[fill=white](A,B,C,I,J,K,D)
\tkzLabelPoints[below](A,B,J,K,O)
\tkzLabelPoints[above](C,D,I)
\tkzDrawPoints[fill=black](O)
\tkzLabelCircle[below=4pt,font=\scriptsize](x,A)(20){$(\alpha)$}
\tkzLabelCircle[left=4pt,font=\scriptsize](y,B)(60){$(\beta)$}
\tkzLabelCircle[below=4pt,font=\scriptsize](z,C)(60){$(\gamma)$}
\end{tikzpicture}
\hspace*{\fill}
% subsection reim_v3 (end)

\subsection{Tangent and circle} % (fold)
\label{sub:tangent_and_circle}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   z.A         = point:    new (1,0)
   z.B         = point:    new (2,2)
   z.E         = point:    new (5,-4)
   L.AE        = line :    new (z.A,z.E)
   C.AB        = circle:   new (z.A , z.B)
   z.S         = C.AB.south
   z.M         = L.AE.mid
   L.Ti,L.Tj   = C.AB:   tangent_from (z.E)
   z.i         = L.Ti.pb
   z.j         = L.Tj.pb
   z.k,z.l     = get_points (C.AB:  tangent_at (z.B))
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(A,B M,A)
   \tkzDrawPoints(A,B,E,i,j,M,S)
   \tkzDrawLines(E,i E,j k,l)
   \tkzLabelPoints[right,font=\small](A,B,E,S,M)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
z.A     = point:    new (1,0)
z.B     = point:    new (2,2)
z.E     = point:    new (5,-4)
L.AE    = line :    new (z.A,z.E)
C.AB    = circle:   new (z.A , z.B)
z.S     = C.AB.south
z.M     = L.AE.mid
L.Ti,L.Tj   = C.AB:   tangent_from (z.E)
z.i     = L.Ti.pb
z.j     = L.Tj.pb
z.k,z.l = get_points (C.AB:  tangent_at (z.B))
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(A,B M,A)
\tkzDrawPoints(A,B,E,i,j,M,S)
\tkzDrawLines(E,i E,j k,l)
\tkzLabelPoints[right,font=\small](A,B,E,S,M)
\end{tikzpicture}
\end{minipage}
% subsection tangent_and_circle (end)

\subsection{Homothety} % (fold)
\label{sub:homothety}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   z.A      = point:  new (0,0)
   z.B      = point:  new (1,2)
   z.E      = point:  new (-3,2)
   z.C,z.D  = z.E : homothety(2,z.A,z.B)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPoints(A,B,C,E,D)
   \tkzLabelPoints(A,B,C,E)
   \tkzDrawCircles(A,B C,D)
   \tkzDrawLines(E,C E,D)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
scale = .6
z.A  = point:  new (0,0)
z.B  = point:  new (1,2)
z.E  = point:  new (-3,2)
z.C,z.D  = z.E : homothety(2,z.A,z.B)
\end{tkzelements}
\hspace*{\fill}\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C,E,D)
\tkzLabelPoints(A,B,C,E)
\tkzDrawCircles(A,B C,D)
\tkzDrawLines(E,C E,D)
\end{tikzpicture}
\end{minipage}
% subsection homothety (end)

\subsection{Tangent and chord} % (fold)
\label{sub:tangent_and_chord}
\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   scale       = .8
   z.A         = point: new (0 , 0)
   z.B         = point: new (6 , 0)
   z.C         = point: new (1 , 5)
   z.Bp        = point: new (2 , 0)
   T.ABC       = triangle: new (z.A,z.B,z.C)
   L.AB        = line: new (z.A,z.B)
   z.O         = T.ABC.circumcenter
   C.OA        = circle: new (z.O,z.A)
   z.D         = C.OA: point (4.5)
   L.AO        = line: new (z.A,z.O)
   z.b1,z.b2   = get_points (C.OA: tangent_at (z.B))
   z.H         = L.AB: projection (z.O)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircle(O,A)
   \tkzDrawPolygon(A,B,C)
   \tkzDrawSegments[new](A,O B,O O,H A,D D,B)
   \tkzDrawLine(b1,b2)
   \tkzDrawPoints(A,B,C,D,H,O)
   \tkzFillAngles[green!20,opacity=.3](H,O,B A,C,B  A,B,b1)
   \tkzFillAngles[teal!20,opacity=.3](A,D,B b2,B,A)
   \tkzLabelPoints(A,B,C,D,H,O)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
scale = 0.75
z.A     = point: new (0 , 0)
z.B     = point: new (6 , 0)
z.C     = point: new (1 , 5)
z.Bp    = point: new (2 , 0)
T.ABC   = triangle: new (z.A,z.B,z.C)
L.AB    = line: new (z.A,z.B)
z.O     = T.ABC.circumcenter
C.OA    = circle: new (z.O,z.A)
z.D     = C.OA: point (4.5)
L.AO    = line: new (z.A,z.O)
z.b1,z.b2   = get_points (C.OA: tangent_at (z.B))
z.H     = L.AB: projection (z.O)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircle(O,A)
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments[new](A,O B,O O,H A,D D,B)
\tkzDrawLine(b1,b2)
\tkzDrawPoints(A,B,C,D,H,O)
\tkzFillAngles[green!20,opacity=.3](H,O,B A,C,B  A,B,b1)
\tkzFillAngles[teal!20,opacity=.3](A,D,B b2,B,A)
\tkzLabelPoints(A,B,C,D,H,O)
\end{tikzpicture}
\end{minipage}
% subsection tangent_and_chord (end)


\subsection{Three chords} % (fold)
\label{sub:three_chords}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
z.O  = point: new (0 , 0)
z.B  = point: new (0 , 2)
z.P  = point: new (1 , -.5)
C.OB = circle : new (z.O,z.B)
C.PB = circle : new (z.P,z.B)
_,z.A    = intersection (C.OB,C.PB)
z.D  = C.PB: point(0.85)
z.C  = C.PB: point(0.5)
z.E  = C.OB: point(0.6)
L.AB = line : new (z.A,z.B)
L.CD = line : new (z.C,z.D)
z.G  = intersection (L.AB,L.CD)
L.GE = line : new (z.G,z.E)
z.F,_    = intersection (L.GE,C.OB)
T.CDE    = triangle: new (z.C,z.D,z.E)
T.BFD    = triangle: new (z.B,z.F,z.D)
z.w  = T.CDE.circumcenter
z.x  = T.BFD.circumcenter
L.GB = line : new (z.G,z.B)
L.GE = line : new (z.G,z.E)
L.GD = line : new (z.G,z.D)
C.xB = circle : new (z.x,z.B)
C.xF = circle : new (z.x,z.F)
C.xD = circle : new (z.x,z.D)
z.Ap = intersection (L.GB,C.xB)
z.Ep,_   = intersection (L.GE,C.xF)
z.Cp,_   = intersection (L.GD,C.xD)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(O,B)
   \tkzDrawCircles[cyan](P,B)
   \tkzDrawCircles[red](w,E)
   \tkzDrawCircles[new](x,F)
   \tkzDrawSegments(A,G E,G C,G)
   \tkzDrawPolygons[new](A,E,C A',E',C')
   \tkzDrawPoints(A,...,G,A',E',C',O,P)
   \begin{scope}[font=\scriptsize]
   \tkzLabelPoints(A,...,F)
   \tkzLabelPoints[above left](G,A',E',C')
   \tkzLabelCircle[left](O,B)(30){$(\beta)$}
   \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
   \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
   \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
   \end{scope}
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
z.O  = point: new (0 , 0)
z.B  = point: new (0 , 2)
z.P  = point: new (1 , -.5)
C.OB = circle : new (z.O,z.B)
C.PB = circle : new (z.P,z.B)
_,z.A    = intersection (C.OB,C.PB)
z.D  = C.PB: point(0.85)
z.C  = C.PB: point(0.5)
z.E  = C.OB: point(0.6)
L.AB = line : new (z.A,z.B)
L.CD = line : new (z.C,z.D)
z.G  = intersection (L.AB,L.CD)
L.GE = line : new (z.G,z.E)
z.F,_    = intersection (L.GE,C.OB)
T.CDE    = triangle: new (z.C,z.D,z.E)
T.BFD    = triangle: new (z.B,z.F,z.D)
z.w  = T.CDE.circumcenter
z.x  = T.BFD.circumcenter
L.GB = line : new (z.G,z.B)
L.GE = line : new (z.G,z.E)
L.GD = line : new (z.G,z.D)
C.xB = circle : new (z.x,z.B)
C.xF = circle : new (z.x,z.F)
C.xD = circle : new (z.x,z.D)
z.Ap = intersection (L.GB,C.xB)
z.Ep,_   = intersection (L.GE,C.xF)
z.Cp,_   = intersection (L.GD,C.xD)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(O,B)
\tkzDrawCircles[cyan](P,B)
\tkzDrawCircles[red](w,E)
\tkzDrawCircles[new](x,F)
\tkzDrawSegments(A,G E,G C,G)
\tkzDrawPolygons[new](A,E,C A',E',C')
\tkzDrawPoints(A,...,G,A',E',C',O,P)
\begin{scope}[font=\scriptsize]
   \tkzLabelPoints(A,...,F)
   \tkzLabelPoints[above left](G,A',E',C')
   \tkzLabelCircle[left](O,B)(30){$(\beta)$}
   \tkzLabelCircle[below](P,A)(40){$(\gamma)$}
   \tkzLabelCircle[right](w,C)(90){$(\alpha)$}
   \tkzLabelCircle[left](x,B)(-230){$((\delta))$}
\end{scope}
\end{tikzpicture}
\hspace*{\fill}
% subsection three_chords (end)

\subsection{Three tangents} % (fold)
\label{sub:three_tangents}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.A    = point: new (-1 , 0)
   z.C    = point: new (4 , -1.5)
   z.E    = point: new (1 , -1)
   z.F    = point: new (1.5 , 2.5)
   T.AEF  = triangle : new (z.A,z.E,z.F)
   T.CEF  = triangle : new (z.C,z.E,z.F)
   z.w    = T.AEF.circumcenter
   z.x    = T.CEF.circumcenter
   C.wE   = circle : new (z.w,z.E)
   C.xE   = circle : new (z.x,z.E)
   L.Aw   = line : new (z.A,z.w)
   L.Cx   = line : new (z.C,z.x)
   z.G    = intersection (L.Aw,L.Cx)
   L.TA   = C.wE : tangent_at (z.A)
   L.TC   = C.xE : tangent_at (z.C)
   z.I    = intersection (L.TA,L.TC)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawCircles(w,E)
   \tkzDrawCircles[cyan](x,E)
   \tkzDrawCircles[red](G,A)
   \tkzDrawLines(A,I C,I F,I)
   \tkzDrawPoints(A,C,E,F)
   \tkzLabelPoints[right](A)
   \tkzLabelPoints[above right](E,F)
   \tkzLabelPoints[below](C)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale  = .75
z.A    = point: new (-1 , 0)
z.C    = point: new (4 , -1.5)
z.E    = point: new (1 , -1)
z.F    = point: new (1.5 , 2.5)
T.AEF  = triangle : new (z.A,z.E,z.F)
T.CEF  = triangle : new (z.C,z.E,z.F)
z.w    = T.AEF.circumcenter
z.x    = T.CEF.circumcenter
C.wE   = circle : new (z.w,z.E)
C.xE   = circle : new (z.x,z.E)
L.Aw   = line : new (z.A,z.w)
L.Cx   = line : new (z.C,z.x)
z.G    = intersection (L.Aw,L.Cx)
L.TA   = C.wE : tangent_at (z.A)
L.TC   = C.xE : tangent_at (z.C)
z.I    = intersection (L.TA,L.TC)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawCircles(w,E)
\tkzDrawCircles[cyan](x,E)
\tkzDrawCircles[red](G,A)
\tkzDrawLines(A,I C,I F,I)
\tkzDrawPoints(A,C,E,F)
\tkzLabelPoints[right](A)
\tkzLabelPoints[above right](E,F)
\tkzLabelPoints[below](C)
\end{tikzpicture}
\end{minipage}
% subsection three_tangents (end)

\subsection{Midarc} % (fold)
\label{sub:midarc}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.A   = point:  new (-1,0)
   z.B   = point:  new (2,4)
   C.AB  = circle: new (z.A,z.B)
   z.C   =  z.A: rotation (math.pi/3,z.B)
   z.D   = C.AB: midarc (z.B,z.C)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPoints(A,B,C)
   \tkzDrawCircles(A,B)
   \tkzDrawPoints(A,...,D)
   \tkzLabelPoints(A,...,D)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale = .5
z.A  = point:  new (-1,0)
z.B  = point:  new (2,4)
C.AB = circle:  new (z.A,z.B)
z.C =  z.A: rotation (math.pi/3,z.B)
z.D = C.AB: midarc (z.B,z.C)
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPoints(A,B,C)
\tkzDrawCircles(A,B)
\tkzDrawPoints(A,...,D)
\tkzLabelPoints(A,...,D)
\end{tikzpicture}
\end{minipage}
% subsection midarc (end)

\subsection{Lemoine Line without macro} % (fold)
\label{sub:lemoine_line_without_macro}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   scale       = 1.6
   z.A         = point: new (1,0)
   z.B         = point: new (5,2)
   z.C         = point: new (1.2,2)
   T           = triangle: new(z.A,z.B,z.C)
   z.O         = T.circumcenter
   L.AB        = line: new (z.A,z.B)
   L.AC        = line: new (z.A,z.C)
   L.BC        = line: new (z.B,z.C)
   C.OA        = circle: new (z.O,z.A)
   z.Ar,z.Al   = get_points (C.OA: tangent_at (z.A))
   z.Br,z.Bl   = get_points (C.OA: tangent_at (z.B))
   z.Cr,z.Cl   = get_points (C.OA: tangent_at (z.C))
   L.tA        = line: new (z.Ar,z.Al)
   L.tB        = line: new (z.Br,z.Bl)
   L.tC        = line: new (z.Cr,z.Cl)
   z.P         = intersection (L.tA,L.BC)
   z.Q         = intersection (L.tB,L.AC)
   z.R         = intersection (L.tC,L.AB)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygon[teal](A,B,C)
   \tkzDrawCircle(O,A)
   \tkzDrawPoints(A,B,C,P,Q,R)
   \tkzLabelPoints(A,B,C,P,Q,R)
   \tkzDrawLine[blue](Q,R)
   \tkzDrawLines[red](Ar,Al Br,Q Cr,Cl)
   \tkzDrawSegments(A,R C,P C,Q)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
scale       = 0.75
z.A         = point: new (1,0)
z.B         = point: new (5,2)
z.C         = point: new (1.2,2)
T           = triangle: new(z.A,z.B,z.C)
z.O         = T.circumcenter
L.AB        = line: new (z.A,z.B)
L.AC        = line: new (z.A,z.C)
L.BC        = line: new (z.B,z.C)
C.OA        = circle: new (z.O,z.A)
z.Ar,z.Al   = get_points (C.OA: tangent_at (z.A))
z.Br,z.Bl   = get_points (C.OA: tangent_at (z.B))
z.Cr,z.Cl   = get_points (C.OA: tangent_at (z.C))
L.tA        = line: new (z.Ar,z.Al)
L.tB        = line: new (z.Br,z.Bl)
L.tC        = line: new (z.Cr,z.Cl)
z.P         = intersection (L.tA,L.BC)
z.Q         = intersection (L.tB,L.AC)
z.R         = intersection (L.tC,L.AB)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon[teal](A,B,C)
\tkzDrawCircle(O,A)
\tkzDrawPoints(A,B,C,P,Q,R)
\tkzLabelPoints(A,B,C,P,Q,R)
\tkzDrawLine[blue](Q,R)
\tkzDrawLines[red](Ar,Al Br,Q Cr,Cl)
\tkzDrawSegments(A,R C,P C,Q)
\end{tikzpicture}
\end{minipage}
% subsection lemoine_line_without_macro (end)

\subsection{First Lemoine circle} % (fold)
\label{sub:first_lemoine_circle}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
   z.A      = point:  new (1,1)
   z.B      = point:  new (5,1)
   z.C      = point:  new (2,3)
   T        = triangle: new (z.A,z.B,z.C)
   z.O      = T.circumcenter
   z.o,z.w  = get_points (T : first_lemoine_circle ())
   z.L      = T : lemoine_point ()
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygons(A,B,C)
   \tkzDrawPoints(A,B,C,o,w,O,L)
   \tkzLabelPoints(A,B,C,o,w,O,L)
   \tkzDrawCircles(o,w  O,A)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
z.A      = point:  new (1,1)
z.B      = point:  new (5,1)
z.C      = point:  new (2,3)
T        = triangle: new (z.A,z.B,z.C)
z.O      = T.circumcenter
z.o,z.w  = get_points (T : first_lemoine_circle ())
z.L      = T : lemoine_point ()
\end{tkzelements}
\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(A,B,C)
\tkzDrawPoints(A,B,C,o,w,O,L)
\tkzLabelPoints(A,B,C,o,w,O,L)
\tkzDrawCircles(o,w  O,A)
\end{tikzpicture}
\end{minipage}
% subsection first_lemoine_circle (end)

\subsection{First and second Lemoine circles} % (fold)
\label{sub:first_and_second_lemoine_circles}

\begin{tkzexample}[latex=0cm,small,code only]
\begin{tkzelements}
   scale             = 2
   z.a               = point:  new (0,0)
   z.b               = point:  new (5,0)
   z.c               = point:  new (2,3)
   T                 = triangle: new (z.a,z.b,z.c)
   z.O               = T.circumcenter
   z.o,z.p           = get_points (T : first_lemoine_circle ())
   L.ab              = line : new (z.a,z.b)
   L.ca              = line : new (z.c,z.a)
   L.bc              = line : new (z.b,z.c)
   z.L,z.x           = get_points (T : second_lemoine_circle ())
   C.first_lemoine   = circle : new (z.o,z.p)
   z.y1,z.y2         = intersection (L.ab,C.first_lemoine)
   z.y5,z.y6         = intersection (L.bc,C.first_lemoine)
   z.y3,z.y4         = intersection (L.ca,C.first_lemoine)
   C.second_lemoine  = circle : new (z.L,z.x)
   z.x1,z.x2         = intersection (L.ab,C.second_lemoine)
   z.x3,z.x4         = intersection (L.bc,C.second_lemoine)
   z.x5,z.x6         = intersection (L.ca,C.second_lemoine)
   L.y1y6            = line : new (z.y1,z.y6)
   L.y4y5            = line : new (z.y4,z.y5)
   L.y2y3            = line : new (z.y2,z.y3)
\end{tkzelements}
\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygons(a,b,c y1,y2,y3,y4,y5,y6)
   \tkzDrawPoints(x1,x2,x3,x4,x5,x6,L)
   \tkzDrawPoints(a,b,c,o,O,y1,y2,y3,y4,y5,y6)
   \tkzLabelPoints[below right](a,b,c,o,O,y1,y2,y3,y4,y5,y6)
   \tkzLabelPoints[below left](x1,x2,x3,x4,x5,x6)
   \tkzLabelPoints[above](L)
   \tkzDrawCircles(L,x o,p O,a)
   \tkzDrawSegments(L,O x1,x4 x2,x5 x3,x6)
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale     = 2
z.a   = point:  new (0,0)
z.b   = point:  new (5,0)
z.c   = point:  new (2,3)
T     = triangle: new (z.a,z.b,z.c)
z.O   = T.circumcenter
z.o,z.p   = get_points (T : first_lemoine_circle ())
L.ab      = line : new (z.a,z.b)
L.ca      = line : new (z.c,z.a)
L.bc      = line : new (z.b,z.c)
z.L,z.x   = get_points (T : second_lemoine_circle ())
C.first_lemoine   = circle : new (z.o,z.p)
z.y1,z.y2     = intersection (L.ab,C.first_lemoine)
z.y5,z.y6     = intersection (L.bc,C.first_lemoine)
z.y3,z.y4     = intersection (L.ca,C.first_lemoine)
C.second_lemoine  = circle : new (z.L,z.x)
z.x1,z.x2     = intersection (L.ab,C.second_lemoine)
z.x3,z.x4     = intersection (L.bc,C.second_lemoine)
z.x5,z.x6     = intersection (L.ca,C.second_lemoine)
L.y1y6    = line : new (z.y1,z.y6)
L.y4y5    = line : new (z.y4,z.y5)
L.y2y3    = line : new (z.y2,z.y3)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c y1,y2,y3,y4,y5,y6)
\tkzDrawPoints(x1,x2,x3,x4,x5,x6,L)
\tkzDrawPoints(a,b,c,o,O,y1,y2,y3,y4,y5,y6)
\tkzLabelPoints[below right](a,b,c,o,O,y1,y2,y3,y4,y5,y6)
\tkzLabelPoints[below left](x1,x2,x3,x4,x5,x6)
\tkzLabelPoints[above](L)
\tkzDrawCircles(L,x o,p O,a)
\tkzDrawSegments(L,O x1,x4 x2,x5 x3,x6)
\end{tikzpicture}
\hspace*{\fill}
% subsection first_and_second_lemoine_circles (end)

\subsection{Inversion} % (fold)
\label{sub:inversion}

\begin{tkzexample}[latex=0cm,small,code only]
 \begin{tkzelements}
   z.A         = point: new (-1,0)
   z.B         = point: new (2,2)
   z.C         = point: new (2,4)
   z.E         = point: new (1,6)
   C.AC        = circle:    new (z.A,z.C)
   L.Tt1,L.Tt2 = C.AC: tangent_from (z.E)
   z.t1        = L.Tt1.pb
   z.t2        = L.Tt2.pb
   L.AE        = line: new (z.A,z.E)
   z.H         = L.AE : projection (z.t1)
   z.Bp,
   z.Ep,
   z.Cp        = C.AC: inversion ( z.B, z.E, z.C )
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPoints(A,B,C)
   \tkzDrawCircles(A,C A,B)
   \tkzDrawLines(A,B' E,t1 E,t2 t1,t2 A,E)
   \tkzDrawPoints(A,B,C,E,t1,t2,H,B',E')
   \tkzLabelPoints(A,B,C,E,t1,t2,B',E')
   \tkzLabelPoints[above](C')
\end{tikzpicture}
\end{tkzexample}

\begin{tkzelements}
scale = .75
z.A     = point: new (-1,0)
z.B     = point: new (2,2)
z.C     = point: new (2,4)
z.E     = point: new (1,6)
C.AC    = circle:    new (z.A,z.C)
L.Tt1,L.Tt2 = C.AC: tangent_from (z.E)
z.t1    = L.Tt1.pb
z.t2    = L.Tt2.pb
L.AE    = line: new (z.A,z.E)
z.H     = L.AE : projection (z.t1)
z.Bp,
z.Ep,
z.Cp    = C.AC: inversion ( z.B, z.E, z.C )
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
  \tkzGetNodes
  \tkzDrawPoints(A,B,C)
  \tkzDrawCircles(A,C A,B)
  \tkzDrawLines(A,B' E,t1 E,t2 t1,t2 A,E)
  \tkzDrawPoints(A,B,C,E,t1,t2,H,B',E')
  \tkzLabelPoints(A,B,C,E,t1,t2,B',E')
  \tkzLabelPoints[above](C')
\end{tikzpicture}
\hspace*{\fill}
% subsection inversion (end)

\subsection{Gergonne point} % (fold)
\label{sub:gergonne_point}

\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{verbatim}
\begin{tkzelements}
z.a  = point: new(1,0)
z.b  = point: new(6,2)
z.c  = point: new(2,5)
T    = triangle : new (z.a,z.b,z.c)
z.g  = T : gergonne_point ()
z.i  = T.incenter
z.ta,z.tb,z.tc = get_points (T :  intouch ())
\end{tkzelements}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c)
\tkzDrawPoints(a,b,c,g)
\tkzLabelPoints(a,b,c)
\tkzDrawSegments (a,ta b,tb c,tc)
\tkzDrawCircle(i,ta)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}[t]{.5\textwidth}\vspace{0pt}%
\begin{tkzelements}
z.a  = point: new(1,0)
z.b  = point: new(6,2)
z.c  = point: new(2,5)
T    = triangle : new (z.a,z.b,z.c)
z.g  = T : gergonne_point ()
z.i  = T.incenter
z.ta,z.tb,z.tc = get_points (T :  intouch ())
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c)
\tkzDrawPoints(a,b,c,g)
\tkzLabelPoints(a,b,c)
\tkzDrawSegments (a,ta b,tb c,tc)
\tkzDrawCircle(i,ta)
\end{tikzpicture}
\end{minipage}
% subsection gergonne_point (end)

\subsection{Antiparallel through Lemoine point} % (fold)
\label{sub:antiparallel_through_lemoine_point}


\begin{minipage}{.5\textwidth}
\begin{verbatim}
\begin{tkzelements}
   z.a         = point:  new (0,0)
   z.b         = point:  new (5,0)
   z.c         = point:  new (1,4)
   T           = triangle: new (z.a,z.b,z.c)
   z.L         = T : lemoine_point ()
   L.anti      = T : antiparallel (z.L,0)
   z.x_0,z.x_1 = get_points (L.anti)
   L.anti      = T : antiparallel (z.L,1)
   z.y_0,z.y_1 = get_points (L.anti)
   L.anti      = T : antiparallel (z.L,2)
   z.z_0,z.z_1 = get_points (L.anti)
\end{tkzelements}

\begin{tikzpicture}
   \tkzGetNodes
   \tkzDrawPolygons(a,b,c)
   \tkzDrawPoints(a,b,c,L,x_0,x_1,y_0,y_1,z_0,z_1)
   \tkzLabelPoints(a,b)
   \tkzLabelPoints[above](L,c)
   \tkzDrawSegments(x_0,x_1 y_0,y_1 z_0,z_1)
   \tkzDrawCircle(L,x_0)
\end{tikzpicture}
\end{verbatim}
\end{minipage}
\begin{minipage}{.5\textwidth}
\begin{tkzelements}
z.a = point:  new (0,0)
z.b = point:  new (5,0)
z.c = point:  new (1,4)
T = triangle: new (z.a,z.b,z.c)
z.L = T : lemoine_point ()
L.anti = T : antiparallel (z.L,0)
z.x_0,z.x_1 = get_points (L.anti)
L.anti = T : antiparallel (z.L,1)
z.y_0,z.y_1 = get_points (L.anti)
L.anti = T : antiparallel (z.L,2)
z.z_0,z.z_1 = get_points (L.anti)
\end{tkzelements}

\hspace*{\fill}
\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygons(a,b,c)
\tkzDrawPoints(a,b,c,L,x_0,x_1,y_0,y_1,z_0,z_1)
\tkzLabelPoints(a,b)
\tkzLabelPoints[above](L,c)
\tkzDrawSegments(x_0,x_1 y_0,y_1 z_0,z_1)
\tkzDrawCircle(L,x_0)
\end{tikzpicture}
\end{minipage}
% subsection antiparallel_through_lemoine_point (end)

\subsection{Soddy circle without function} % (fold)
\label{sub:soddy}

\begin{verbatim}
\begin{tkzelements}
z.A = point : new ( 0  , 0  )
z.B = point : new ( 5  , 0  )
z.C = point : new ( 0.5 ,  4  )
T.ABC = triangle : new ( z.A,z.B,z.C )
z.I = T.ABC.incenter
z.E,z.F,z.G = T.ABC : projection (z.I)
C.ins = circle : new (z.I,z.E)
T.orthic = T.ABC : orthic ()
z.Ha,z.Hb,z.Hc = get_points (T.orthic)
C.CF = circle : new ( z.C , z.F )
C.AG = circle : new ( z.A , z.G )
C.BE = circle : new ( z.B , z.E )
L.Ah = line : new ( z.A , z.Ha )
L.Bh = line : new ( z.B , z.Hb )
L.Ch = line : new ( z.C , z.Hc )
z.X,z.Xp = intersection (L.Ah,C.AG)
z.Y,z.Yp = intersection (L.Bh,C.BE)
z.Z,z.Zp = intersection (L.Ch,C.CF)
L.XpE = line   : new (z.Xp,z.E)
L.YpF = line   : new (z.Yp,z.F)
L.ZpG = line   : new (z.Zp,z.G)
z.S = intersection (L.XpE,L.YpF)
z.Xi = intersection(L.XpE,C.AG)
z.Yi = intersection(L.YpF,C.BE)
_,z.Zi = intersection(L.ZpG,C.CF)
z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
C.soddy_int = circle : new (z.S,z.Xi)
C.soddy_ext = C.ins : inversion (C.soddy_int)
z.w = C.soddy_ext.center
z.s = C.soddy_ext.through
z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
\end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
\tkzDrawPoints(Xi',Yi',Zi',S)
\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
\tkzDrawLines(X',Ha Y',Hb Z',Hc)
\tkzDrawLines(X',E Y',F Z',G)
\end{tikzpicture}
\end{verbatim}

\begin{tkzelements}
z.A = point : new ( 0  , 0  )
z.B = point : new ( 5  , 0  )
z.C = point : new ( 0.5 ,  4  )
T.ABC = triangle : new ( z.A,z.B,z.C )
z.I = T.ABC.incenter
z.E,z.F,z.G = T.ABC : projection (z.I)
C.ins = circle : new (z.I,z.E)
T.orthic = T.ABC : orthic ()
z.Ha,z.Hb,z.Hc = get_points (T.orthic)
C.CF = circle : new ( z.C , z.F )
C.AG = circle : new ( z.A , z.G )
C.BE = circle : new ( z.B , z.E )
L.Ah = line : new ( z.A , z.Ha )
L.Bh = line : new ( z.B , z.Hb )
L.Ch = line : new ( z.C , z.Hc )
z.X,z.Xp = intersection (L.Ah,C.AG)
z.Y,z.Yp = intersection (L.Bh,C.BE)
z.Z,z.Zp = intersection (L.Ch,C.CF)
L.XpE = line   : new (z.Xp,z.E)
L.YpF = line   : new (z.Yp,z.F)
L.ZpG = line   : new (z.Zp,z.G)
z.S = intersection (L.XpE,L.YpF)
z.Xi = intersection(L.XpE,C.AG)
z.Yi = intersection(L.YpF,C.BE)
_,z.Zi = intersection(L.ZpG,C.CF)
z.S = triangle : new (z.Xi,z.Yi,z.Zi).circumcenter
C.soddy_int = circle : new (z.S,z.Xi)
C.soddy_ext = C.ins : inversion (C.soddy_int)
z.w = C.soddy_ext.center
z.s = C.soddy_ext.through
z.Xip,z.Yip,z.Zip = C.ins : inversion (z.Xi,z.Yi,z.Zi)
\end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,X,Y,Z,X',Y',Z',Xi,Yi,Zi,I)
\tkzDrawPoints(Xi',Yi',Zi',S)
\tkzLabelPoints(A,B,C,E,F,G,X,Y,Z,X',Y',Z')
\tkzDrawCircles(A,G B,E C,F I,E S,Xi w,s)
\tkzDrawLines(X',Ha Y',Hb Z',Hc)
\tkzDrawLines(X',E Y',F Z',G)
\end{tikzpicture}
% subsection soddy (end)

\subsection{Soddy circle with function} % (fold)
\label{sub:soddy_circle_with_function}

\begin{verbatim}
\begin{tkzelements}
z.A = point : new ( 0  , 0  )
z.B = point : new ( 5  , 0  )
z.C = point : new (4 ,  4  )
T.ABC = triangle : new ( z.A,z.B,z.C )
z.I = T.ABC.incenter
z.E,z.F,z.G = T.ABC : projection (z.I)
T.orthic = T.ABC : orthic ()
z.Ha,z.Hb,z.Hc = get_points (T.orthic)
C.ins = circle : new (z.I,z.E)
z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
C.soddy_int = circle : new (z.s,z.xi)
C.soddy_ext = C.ins : inversion (C.soddy_int)
z.w = C.soddy_ext.center
z.t = C.soddy_ext.through
z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
  \end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
\tkzLabelPoints(A,B,C)
\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
\tkzDrawPoints(Xi',Yi',Zi')
\tkzLabelPoints(A,B,C,E,F,G)
\tkzDrawCircles(A,G B,E C,F I,E w,s)
\end{tikzpicture}
\end{verbatim}

\begin{tkzelements}
z.A = point : new ( 0  , 0  )
z.B = point : new ( 5  , 0  )
z.C = point : new (4 ,  4  )
T.ABC = triangle : new ( z.A,z.B,z.C )
z.I = T.ABC.incenter
z.E,z.F,z.G = T.ABC : projection (z.I)
T.orthic = T.ABC : orthic ()
z.Ha,z.Hb,z.Hc = get_points (T.orthic)
C.ins = circle : new (z.I,z.E)
z.s,z.xi,z.yi,z.zi = T.ABC : soddy_center ()
C.soddy_int = circle : new (z.s,z.xi)
C.soddy_ext = C.ins : inversion (C.soddy_int)
z.w = C.soddy_ext.center
z.t = C.soddy_ext.through
z.Xip,z.Yip,z.Zip = C.ins : inversion (z.xi,z.yi,z.zi)
  \end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawPolygon(A,B,C)
\tkzDrawCircles(A,G B,E C,F I,E s,xi w,t)
\tkzDrawPoints(A,B,C,E,F,G,s,w,xi,t)
\tkzLabelPoints(A,B,C)
\tkzDrawPoints(A,B,C,E,F,G,Ha,Hb,Hc,xi,yi,zi,I)
\tkzDrawPoints(Xi',Yi',Zi')
\tkzLabelPoints(A,B,C,E,F,G)
\tkzDrawCircles(A,G B,E C,F I,E w,s)
\end{tikzpicture}

% subsection soddy_circle_with_function (end)

\subsubsection{Pappus chain} % (fold)
\label{ssub:pappus_chain}
  Soit le point $D$ appartenant à la droite $(AC)$ tel que
  \[ DB \cdot DA = AC^2\]
  alors $B$ est l'image de $D$ dans l'inversion de centre $A$ et puissance $AC^2$.
  Les demi-cercles de diamètre $[AB]$ et$[AC]$ passent par le pôle $A$. Ils ont pour images les demi-droites $\mathcal{L'}$ et $\mathcal{L}$.

Les cercles de centre $J_i$ et de diamètre $S_iT_i$ ont pour images les cercles de diamètre $S'_iT'_i$.

  \pgfmathsetmacro{\xB}{6}%
  \pgfmathsetmacro{\xC}{9}%
  \pgfmathsetmacro{\xD}{(\xC*\xC)/\xB}%
  \pgfmathsetmacro{\xJ}{(\xC+\xD)/2}%
  \pgfmathsetmacro{\r}{\xD-\xJ}%
  \pgfmathsetmacro{\nc}{2}%

\begin{tikzpicture}[scale=1,ultra thin]
  \tkzDefPoints{0/0/A,\xB/0/B,\xC/0/C,\xD/0/D}
  \tkzDefPointBy[rotation = center C angle -90](B)  \tkzGetPoint{c}
  \tkzDefPointBy[rotation = center A angle 90](C)  \tkzGetPoint{a}
  \tkzDefPointBy[rotation = center D angle -90](C)  \tkzGetPoint{d}
  \tkzDrawLines[add=0 and 2.25](C,c)
  \tkzDrawLines[add=0 and 1.5](D,d)
  \tkzDefCircle[diameter](A,C) \tkzDrawSemiCircle(tkzPointResult,C)
  \tkzDefCircle[diameter](A,B) \tkzDrawSemiCircle(tkzPointResult,B)
  \tkzDefCircle[diameter](B,C) \tkzDrawSemiCircle(tkzPointResult,C)
  \tkzDefCircle[diameter](C,D) \tkzDrawSemiCircle(tkzPointResult,D)
  \tkzDrawArc[red](A,C)(a)
  \tkzDrawPoints(A,B,C,D)
  \tkzLabelPoints(A,B,C,D)
  \tkzLabelLine[left,pos=3](C,c){$\mathcal{L}$}
  \tkzLabelLine[right,pos=2.5](D,d){$\mathcal{L'}$}
  \foreach \i in {1,...,\nc}
{\tkzDefPoint(\xJ,2*\r*\i){J}
  \tkzDefPoint(\xJ,2*\r*\i-\r){H}
  \tkzDefCircleBy[inversion = center A through C](J,H)\tkzGetPoints{J'}{H'}
  \tkzInterLC(A,J)(J,H) \tkzGetPoints{S}{T}
  \tkzDefPointsBy[inversion = center A through C](S,T){S',T'}
  \tkzDrawCircle(J,H)
  \tkzDefCircle[diameter](S',T')  \tkzGetPoint{I'}
  \tkzDrawCircle(I',T')
  \tkzDrawLines[dashed,add = 0 and .15](A,T A,S A,H)
  \tkzDrawPoints(J,H,H',S,S',T,T')
  \tkzLabelPoint(J){$J_\i$}
  \tkzLabelPoint(S){$S_\i$}
  \tkzLabelPoint(T){$T_\i$}
  \tkzLabelPoint(H){$H_\i$}
  \tkzLabelPoint(S'){$S'_\i$}
  \tkzLabelPoint(T'){$T'_\i$}
  \tkzLabelPoint(H'){$H'_\i$}}
\end{tikzpicture}

\begin{verbatim}
\begin{tkzelements}
   xC,nc    = 10,16
   xB       = xC/tkzphi
   xD       = (xC*xC)/xB
   xJ       = (xC+xD)/2
   r        = xD-xJ
   z.A      = point : new ( 0 , 0 )
   z.B      = point : new ( xB , 0)
   z.C      = point : new ( xC , 0)
   L.AC     = line : new (z.A,z.C)
   z.i      = L.AC.mid
   L.AB     = line:new (z.A,z.B)
   z.j      = L.AB.mid
   z.D      = point : new ( xD , 0)
   C.AC     = circle: new (z.A,z.C)
   for i    = -nc,nc do
      z["J"..i]   = point: new (xJ,2*r*i)
      z["H"..i]   = point: new (xJ,2*r*i-r)
      z["J"..i.."p"], z["H"..i.."p"]   = C.AC : inversion (z["J"..i],z["H"..i])
      L.AJ        = line : new (z.A,z["J"..i])
      C.JH        = circle: new ( z["J"..i] ,  z["H"..i])
      z["S"..i], z["T"..i]             = intersection (L.AJ,C.JH)
      z["S"..i.."p"], z["T"..i.."p"]   = C.AC : inversion (z["S"..i],z["T"..i])
      L.SpTp      = line:new (  z["S"..i.."p"], z["T"..i.."p"])
      z["I"..i]   = L.SpTp.mid
    end
\end{tkzelements}

\def\nc{\tkzUseLua{nc}}

\begin{tikzpicture}[ultra thin]
   \tkzGetNodes
   \tkzDrawCircle[fill=teal!20](i,C)
   \tkzDrawCircle[fill=PineGreen!60](j,B)
   \foreach \i in {-\nc,...,0,...,\nc} {
   \tkzDrawCircle[fill=teal]({I\i},{S\i'})
  }
\end{tikzpicture}

\end{verbatim}

\begin{tkzelements}
   xC,nc    = 10,16
   xB       = xC/tkzphi
   xD       = (xC*xC)/xB
   xJ       = (xC+xD)/2
   r        = xD-xJ
   z.A      = point : new ( 0 , 0 )
   z.B      = point : new ( xB , 0)
   z.C      = point : new ( xC , 0)
   L.AC     = line : new (z.A,z.C)
   z.i      = L.AC.mid
   L.AB     = line:new (z.A,z.B)
   z.j      = L.AB.mid
   z.D      = point : new ( xD , 0)
   C.AC     = circle: new (z.A,z.C)
   for i    = -nc,nc do
      z["J"..i]   = point: new (xJ,2*r*i)
      z["H"..i]   = point: new (xJ,2*r*i-r)
      z["J"..i.."p"], z["H"..i.."p"]   = C.AC : inversion (z["J"..i],z["H"..i])
      L.AJ        = line : new (z.A,z["J"..i])
      C.JH        = circle: new ( z["J"..i] ,  z["H"..i])
      z["S"..i], z["T"..i]             = intersection (L.AJ,C.JH)
      z["S"..i.."p"], z["T"..i.."p"]   = C.AC : inversion (z["S"..i],z["T"..i])
      L.SpTp      = line:new (  z["S"..i.."p"], z["T"..i.."p"])
      z["I"..i]   = L.SpTp.mid
    end
\end{tkzelements}

\def\nc{\tkzUseLua{nc}}

\begin{tikzpicture}[ultra thin]
   \tkzGetNodes
   \tkzDrawCircle[fill=teal!20](i,C)
   \tkzDrawCircle[fill=PineGreen!60](j,B)
   \foreach \i in {-\nc,...,0,...,\nc} {
   \tkzDrawCircle[fill=teal]({I\i},{S\i'})
  }
\end{tikzpicture}


% subsubsection pappus_chain (end)

\subsection{Three Circles} % (fold)
\label{sub:three_circles}

\begin{verbatim}
\begin{tkzelements}
function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
   local xk = math.sqrt (r1*r2)
   local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
   local cy = (r1*r2)/(math.sqrt(r1)+math.sqrt(r2))^2
   z[c2] = point : new ( 2*xk , r2 )
   z[h2] = point : new (2*xk,0)
   z[c1] = point : new (0,r1)
   z[h1] = point : new (0,0)
   L.h1h2 = line: new(z[h1],z[h2])
   z[c3] = point : new (cx,cy)
   z[h3] = L.h1h2: projection (z[c3])
end
   threecircles("A",4,"B",3,"C","E","G","F")
\end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegment[color = red](E,F)
\tkzDrawCircle[orange,fill=orange!20](A,E)
\tkzDrawCircle[purple,fill=purple!20](B,F)
\tkzDrawCircle[teal,fill=teal!20](C,G)
\end{tikzpicture}
\end{verbatim}

\begin{tkzelements}
function threecircles(c1,r1,c2,r2,c3,h1,h3,h2)
   local xk = math.sqrt (r1*r2)
   local cx = (2*r1*math.sqrt(r2))/(math.sqrt(r1)+math.sqrt(r2))
   local cy = (r1*r2)/(math.sqrt(r1)+math.sqrt(r2))^2
   z[c2] = point : new ( 2*xk , r2 )
   z[h2] = point : new (2*xk,0)
   z[c1] = point : new (0,r1)
   z[h1] = point : new (0,0)
   L.h1h2 = line: new(z[h1],z[h2])
   z[c3] = point : new (cx,cy)
   z[h3] = L.h1h2: projection (z[c3])
end
   threecircles("A",4,"B",3,"C","E","G","F")
\end{tkzelements}

\begin{tikzpicture}
\tkzGetNodes
\tkzDrawSegment[color = red](E,F)
\tkzDrawCircle[orange,fill=orange!20](A,E)
\tkzDrawCircle[purple,fill=purple!20](B,F)
\tkzDrawCircle[teal,fill=teal!20](C,G)
\end{tikzpicture}

% subsection three_circles (end)

\subsection{pentagons in a golden arbelos} % (fold)
\label{sub:golden_arbelos}

\begin{verbatim}
\begin{tkzelements}
z.A      = point: new (0 , 0)
z.B      = point: new (10 , 0)
L.AB     = line:  new ( z.A, z.B)
z.C      = L.AB : gold_ratio ()
L.AC     = line:  new ( z.A, z.C)
L.CB     = line:  new ( z.C, z.B)
z.O_0    = L.AB.mid
z.O_1    = L.AC.mid
z.O_2    = L.CB.mid
C.O0B    = circle: new ( z.O_0, z.B)
C.O1C    = circle: new ( z.O_1, z.C)
C.O2B    = circle: new ( z.O_2, z.B)
z.M_0    = C.O1C : external_similitude (C.O2B)
L.O0C    = line:new(z.O_0,z.C)
T.golden = L.O0C : golden ()
z.L      = T.golden.pc
L.O0L    = line:new(z.O_0,z.L)
z.D      = intersection (L.O0L,C.O0B)
L.DB     = line:new(z.D,z.B)
z.Z      = intersection (L.DB,C.O2B)
L.DA     = line:new(z.D,z.A)
z.I      = intersection (L.DA,C.O1C)
L.O2Z    = line:new(z.O_2,z.Z)
z.H      = intersection (L.O2Z,C.O0B)
C.BD     = circle:new (z.B,z.D)
C.DB     = circle:new (z.D,z.B)
_,z.G    = intersection (C.BD,C.O0B)
z.E      = intersection (C.DB,C.O0B)
C.GB     = circle:new (z.G,z.B)
_,z.F    = intersection (C.GB,C.O0B)
k        = 1/tkzphi^2
kk       = tkzphi
z.D_1,z.E_1,z.F_1,z.G_1 = z.B :   homothety (k, z.D,z.E,z.F,z.G)
z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
\end{tkzelements}
\end{verbatim}

\begin{verbatim}
\begin{tikzpicture}[scale=.8]
\tkzGetNodes
\tkzDrawPolygon[red](O_2,O_0,I,D,H)
\tkzDrawPolygon[blue](B,D_1,E_1,F_1,G_1)
\tkzDrawPolygon[green](C,D_2,E_2,F_2,G_2)
\tkzDrawPolygon[purple](B,D,E,F,G)
\tkzDrawCircles(O_0,B O_1,C O_2,B)
\tkzFillPolygon[fill=red!20,opacity=.20](O_2,O_0,I,D,H)
\tkzFillPolygon[fill=blue!20,opacity=.20](B,D_1,E_1,F_1,G_1)
\tkzFillPolygon[fill=green!60,opacity=.20](C,D_2,E_2,F_2,G_2)
\tkzFillPolygon[fill=purple!20,opacity=.20](B,D,E,F,G)
\tkzDrawCircles(O_0,B O_1,C O_2,B)
\tkzDrawSegments[new](A,B)
\tkzDrawPoints(A,B,C,O_0,O_1,O_2,Z,I,H,B,D,E,F)
\tkzDrawPoints(D_1,E_1,F_1,G_1)
\tkzDrawPoints(D_2,E_2,F_2,G_2)
\tkzDrawPoints[red](F_1)
\tkzLabelPoints(A,B,C,O_0,O_2)
\tkzLabelPoints[below](O_1,G)
\tkzLabelPoints[above right](D,H)
\tkzLabelPoints[above left](E,E_1,E_2)
\tkzLabelPoints[below left](F,F_1,F_2)
\tkzLabelPoints(D_1,G_1)
\tkzLabelPoints(D_2,G_2)
\end{tikzpicture}
\vspace{\fill}
\end{verbatim}

\begin{tkzelements}
z.A      = point: new (0 , 0)
z.B      = point: new (10 , 0)
L.AB     = line:  new ( z.A, z.B)
z.C      = L.AB : gold_ratio ()
L.AC     = line:  new ( z.A, z.C)
L.CB     = line:  new ( z.C, z.B)
z.O_0    = L.AB.mid
z.O_1    = L.AC.mid
z.O_2    = L.CB.mid
C.O0B    = circle: new ( z.O_0, z.B)
C.O1C    = circle: new ( z.O_1, z.C)
C.O2B    = circle: new ( z.O_2, z.B)
z.M_0    = C.O1C : external_similitude (C.O2B)
L.O0C    = line:new(z.O_0,z.C)
T.golden = L.O0C : golden ()
z.L      = T.golden.pc
L.O0L    = line:new(z.O_0,z.L)
z.D      = intersection (L.O0L,C.O0B)
L.DB     = line:new(z.D,z.B)
z.Z      = intersection (L.DB,C.O2B)
L.DA     = line:new(z.D,z.A)
z.I      = intersection (L.DA,C.O1C)
L.O2Z    = line:new(z.O_2,z.Z)
z.H      = intersection (L.O2Z,C.O0B)
C.BD     = circle:new (z.B,z.D)
C.DB     = circle:new (z.D,z.B)
_,z.G    = intersection (C.BD,C.O0B)
z.E      = intersection (C.DB,C.O0B)
C.GB     = circle:new (z.G,z.B)
_,z.F    = intersection (C.GB,C.O0B)
k        = 1/tkzphi^2
kk       = tkzphi
z.D_1,z.E_1,z.F_1,z.G_1 = z.B :   homothety (k, z.D,z.E,z.F,z.G)
z.D_2,z.E_2,z.F_2,z.G_2 = z.M_0 : homothety (kk,z.D_1,z.E_1,z.F_1,z.G_1)
\end{tkzelements}
\vspace{\fill}
\begin{tikzpicture}[scale=.8]
\tkzGetNodes
\tkzDrawPolygon[red](O_2,O_0,I,D,H)
\tkzDrawPolygon[blue](B,D_1,E_1,F_1,G_1)
\tkzDrawPolygon[green](C,D_2,E_2,F_2,G_2)
\tkzDrawPolygon[purple](B,D,E,F,G)
\tkzDrawCircles(O_0,B O_1,C O_2,B)
\tkzFillPolygon[fill=red!20,opacity=.20](O_2,O_0,I,D,H)
\tkzFillPolygon[fill=blue!20,opacity=.20](B,D_1,E_1,F_1,G_1)
\tkzFillPolygon[fill=green!60,opacity=.20](C,D_2,E_2,F_2,G_2)
\tkzFillPolygon[fill=purple!20,opacity=.20](B,D,E,F,G)
\tkzDrawCircles(O_0,B O_1,C O_2,B)
\tkzDrawSegments[new](A,B)
\tkzDrawPoints(A,B,C,O_0,O_1,O_2,Z,I,H,B,D,E,F)
\tkzDrawPoints(D_1,E_1,F_1,G_1)
\tkzDrawPoints(D_2,E_2,F_2,G_2)
\tkzDrawPoints[red](F_1)
\tkzLabelPoints(A,B,C,O_0,O_2)
\tkzLabelPoints[below](O_1,G)
\tkzLabelPoints[above right](D,H)
\tkzLabelPoints[above left](E,E_1,E_2)
\tkzLabelPoints[below left](F,F_1,F_2)
\tkzLabelPoints(D_1,G_1)
\tkzLabelPoints(D_2,G_2)
\end{tikzpicture}
\vspace{\fill}
% subsection golden_arbelos (end)