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}