% Figure for Crux Mathematicorum Problem 4941
% Site: Elementary Geometry
% Website: https://elementarygeometry.org/
% Drawing tool: tkz-euclide
% Output format: SVG
% Last verified: 2026-08-30
%
% Original configuration.
% Editable source for public/diagrams/crux-4941-three-circles.svg.
% The exact 3-4-5 triangle keeps the three auxiliary circles and their
% second common point in a compact, verifiable configuration.
% Accent target: J^{\ast} point
% Scale is 1.0; the 0.7 similarity factor is absorbed into the seed coordinates.
% The web build does not compile TeX; export and review the SVG separately.
\documentclass[tikz,border=8pt]{standalone}
\usepackage{tkz-euclide}
\usepackage{amsmath,amssymb}
\usetikzlibrary{intersections,calc,angles,quotes}
\definecolor{egNavy}{HTML}{17243D}
\definecolor{egGray}{HTML}{777671}
\definecolor{egRust}{HTML}{92513F}
\newcommand{\egUseStandardPlateAt}[1]{%
\pgfresetboundingbox
\path[use as bounding box]
([xshift=-102pt,yshift=-80pt]#1)
rectangle
([xshift=102pt,yshift=80pt]#1);%
}
\newcommand{\egUseStandardPlate}{%
\coordinate (egPlateCenter) at (current bounding box.center);%
\egUseStandardPlateAt{egPlateCenter}%
}
\tikzset{
eg figure/.style={line cap=round,line join=round,every node/.append style={font=\normalsize,text=egNavy}},
eg main/.style={draw=egNavy,line width=0.75pt},
eg support/.style={draw=egGray,line width=0.52pt},
eg support dashed/.style={draw=egGray,line width=0.52pt,dash pattern=on 3pt off 3pt},
eg accent/.style={draw=egRust,line width=0.75pt},
eg mark/.style={draw=egNavy,line width=0.50pt}
}
\begin{document}
\begin{tikzpicture}[eg figure,scale=1.0]
\begin{scope}
\clip (-3.6,-1.6) rectangle (2.9,3.3);
% A uniform 0.7 image of the exact 3-4-5 triangle is the only coordinate seed.
\tkzDefPoint(-0.7,2.1){A}
\tkzDefPoint(-0.7,0){B}
\tkzDefPoint(2.1,0){C}
% Triangle centers and contact points.
\tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
\tkzDefTriangleCenter[circum](A,B,C)\tkzGetPoint{O}
\tkzDefPointBy[projection=onto B--C](I)\tkzGetPoint{D}
\tkzDefPointBy[projection=onto C--A](I)\tkzGetPoint{E}
\tkzDefPointBy[projection=onto A--B](I)\tkzGetPoint{F}
% Contact-triangle intersections and their circumcenter.
\tkzInterLL(I,A)(E,F)\tkzGetPoint{P}
\tkzInterLL(I,B)(F,D)\tkzGetPoint{Q}
\tkzInterLL(I,C)(D,E)\tkzGetPoint{R}
\tkzDefTriangleCenter[circum](P,Q,R)\tkzGetPoint{J}
% J* is the inverse of J in the incircle.
\tkzDefPointBy[inversion=center I through D](J)\tkzGetPoint{Jstar}
% Each auxiliary circle passes through its vertex and is tangent at I
% to the corresponding radius ID, IE, or IF.
\tkzDefLine[mediator](A,I)\tkzGetPoints{medAone}{medAtwo}
\tkzDefLine[orthogonal=through I](I,D)\tkzGetPoint{perpA}
\tkzInterLL(medAone,medAtwo)(I,perpA)\tkzGetPoint{centerA}
\tkzDefLine[mediator](B,I)\tkzGetPoints{medBone}{medBtwo}
\tkzDefLine[orthogonal=through I](I,E)\tkzGetPoint{perpB}
\tkzInterLL(medBone,medBtwo)(I,perpB)\tkzGetPoint{centerB}
\tkzDefLine[mediator](C,I)\tkzGetPoints{medCone}{medCtwo}
\tkzDefLine[orthogonal=through I](I,F)\tkzGetPoint{perpC}
\tkzInterLL(medCone,medCtwo)(I,perpC)\tkzGetPoint{centerC}
\tkzDrawSegment[eg main](Jstar,O)
\tkzDrawSegments[eg support](I,D I,E I,F)
\tkzDrawCircle[eg support](O,A)
\tkzDrawCircle[eg main](I,D)
\tkzDrawCircle[eg main](centerA,I)
\tkzDrawCircle[eg main](centerB,I)
\tkzDrawCircle[eg main](centerC,I)
\tkzDrawPolygon[eg main](A,B,C)
\tkzDrawPoints[color=egNavy,fill=egNavy,size=1.6](A,B,C,D,E,F,I,O)
\tkzDrawPoint[color=egRust,fill=egRust,size=1.6](Jstar)
\tkzLabelPoint[above,yshift=2pt](A){$A$}
\tkzLabelPoint[below](B){$B$}
\tkzLabelPoint[right](C){$C$}
\tkzLabelPoint[below](D){$D$}
\tkzLabelPoint[above right](E){$E$}
\tkzLabelPoint[above left,xshift=2pt](F){$F$}
\tkzLabelPoint[below right](I){$I$}
\tkzLabelPoint[above right](O){$O$}
\tkzLabelPoint[below left,xshift=-2pt](Jstar){$J^{\ast}$}
\node at (2.5,1.9) {$\Gamma$};
\node at (0.4,0.4) {$\gamma$};
\node at (-2.8,1.7) {$\Gamma_A$};
\node at (-1.8,-0.9) {$\Gamma_B$};
\node at (2.2,-0.5) {$\Gamma_C$};
\end{scope}
\egUseStandardPlate
\end{tikzpicture}
\end{document}