Pappus

Example 1 Pappus chain with tkz-elements

In geometry, the Pappus chain is a ring of circles between two tangent circles investigated by Pappus of Alexandria in the 3rd century AD. Wikipedia



[PDF] [TEX]

% !TEX TS-program = lualatex
% Created by Alain Matthes on 2022-01-18.
% Copyright (c) 2022 __ AlterMundus __.
\documentclass{standalone} 
\usepackage[dvipsnames,svgnames]{xcolor}
\usepackage{tkz-euclide,tkz-elements}
\usetikzlibrary{math}
\begin{document}
\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{document}


Example 2 Pappus explanations with tkz-elements



[PDF] [TEX]

% !TEX TS-program = lualatex
% Created by Alain Matthes on 2022-01-18.
% Copyright (c) 2022 __ AlterMundus __.
\documentclass{article}
\usepackage{tkz-euclide,tkz-elements}
\begin{document}
  
  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$.


\begin{tkzelements}
xC,nc    = 10,2
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.B      = L.AC:gold_ratio ()
z.D      = point : new ( xD , 0)
z.c      = z.C : rotation (-math.pi/2,z.B)
z.a      = z.A : rotation (math.pi/2,z.C)
z.d      = z.D : rotation (-math.pi/2,z.C)
L.AC     = line:new (z.A,z.C)
z.mAC    = L.AC.mid
L.AB     = line:new (z.A,z.B)
z.mAB    = L.AB.mid
L.BC     = line:new (z.B,z.C)
z.mBC    = L.BC.mid
L.CD     = line:new (z.C,z.D)
z.mCD    = L.CD.mid
C.AC     = circle: new (z.A,z.C)
for i    = 1,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\xJ{\tkzUseLua{xJ}}
 \def\r{\tkzUseLua{r}}
 \def\nc{\tkzUseLua{nc}}

\begin{tikzpicture}[scale=.75,ultra thin]
  \tkzGetNodes
  \tkzDrawLines[add=0 and 2.25](C,c)
  \tkzDrawLines[add=0 and 1.5](D,d)
  \tkzDrawSemiCircle(mAC,C)
  \tkzDrawSemiCircle(mAB,B)
  \tkzDrawSemiCircle(mBC,C)
  \tkzDrawSemiCircle(mCD,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}
 {\tkzDrawCircle(J\i,H\i)
  \tkzDrawCircle(I\i,T\i')
  \tkzDrawPoints({J\i},{H\i},{H\i'},{S\i},{S\i'},{T\i},{T\i'})
  \tkzLabelPoint(J\i){$J_\i$}
  \tkzLabelPoint(S\i){$S_\i$}
  \tkzLabelPoint(T\i){$T_\i$}
  \tkzLabelPoint(H\i){$H_\i$}
  \tkzLabelPoint(S\i'){$S'_\i$}
  \tkzLabelPoint(T\i'){$T'_\i$}
  \tkzLabelPoint(H\i'){$H'_\i$}
   }
\end{tikzpicture}
\end{document}