Skip to content

Pappus

Example Bankoff circle.

\emph{ The points of tangency of the incircle of the arbelos with the semicircles $(\beta)$ and $(\gamma)$, together with $(\alpha)$, are the points of tangency of the incircle $(\epsilon)$ of triangle $O_1O_3O_2$ with the sides of the triangle.}

circle_bankoff.
View TeX code
% !TEX TS-program = lualatex
% Author Alain Matthes 2025
\documentclass[margin=12pt]{standalone}
\usepackage[mini]{tkz-euclide}
\usepackage{tkz-elements}
\begin{document}

\directlua{dofile ("circle_bankoff.lua")}
   
\begin{tikzpicture}
   \tkzGetNodes
   \tkzFillCircle[orange!60,opacity=.3](O_4,C)
   \tkzFillCircle[pink!60,opacity=.3](O_3,P_1)
   \tkzDrawCircles(O_4,C O_3,P_1)
   \tkzDrawSemiCircles[fill=yellow!60,opacity=.3](O_1,C O_2,B)
   \tkzDrawSemiCircles(O_0,B O_1,C O_2,B)
   \tkzDrawSegments(A,B)   
   \tkzDrawSegments[orange](O_1,Q O_2,P O_0,P_0)
   \tkzDrawPoints(A,B,C,O_0,O_1,O_2,Q,P,O_4,P_0,P_1,P_2,O_3)
   \tkzLabelPoints[font=\scriptsize](A,B,C,O_0,O_1,O_2,O_3)
   \tkzLabelPoints[above,font=\scriptsize](Q,P,O_4,P_2,P_1,P_0)
   \tkzLabelCircle[above=4pt,font=\scriptsize](O_0,B)(150){$(\alpha)$}
   \tkzLabelCircle[above=2pt,font=\scriptsize](O_1,C)(120){$(\beta)$}
   \tkzLabelCircle[above=4pt,font=\scriptsize](O_2,B)(50){$(\gamma)$}
   \tkzLabelCircle[above,font=\scriptsize,red](O_3,P_2)(180){$(\delta)$}
   \tkzLabelCircle[below](O_4,C)(300){$(\epsilon)$}
 \end{tikzpicture}

\end{document}

View Lua code
init_elements()
z.A = point(0, 0)
z.B = point(10, 0)
L.AB = line(z.A, z.B)
z.C = L.AB : gold_ratio ()
L.AC = line(z.A, z.C)
L.CB = line(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(z.O_0, z.B)
C.O1C = circle(z.O_1, z.C)
C.O2B = circle(z.O_2, z.B)
z.M_0 = C.O1C:external_similitude(C.O2B)
z.M_1 = C.O0B:internal_similitude(C.O1C)
z.M_2 = C.O0B:internal_similitude(C.O2B)
z.Q = C.O2B.north
z.P = C.O1C.north
z.O = C.O0B.south
z.W = C.O0B.north
L.O1Q = line(z.O_1, z.Q)
L.O2P = line(z.O_2, z.P)
z.O_4 = intersection(L.O1Q, L.O2P)
L.CO4 = line(z.C, z.O_4)
z.D = intersection(L.CO4, C.O0B)
L.CD = line(z.C, z.D)
L.PQ = line(z.P, z.Q)
L.CQ = line(z.C, z.Q)
z.O_5 = intersection(L.CD, L.PQ)
C.QC = circle(z.Q, z.C)
C.PA = circle(z.P, z.A)
z.P_0 = intersection(C.QC, C.O0B)
z.P_1 = intersection(C.QC, C.O1C)
_, z.P_2 = intersection(C.PA, C.O2B)
T.P = triangle(z.P_0, z.P_1, z.P_2)
z.O_3 = T.P.circumcenter
L.AQ = line(z.A, z.Q)
L.BP = line(z.B, z.P)
z.T = intersection(L.BP, L.AQ)
z.O_6 = L.CD.mid
C.DC = circle(z.D, z.C)
z.U, z.V = intersection(C.DC, C.O0B)
L.UV = line(z.U, z.V)
z.R, z.S = L.UV:projection(z.O_1, z.O_2)