Apollonius

Example 1



[PDF] [TEX]

\documentclass{standalone} 
\usepackage{tkz-euclide}
\begin{document}  
\begin{tikzpicture}
  %fixed points
  \tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
  \tkzEulerCenter(A,B,C)    \tkzGetPoint{N} 
  \tkzCircumCenter(A,B,C)   \tkzGetPoint{O}
  \tkzLemoinePoint(A,B,C)   \tkzGetPoint{K}
  \tkzOrthoCenter(A,B,C)    \tkzGetPoint{H}
  \tkzDefMidPoint(A,B)      \tkzGetPoint{M}  
  \tkzDefExCircle(A,B,C)    \tkzGetPoint{Jb} \tkzGetLength{rb}
  \tkzDefExCircle(C,A,B)    \tkzGetPoint{Ja} \tkzGetLength{ra}
  \tkzDefExCircle(B,C,A)    \tkzGetPoint{Jc} \tkzGetLength{rc}  
  \tkzDefPointBy[projection=onto A--C ](Ja)  \tkzGetPoint{Za}
  \tkzDefPointBy[projection=onto A--B ](Ja)  \tkzGetPoint{Xa}
  \tkzDefPointBy[projection=onto A--C ](Jc)  \tkzGetPoint{Zc}
  \tkzDefPointBy[projection=onto B--C ](Jc)  \tkzGetPoint{Yc}
  \tkzDefPointBy[projection=onto B--C ](Jb)  \tkzGetPoint{Yb}
  \tkzDefPointBy[projection=onto A--B ](Jb)  \tkzGetPoint{Xb}
  \tkzDefLine[parallel=through Za](A,B)      \tkzGetPoint{Xc}
  \tkzInterLL(Za,Xc)(C,B)                    \tkzGetPoint{C'}
  \tkzDefLine[parallel=through Zc](B,C)      \tkzGetPoint{Ya}
  \tkzInterLL(Zc,Ya)(A,B)                    \tkzGetPoint{A'}
  \tkzDefPointBy[reflection= over Ja--Jc](C')\tkzGetPoint{Ab}
  \tkzDefPointBy[reflection= over Ja--Jc](A')\tkzGetPoint{Cb}
  \tkzDefCentroidTriangle(A,B,C){Ma,Mb,Mc}
  \tkzDefCircle[in](Ma,Mb,Mc)                \tkzGetPoint{Sp}
  \tkzInterLL(K,O)(N,Sp)                     \tkzGetPoint{Q}
  \tkzInterLC(A,B)(Q,Cb)                     \tkzGetSecondPoint{Ba}
  \tkzInterLC(A,C)(Q,Cb)                     \tkzGetPoints{Ca}{Ac}
  \tkzInterLC(B,C')(Q,Cb)                    \tkzGetSecondPoint{Bc}
  \tkzInterLC(Q,Ja)(Q,Cb)                    \tkzGetSecondPoint{F'a}
  \tkzInterLC(Q,Jc)(Q,Cb)                    \tkzGetSecondPoint{F'c}
  \tkzInterLC(Q,Jb)(Q,Cb)                    \tkzGetSecondPoint{F'b}
  \tkzInterLC(Sp,F'a)(Ja,Za)                 \tkzGetFirstPoint{Fa}
  \tkzInterLC(Sp,F'b)(Jb,Yb)                 \tkzGetFirstPoint{Fb}
  \tkzInterLC(Sp,F'c)(Jc,Yc)                 \tkzGetSecondPoint{Fc}
  \tkzInterLC(M,Sp)(Q,Cb)                    \tkzGetSecondPoint{A''}
  \tkzDefLine[parallel=through A''](N,M)     \tkzGetPoint{q}
  % Drawing
  \tkzDrawPolygon(A,B,C) 
  \tkzDrawCircle(Q,Bc)%
  \tkzDrawCircle[euler,lightgray](A,B,C) 
  \tkzDrawCircles[R,lightgray](Ja,\ra pt Jb,\rb pt Jc,\rc pt)
  \tkzDrawSegments[dashed](A,A'  C,C' A',Zc Za,C' 
                           B,Cb B,Ab A,Ca C,Ac 
                           Ja,Xa Jb,Yb Jc,Zc)
  \begin{scope}
    \tkzClipCircle(Q,Cb)
    \tkzDrawLine[add=5 and 12,orange](K,O)
    \tkzDrawLine[add=12 and 28,blue!50!black](N,Sp)
  \end{scope}
  \tkzDrawPoints(A, B, C,
             Ja, Jb, Jc,
             Q, N, O, Sp, M,
             Xa, Xb, Yb, Yc, Za, Zc,
             A', C', A'',
             Ab, Cb, Bc, Ca, Ac, Ba,
             Fa, Fb, Fc,
             F'a, F'b, F'c)
  \tkzDrawSegments[color=green!50!black](M,N M,A'' A'',Q)  
  \tkzDrawSegments[color=purple,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab)
  \tkzDrawSegments[color=purple](Cb,Ab Bc,Ac Ba,Ca A',C')
  % Marking        
  \tkzMarkSegments[color=purple,mark=|](Cb,Ab Bc,Ac Ba,Ca)
  \tkzMarkRightAngles(Jc,Zc,A Ja,Xa,B Jb,Yb,C)
  % Labelling
  \tkzLabelPoints(Ja, Jb, Jc, Q, Xa, Xb,
                  Za, Zc, Ab, Cb,
                  Bc, Ca, Ac, Ba, F'b)
  \tkzLabelPoints[above](O, K, F'a, Fa, A'')
  \tkzLabelPoints[below](B, F'c, Yc, N, Sp, Fc, M)
  \tkzLabelPoints[left](A', C', Fb)
  \tkzLabelPoints[right](C)
  \tkzLabelPoints[below right](A)
  \tkzLabelPoints[above right](Yb)
\end{tikzpicture}
  
\end{document}