A Proof of Lester's Circle Theorem

Michael Trott

J. Lester recently came up with a beautiful theorem in elementary geometry.

The  circumcenter, the nine-point center, and the first and second Fermat points of a triangle lie on a circle.

We will prove and illustrate this theorem.

Definition of circumcenter

The circumcenter of a triangle is the center of the circle through the vertices of the triangle (the circumcircle). The circumcenter can be constructed as the point of intersection of the perpendicular bisectors of the sides of the triangle.

Definition of nine-point center

The nine-point center is the midpoint of the circle through the midpoints of the sides of the triangle.

The other six points that lie on the nine-point circle are the feet of the altitudes of the triangle and the midpoints of the line segments from the orthocenter to the vertices of the triangle. (The orthocenter is the point of intersection of the altitudes.)
The nine-point circle is also called Feuerbach's circle.

Definition of the first and second Fermat points

Construct equilateral triangles on the sides of a triangle, going outwards. Each equilateral triangle has a vertex that was not a vertex of the original triangle. Draw lines from those vertices to the opposite vertices of the original triangle. These three lines meet in a single point, the first Fermat point.

The second Fermat point is constructed similarly, except that the equilateral triangles are constructed on the sides of the triangle going inwards.

The intersection of two lines

The function ℐ calculates the intersection of two lines. Each line is given in the form of a point and a direction.

\(ℐ[{point1_, dir1_}, {point2_, dir2_}]\  := 

      Module[{p, \ d}, 

        		{p\_x1, \ p\_y1} = point1; {p\_x2, \ p\_y2} = point2; 

        		{d\_x1, \ d\_y1} = dir1; {d\_x2, \ d\_y2} = dir2; 

        \ 	{p\_x1, \ p\_y1} + 
          \ {d\_x1\ , d\_y1} 
            \(d\_x2\ \((p\_y2 - p\_y1)\) + 
                d\_y2\ \((p\_x1 - p\_x2\ )\)\)\/\(\(d\_x2\) d\_y1 - 
                \(d\_x1\) d\_y2\)]\)

Perpendicular direction

The function 𝒩 gives the direction perpendicular to the given one.

𝒩[dir_] :=  {-1, 1} Reverse[dir];

Calculating the circumcenter

Let the three points of the original triangle be (Subscript[P, A]), (Subscript[P, B]),  and (Subscript[P, C]).

(Subscript[P, A]) =  {(Subscript[P, Ax]), (Subscript[P, Ay])}; (Subscript[P, B]) =  {(Subscript[P, Bx]), (Subscript[P, By])}; 
    (Subscript[P, C]) =  {(Subscript[P, Cx]), (Subscript[P, Cy])};

The circumcenter can now be calculated as the point of intersection of two of the  perpendicular bisectors of the sides of the triangle.

(Subscript[P, 1]) = 
      Together @ 
        ℐ[{(((Subscript[P, A]) + (Subscript[P, B]))/2),  
            𝒩[(Subscript[P, A]) - (Subscript[P, B])]}, 
           {(((Subscript[P, B]) + (Subscript[P, C]))/2),  𝒩[(Subscript[P, B]) - (Subscript[P, C])]}]

Here is a sketch of the construction for a sample triangle.

