Completed figures
Complete source
Kiepert’s theorem
% Figure for a Classical Theorem Note
% Article: From Ceva to Kiepert and Jacobi
% Figure: Kiepert's equal-angle configuration
% Site: Elementary Geometry
% Website: https://elementarygeometry.org/
% Drawing tool: tkz-euclide
% Output format: SVG
% Standard plate: 5:4
% Last verified: 2026-09-04
% Accent target: none
% Parameter: theta = 26 degrees
%
% Editable source for public/diagrams/kiepert-equal-angle-configuration.svg.
% Prepared for the web edition of this note.
% The production site serves the committed SVG and does not compile TeX.
\documentclass[tikz,border=8pt]{standalone}
\usepackage{tkz-euclide}
\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]
% Canonical ABC seed shared by the site's triangle figures, followed by a
% uniform similarity chosen to fill the standard plate without scaling text.
\tkzDefPoint(0,0){S0}
\tkzDefPoint(-0.5,4.2){A0}
\tkzDefPoint(-3,0){B0}
\tkzDefPoint(3,0){C0}
\tkzDefPointBy[homothety=center S0 ratio 0.8](A0)\tkzGetPoint{A}
\tkzDefPointBy[homothety=center S0 ratio 0.8](B0)\tkzGetPoint{B}
\tkzDefPointBy[homothety=center S0 ratio 0.8](C0)\tkzGetPoint{C}
\def\KiepertAngle{26}
% Each outer vertex is the exact intersection of the two rays making the
% same angle theta with its side. ABC is counterclockwise, so the indicated
% signed rotations send the rays to the exterior of the triangle.
\tkzDefPointBy[rotation=center B angle -\KiepertAngle](C)\tkzGetPoint{Bx}
\tkzDefPointBy[rotation=center C angle \KiepertAngle](B)\tkzGetPoint{Cx}
\tkzInterLL(B,Bx)(C,Cx)\tkzGetPoint{X}
\tkzDefPointBy[rotation=center C angle -\KiepertAngle](A)\tkzGetPoint{Cy}
\tkzDefPointBy[rotation=center A angle \KiepertAngle](C)\tkzGetPoint{Ay}
\tkzInterLL(C,Cy)(A,Ay)\tkzGetPoint{Y}
\tkzDefPointBy[rotation=center A angle -\KiepertAngle](B)\tkzGetPoint{Az}
\tkzDefPointBy[rotation=center B angle \KiepertAngle](A)\tkzGetPoint{Bz}
\tkzInterLL(A,Az)(B,Bz)\tkzGetPoint{Z}
% Two cevians define K; Kiepert's theorem places it on the third.
\tkzInterLL(A,X)(B,Y)\tkzGetPoint{K}
\tkzDrawSegments[eg support](B,X X,C C,Y Y,A A,Z Z,B)
\tkzDrawSegments[eg support dashed](A,X B,Y C,Z)
\tkzDrawSegments[eg main](A,B B,C C,A)
% The six equal base angles of the three similar outward triangles.
\tkzMarkAngle[eg mark,size=0.3](X,B,C)
\tkzMarkAngle[eg mark,size=0.3](B,C,X)
\tkzMarkAngle[eg mark,size=0.3](Y,C,A)
\tkzMarkAngle[eg mark,size=0.3](C,A,Y)
\tkzMarkAngle[eg mark,size=0.3](Z,A,B)
\tkzMarkAngle[eg mark,size=0.3](A,B,Z)
\tkzLabelAngle[pos=0.6](X,B,C){$\theta$}
\tkzLabelAngle[pos=0.6](Y,C,A){$\theta$}
\tkzLabelAngle[pos=0.6](Z,A,B){$\theta$}
\tkzDrawPoints[color=egNavy,fill=egNavy,size=1.6](A,B,C,X,Y,Z,K)
\tkzLabelPoints[above](A)
\tkzLabelPoints[below left](B)
\tkzLabelPoints[below right](C)
\tkzLabelPoints[below](X)
\tkzLabelPoints[above right](Y)
\tkzLabelPoints[above left](Z)
\tkzLabelPoints[below right,yshift=-4pt](K)
\egUseStandardPlate
\end{tikzpicture}
\end{document}Jacobi’s theorem
% Figure for a Classical Theorem Note
% Article: From Ceva to Kiepert and Jacobi
% Figure: Jacobi's three-angle configuration
% Site: Elementary Geometry
% Website: https://elementarygeometry.org/
% Drawing tool: tkz-euclide
% Output format: SVG
% Standard plate: 5:4
% Last verified: 2026-09-04
% Accent target: none
% Parameters: alpha = 22 degrees, beta = 27 degrees, gamma = 32 degrees
%
% Editable source for public/diagrams/jacobi-three-angle-configuration.svg.
% The production site serves the committed SVG and does not compile TeX.
\documentclass[tikz,border=8pt]{standalone}
\usepackage{tkz-euclide}
\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]
% A uniform similarity of the canonical ABC used by the site's triangle
% figures leaves room for the three external vertices and all six angles.
\tkzDefPoint(0,0){O}
\tkzDefPoint(-0.5,4.2){A0}
\tkzDefPoint(-3,0){B0}
\tkzDefPoint(3,0){C0}
\tkzDefPointBy[homothety=center O ratio 0.8](A0)\tkzGetPoint{A}
\tkzDefPointBy[homothety=center O ratio 0.8](B0)\tkzGetPoint{B}
\tkzDefPointBy[homothety=center O ratio 0.8](C0)\tkzGetPoint{C}
% ABC is counterclockwise. For each oriented side BC, CA, and AB, the
% first ray is rotated clockwise into the exterior and the ray from the
% other endpoint is rotated counterclockwise from the reversed side.
\tkzDefPointBy[rotation=center B angle -27](C)\tkzGetPoint{Bx}
\tkzDefPointBy[rotation=center C angle 32](B)\tkzGetPoint{Cx}
\tkzInterLL(B,Bx)(C,Cx)\tkzGetPoint{X}
\tkzDefPointBy[rotation=center C angle -32](A)\tkzGetPoint{Cy}
\tkzDefPointBy[rotation=center A angle 22](C)\tkzGetPoint{Ay}
\tkzInterLL(C,Cy)(A,Ay)\tkzGetPoint{Y}
\tkzDefPointBy[rotation=center A angle -22](B)\tkzGetPoint{Az}
\tkzDefPointBy[rotation=center B angle 27](A)\tkzGetPoint{Bz}
\tkzInterLL(A,Az)(B,Bz)\tkzGetPoint{Z}
\tkzInterLL(A,X)(B,Y)\tkzGetPoint{J}
\tkzDrawSegments[eg support](A,Z Z,B B,X X,C C,Y Y,A)
\tkzDrawSegments[eg support dashed](A,X B,Y C,Z)
\tkzDrawSegments[eg main](A,B B,C C,A)
\tkzMarkAngle[eg mark,size=0.28](Z,A,B)
\tkzMarkAngle[eg mark,size=0.28](C,A,Y)
\tkzMarkAngle[eg mark,size=0.28](A,B,Z)
\tkzMarkAngle[eg mark,size=0.28](X,B,C)
\tkzMarkAngle[eg mark,size=0.28](Y,C,A)
\tkzMarkAngle[eg mark,size=0.28](B,C,X)
\tkzLabelAngle[pos=0.5](Z,A,B){$\alpha$}
\tkzLabelAngle[pos=0.5](C,A,Y){$\alpha$}
\tkzLabelAngle[pos=0.5](A,B,Z){$\beta$}
\tkzLabelAngle[pos=0.5](X,B,C){$\beta$}
\tkzLabelAngle[pos=0.5](Y,C,A){$\gamma$}
\tkzLabelAngle[pos=0.5](B,C,X){$\gamma$}
\tkzDrawPoints[color=egNavy,fill=egNavy,size=1.6](A,B,C,X,Y,Z,J)
\tkzLabelPoints[above](A)
\tkzLabelPoints[below left](B)
\tkzLabelPoints[below right](C)
\tkzLabelPoints[below](X)
\tkzLabelPoints[above right](Y)
\tkzLabelPoints[above left](Z)
\tkzLabelPoints[above right, yshift=2pt](J)
\egUseStandardPlate
\end{tikzpicture}
\end{document}Kariya’s theorem
% Figure for a Classical Theorem Note
% Article: From Ceva to Kiepert and Jacobi
% Figure: Kariya's incircle-ray configuration
% Site: Elementary Geometry
% Website: https://elementarygeometry.org/
% Drawing tool: tkz-euclide
% Output format: SVG
% Standard plate: 5:4
% Last verified: 2026-09-06
% Accent target: none
% Parameter: IX = IY = IZ = 2r, where r is the inradius
%
% Editable source for public/diagrams/kariya-incircle-configuration.svg.
% Prepared for the web edition of this note.
% The production site serves the committed SVG and does not compile TeX.
\documentclass[tikz,border=8pt]{standalone}
\usepackage{tkz-euclide}
\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]
% The same canonical ABC seed and similarity used in the Kiepert and Jacobi
% figures leave room for the three points beyond the contact points.
\tkzDefPoint(0,0){S0}
\tkzDefPoint(-0.5,4.2){A0}
\tkzDefPoint(-3,0){B0}
\tkzDefPoint(3,0){C0}
\tkzDefPointBy[homothety=center S0 ratio 0.8](A0)\tkzGetPoint{A}
\tkzDefPointBy[homothety=center S0 ratio 0.8](B0)\tkzGetPoint{B}
\tkzDefPointBy[homothety=center S0 ratio 0.8](C0)\tkzGetPoint{C}
\tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
\tkzDefPointBy[projection=onto B--C](I)\tkzGetPoint{D}
\tkzDefPointBy[projection=onto C--A](I)\tkzGetPoint{E}
\tkzDefPointBy[projection=onto A--B](I)\tkzGetPoint{F}
% Because ID = IE = IF, the common homothety ratio gives IX = IY = IZ.
% Ratio 2 places D, E, F midway along IX, IY, IZ and keeps the outward
% configuration optically aligned with the preceding two figures.
\tkzDefPointBy[homothety=center I ratio 2](D)\tkzGetPoint{X}
\tkzDefPointBy[homothety=center I ratio 2](E)\tkzGetPoint{Y}
\tkzDefPointBy[homothety=center I ratio 2](F)\tkzGetPoint{Z}
% Two lines define the concurrence point; Kariya's theorem places it on CZ.
\tkzInterLL(A,X)(B,Y)\tkzGetPoint{P}
\tkzDrawCircle[eg support](I,D)
\tkzDrawSegments[eg support](I,X I,Y I,Z)
\tkzDrawSegments[eg support dashed](A,X B,Y C,Z)
\tkzDrawSegments[eg main](A,B B,C C,A)
\tkzMarkRightAngle[eg mark,size=0.18](I,D,C)
\tkzMarkRightAngle[eg mark,size=0.18](I,E,A)
\tkzMarkRightAngle[eg mark,size=0.18](I,F,A)
\tkzMarkSegments[color=egNavy,line width=0.50pt,mark=|,size=3pt,pos=0.35](I,X I,Y I,Z)
\tkzDrawPoints[color=egNavy,fill=egNavy,size=1.6](A,B,C,D,E,F,I,X,Y,Z,P)
\tkzLabelPoints[above](A)
\tkzLabelPoints[below left](B)
\tkzLabelPoints[below right](C)
\tkzLabelPoints[above right](D)
\tkzLabelPoints[below right](E)
\tkzLabelPoints[below left](F)
\tkzLabelPoints[right,yshift=-3pt](I)
\tkzLabelPoints[below](X)
\tkzLabelPoints[above right](Y)
\tkzLabelPoints[above left](Z)
\egUseStandardPlate
\end{tikzpicture}
\end{document}