\(CircumcenterSketch[{a_, \ b_, \ c_}, opts___] := 

      Module[{r, 
          m = P\_1\  /. 

              Flatten[Thread\ /@
                  \ {{P\_Ax, P\_Ay} -> a, {P\_Bx, P\_By} -> \ 
                      b, {P\_Cx, P\_Cy} -> \ c}]}, 

        r = Sqrt[\(#.#&\)[m - a]]; 

        Show[Graphics[{
              
{GrayLevel[0], Thickness[0.005], Line[{a, b, c, a}]}, 
              
{RGBColor[1, 0, 0], Thickness[0.001], Circle[m, r]}, 
              
{GrayLevel[0.5], PointSize[0.02], Point[m]}, 
              
{RGBColor[1, 0, 0], Thickness[0.001], \ \ 
                Line[{\(a + b\)\/2, m}], Line[{\(a + c\)\/2, m}], 
                Line[{\(b + c\)\/2, m}]}}], 
\ PlotRange -> All, \ 
          AspectRatio -> Automatic, \ opts]]\)

CircumcenterSketch[{{0,0},{1,0},{3/4,1}}];

We can prove that the three lines really meet in one point by calculating the point of intersection of a different pair of lines.

\(\(P\&^\_1 = 
      Together\ @\ 
        ℐ[{\(P\_A + P\_B\)\/2, \ 
            𝒩[P\_A - P\_B]}, 
          \ {\(P\_C + P\_A\)\/2, \ 𝒩[P\_C - P\_A]}]; \)\)

\(P\&^\_1 - P\_1\  // \ Together\)

Calculating the nine-point center

The nine-point center can be calculated as the circumcenter of the triangle formed by the midpoints of the edges of the original triangle.

\(P\_2 = 
      Together\ @\ 
        ℐ[{\(\(P\_A + P\_B\)\/2 + \(P\_B + P\_C\)\/2\)\/2, \ 
            𝒩[\(P\_A + P\_B\)\/2 - \(P\_B + P\_C\)\/2]}, 

          \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\(\(P\_B + P\_C\)\/2 + \(P\_C + P\_A\)\/2\)\/2, \ 
            𝒩[\(P\_B + P\_C\)\/2 - \(P\_C + P\_A\)\/2]}]\)

Here is a sketch of the construction of the nine-point circle for a sample triangle.

\(FeuerbachCircleSketch[{a_, \ b_, \ c_}, opts___] := 

      Module[{r, 
          m = P\_2\  /. 

              Flatten[Thread\ /@
                  \ {{P\_Ax, P\_Ay} -> a, {P\_Bx, P\_By} -> 
                      b, {P\_Cx, P\_Cy} -> c}]}, 

        r = Sqrt[\(#.#&\)[m - \(a + b\)\/2]]; \ 

        Show[Graphics[{
              
{GrayLevel[0], Thickness[0.005], Line[{a, b, c, a}]}, 
              
{GrayLevel[0], Thickness[0.001], 
                Line[{\(a + b\)\/2, \(b + c\)\/2, \(c + a\)\/2, 
                    \(a + b\)\/2}]}, 
              
{RGBColor[0, 1, 0], Thickness[0.001], \ Circle[m, \ r]}, 
              
{GrayLevel[0.5], \ PointSize[0.02], \ Point[m]}, 
              
{RGBColor[0, 1, 0], Thickness[0.001], \ \ 
                Line[{\(a + b\)\/4 + c\/2, m}], \ 
                Line[{\(a + c\)\/4 + b\/2, m}], 
                Line[{\(b + c\)\/4 + a\/2, m}]}}], 
\ PlotRange -> All, 
          AspectRatio -> Automatic, opts]]\)

FeuerbachCircleSketch[{{0,0},{1,0},{3/4,1}}];

Again, by choosing a different pair of lines we get the same point of intersection.

\(\(P\&^\_2 = 
      Together\ @\ 
        ℐ[{\(\(P\_A + P\_B\)\/2 + \(P\_B + P\_C\)\/2\)\/2, \ 
            𝒩[\(P\_A + P\_B\)\/2 - \(P\_B + P\_C\)\/2]}, 

          \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {\(\(P\_C + P\_A\)\/2 + \(P\_A + P\_B\)\/2\)\/2, \ 
            𝒩[\(P\_C + P\_A\)\/2 - \(P\_A + P\_B\)\/2]}]; 
    \)\)

\(P\&^\_2 - P\_2 // Together\)

Calculating the first Fermat point

The first Fermat point is the point of intersection of the three lines given in the definition at the beginning. Only two of the three lines are needed for the calculation.

\(P\_3 = 
      ℐ[{P\_A, 
            \(P\_B + P\_C\)\/2\  - \ \@3\/2\ 𝒩[P\_C - P\_B] - 
              P\_A}, \ 		\ \ \ \ \ \ \ \ \ \ \ \ 

          			\ \ \ \ \ \ {P\_B, 
            \(P\_C + P\_A\)\/2\  - \ \@3\/2\ 𝒩[P\_A - P\_C] - 
              P\_B}]\  // Together\)

A sketch reveals that these three lines meet in one point.

\(FirstFermatPointSketch[{a_, b_, c_}, opts___] := 

      Module[{m = 
            P\_3 /. 

              Flatten[Thread\ /@
                  \ {{P\_Ax, P\_Ay} -> a, {P\_Bx, P\_By} -> 
                      b, {P\_Cx, P\_Cy} -> c}]}, 

        a\_1\  = \ \(b + c\)\/2 - \@3\/2\ 𝒩[c - b]; 

        b\_1\  = \ \(c + a\)\/2 - \@3\/2\ 𝒩[a - c]; 

        c\_1\  = \ \(a + b\)\/2 - \@3\/2\ 𝒩[b - a]; 

        Show[Graphics[{
              
{GrayLevel[0], Thickness[0.005], Line[{a, b, c, a}]}, 
              
{GrayLevel[0.5], Thickness[0.001], \ Line[{a, c\_1, b}], 
                Line[{b, a\_1, c}], Line[{c, b\_1, a}]}, 
              
{GrayLevel[0.5], PointSize[0.02], Point[m]}, 
              
{RGBColor[0, 0, 1], Thickness[0.001], \ \ Line[{a, a\_1}], 
                Line[{b, b\_1}], Line[{c, c\_1}]}}], 
\ 
          PlotRange -> All, AspectRatio -> Automatic, opts]]\)

FirstFermatPointSketch[{{0,0},{1,0},{3/4,1}}];

Taking a second pair from the three lines shows that all three lines meet in the same point.

\(\(\(P\&^\)\_3 = 
      ℐ[{P\_A, 
            \(P\_B + P\_C\)\/2\  - \ \@3\/2\ 𝒩[P\_C - P\_B] - 
              P\_A}, \ 		\ \ \ \ \ \ \ \ \ \ 

          			\ \ \ \ \ \ {P\_C, 
            \(P\_A + P\_B\)\/2\  - \ \@3\/2\ 𝒩[P\_B - P\_A] - 
              P\_C}]\  // Together; \)\)

\(\(P\&^\)\_3 - P\_3 // Together\)

Calculating the second Fermat point

The construction of the second Fermat point is very similar to the that of the first Fermat point.

\(P\_4 = 
      ℐ[{P\_A, 
            \(P\_B + P\_C\)\/2\  + \ \@3\/2\ 𝒩[P\_C - P\_B] - 
              P\_A}, \ 		\ \ \ \ \ \ \ \ \ \ 

          			\ \ \ \ \ \ {P\_B, 
            \(P\_C + P\_A\)\/2\  + \ \@3\/2\ 𝒩[P\_A - P\_C] - 
              P\_B}]\  // Together\)

Here is a sketch of the construction of the second Fermat point.

\(SecondFermatPointSketch[{a_, b_, c_}, opts___] := 

      Module[{m = 
            P\_4 /. 

              Flatten[Thread\ /@
                  \ {{P\_Ax, P\_Ay} -> a, {P\_Bx, P\_By} -> 
                      b, {P\_Cx, P\_Cy} -> c}]}, 

        a\_1\  = \ \(b + c\)\/2 + \@3\/2\ 𝒩[c - b]; 

        b\_1\  = \ \(c + a\)\/2 + \@3\/2\ 𝒩[a - c]; 

        c\_1\  = \ \(a + b\)\/2 + \@3\/2\ 𝒩[b - a]; 

        Show[Graphics[{
              
{GrayLevel[0], Thickness[0.005], Line[{a, b, c, a}]}, 
              
{GrayLevel[0.5], Thickness[0.001], \ Line[{a, c\_1, b}], 
                Line[{b, a\_1, c}], Line[{c, b\_1, a}]}, 
              
{GrayLevel[0.5], \ PointSize[0.02], \ Point[m]}, 
              
{RGBColor[1, 1, 0], Thickness[0.001], \ \ Line[{a, a\_1, m}], 
                \ Line[{b, b\_1, m}], Line[{c, c\_1, m}]}}], 
\ 
          PlotRange\  -> \ All, AspectRatio -> Automatic, opts]]\)

SecondFermatPointSketch[{{0,0},{1,0},{3/4,1}}];

Yet again, here is a proof that all three lines meet in one point.

\(\(P\&^\_4 = 
      ℐ[{P\_A, 
            \(P\_B + P\_C\)\/2\  + \ \@3\/2\ 𝒩[P\_C - P\_B] - 
              P\_A}, \ 		\ \ \ \ \ \ \ \ \ \ 			\ \ \ \ \ \ {P\_C, 
            \(P\_A + P\_B\)\/2\  + \ \@3\/2\ 𝒩[P\_B - P\_A] - 
              P\_C}]\  // Together; \)\)

\(P\&^\_4 - P\_4 // Together\)

A traditional proof of the theorem

We calculate the center of the Lester circle explicitly using three of the four points.

\(\(M\_\(1\ \) = 
      ℐ[{\(P\_1 + P\_2\)\/2, 
            𝒩[P\_1 - P\_2]}, {\(P\_2 + P\_3\)\/2, 
            𝒩[P\_2 - P\_3]}] /. 

        \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {P\_Ax -> 0, 
          P\_Ay -> 0, P\_By -> 0}; \)\)

Choosing another triple gives the same center, proving the theorem.

\(\(\(M\&^\)\_\(1\ \) = 
      ℐ[{\(P\_1 + P\_2\)\/2, 
            𝒩[P\_1 - P\_2]}, {\(P\_2 + P\_4\)\/2, 
            𝒩[P\_2 - P\_4]}] /. 

        \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ {P\_Ax -> 0, 
          P\_Ay -> 0, P\_By -> 0}; \)\)

\(M\&^\_\(1\ \) - M\_\(1\ \) // Together\)

An algebraic proof of the theorem

Let {(Subscript[X, 0]), (Subscript[Y, 0])} and R be the center and radius of the Lester circle. 
If the four points (Subscript[P, 1]), (Subscript[P, 2]), (Subscript[P, 3]), (Subscript[P, 4]) actually lie on one circle, they will satisfy the equations ({(Subscript[X, 0]), (Subscript[Y, 0])} - (Subscript[P, i])).({{(Subscript[X, 0]), (Subscript[Y, 0])} - (Subscript[P, i]))==(R^2) simultaneously.

Without loss of generality we assume the vertex (Subscript[P, A]) of the triangle to be at the origin and the point (Subscript[P, B]) to be on the x-axis. This makes the expressions to be manipulated much smaller and the calculations much faster.

\(ℰ = 
      \(Numerator[Together[#]]&\)\ /@\ 
        \((
	{\(({X\_0, Y\_0} - P\_1)\).\(({X\_0, Y\_0} - P\_1)\) - R\^2, 

              \ \ 	\(({X\_0, Y\_0} - P\_2)\).\(({X\_0, Y\_0} - P\_2)\) - 
                R\^2, 
\ \ 	
              \(({X\_0, Y\_0} - P\_3)\).\(({X\_0, Y\_0} - P\_3)\) - R\^2, 

              \ \ 	\(({X\_0, Y\_0} - P\_4)\).\(({X\_0, Y\_0} - P\_4)\) - 
                R\^2} /. {P\_Ax -> 0, P\_Ay -> 0, P\_By -> 0})
          \)\)

For the equations to have a simultaneous solution, the ideal generated by ℰ must not be trivial. This property can be checked by calculating a GroebnerBasis for ℰ.

\({1} =!= 
      GroebnerBasis[ℰ, \ {X\_0, Y\_0, R}, 

        	\ \ \ \ \ \ \ \ \ \ 	
        MonomialOrder\  -> \ DegreeLexicographic, 

        \ \ \ \ \ \ \ \ \ \ \ 	
        CoefficientDomain\  -> \ RationalFunctions]\)

The last test actually only proves that the four points lie on a circle in complex space, where the coordinates of points might be complex numbers. To prove that the theorem holds in real space we have to consider the corresponding radical ideal. This can be done by modifying the last expression of ℰ.

\({1} === 
      GroebnerBasis[
        Append[Take[ℰ, 3], 1 - C\ Last[ℰ]], 
        \ {C, X\_0, Y\_0, R}, 
	\ \ \ \ \ \ \ \ \ \ 	
        MonomialOrder\  -> \ DegreeLexicographic, 

        \ \ \ \ \ \ \ \ \ \ \ 	
        CoefficientDomain\  -> \ RationalFunctions]\)

A final sketch and animation

Here a sketch of the four points (Subscript[P, 1]), (Subscript[P, 2]), (Subscript[P, 3]), (Subscript[P, 4]) together with the circle they form.

\(\(LesterCircleSketch[{a_, \ b_, \ c_}, 

        		\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ singleSketches_:  True, \ opts___] := 

      Module[{F, r}, 

        Show[GraphicsArray[
            F = {
CircumcenterSketch[{a, b, c}, 
                  DisplayFunction -> Identity], 

                FeuerbachCircleSketch[{a, b, c}, 
                  DisplayFunction -> Identity], 

                FirstFermatPointSketch[{a, b, c}, 
                  DisplayFunction -> Identity], 

                SecondFermatPointSketch[{a, b, c}, 
                  DisplayFunction -> Identity]}, 
				
            DisplayFunction -> 
              If[singleSketches, $DisplayFunction, Identity]]]; 

        Show[{F, 
            Graphics[
              
{{m\_\(1  x\), m\_\(1  y\)}, {m\_\(2  x\), m\_\(2  y\)}, {
                    m\_\(3  x\), m\_\(3  y\)}}\  = 
                \ \ {P\_1, P\_2, P\_3}\  /. 
\ \ \ \ 
                  N[\ Flatten[
                      Thread\ /@
                        \ {{P\_Ax, P\_Ay} -> a, {P\_Bx, P\_By} -> 
                            b, {P\_Cx, P\_Cy} -> c}]]; 
              
{x\_0, y\_0}\ 
                 = {m\_\(3  x\)\%2\ \((m\_y - m\_\(2  y\))\) + 
                      \((m\_x\%2 + 
                            \((m\_y - m\_\(2  y\))\)\ 
                              \((m\_y - m\_\(3  y\))\))\)\ 
                        \((m\_\(2  y\) - m\_\(3  y\))\) + 
                      m\_\(2  x\)\%2\ \((\(-m\_y\) + m\_\(3  y\))\), 
                    \((\(-m\_\(2  x\)\%2\)\ m\_\(3  x\) + 
                        m\_x\%2\ \((\(-m\_\(2  x\)\) + m\_\(3  x\))\) + 
                        m\_\(3  x\)\ \((m\_y\%2 - m\_\(2  y\)\%2)\) + 
                        m\_x\ \((
                            m\_\(2  x\)\%2 - m\_\(3  x\)\%2 + 
                              m\_\(2  y\)\%2 - m\_\(3  y\)\%2)\) + 
                        m\_\(2  x\)\ 
                          \((m\_\(3  x\)\%2 - m\_y\%2 + m\_\(3  y\)\%2)\))\)}/
                  \ \ \((2\ 
                      \((m\_\(3  x\)\ \((m\_y - m\_\(2  y\))\) + 
                          m\_x\ \((m\_\(2  y\) - m\_\(3  y\))\) + 
                          m\_\(2  x\)\ \((\(-m\_y\) + m\_\(3  y\))\))\))\); 

              r\  = \ Sqrt[
                  \(#.#&\)[{x\_0, y\_0} - {m\_\(1  x\), m\_\(1  y\)}]]; 
              \ \ {Thickness[0.001], Hue[0.78], Circle[{x\_0, y\_0}\ , r]}]
              \ }, opts, 
DisplayFunction\  -> $DisplayFunction]]\ \ 
    \)\)

LesterCircleSketch[{{0,0},{1,0},{3/4,1}}];

Finally, let us make an animation of the Lester circle as we vary one vertex of the triangle.

\(Do[LesterCircleSketch[{{0, 0}, \ {1, 0}, \ {x, 0.77}}, \ 			\ \ \ \ 
        
		\ \ False, Frame -> True, \ 
        PlotRange -> {{\(-0.5\), 2}, {\(-0.5\), 1.5}}], 

      \ \ 	\ \ {x, 0.52, .72, 0.01}]\)

References

C. Kimberling, Mathematics Teacher 89, 1, 26 (1996).

Initialization

Off[General::"spell1"];