Parabola, tangents and circumcircle​
​by Shenghui Yang
Just saw this interesting geometric property on Twitter this morning. It is quite fascinating that it combines some most important components in planar Euclidean geometry and the most critical point, focus, in conic section.

Analysis

Without loss of generality, we use the standard form of parabola (with parameter
p
to change its shape) and move the three tangent lines to create arbitrary triangles. It is equivalent to have a fixed triangle first and find external parabola. The latter is tedious not only because it needs general form of conic section, but also from the fact that ex-parabola is not unique. In contrast, excircle is unique for a given triangle and a specified vertex.
I found
[◼]
TangentLine
in WFR (by in-house Wolfram Alpha math team) very helpful. It greatly reduce the amount of code to analyze this problem and visualization
In[]:=
Off[ResourceFunction::usermessage]
The first example in the document is good enough for use to proceed. For any parametric point on the curve
t,2p
2
t

, the passing tangent line is:
In[]:=
parabola=
[◼]
TangentLine
[y==2*p*x^2,{x,t1},y,"SlopeInterceptEquation"]
Out[]=
y-2p
2
t1
+4pt1x
We need three tangent lines to find three intersection points:
eqns=
[◼]
TangentLine
[y==2*p*x^2,{x,#},y,"SlopeInterceptEquation"]&/@{t1,t2,t3}
Out[]=
{y-2p
2
t1
+4pt1x,y-2p
2
t2
+4pt2x,y-2p
2
t3
+4pt3x}
Solve three pairs of equation
In[]:=
Flatten[{x,y}/.Solve[eqns[[#]],{x,y}]&/@{{1,2},{2,3},{3,1}},1]
Out[]=

t1+t2
2
,2pt1t2,
t2+t3
2
,2pt2t3,
t1+t3
2
,2pt1t3
Find circumcircle from the triangle determined by three points above
In[]:=
circle=TriangleConstruct[%,"Circumcircle"]
Out[]=
Circle
1
4
(t1+t2+t3-16
2
p
t1t2t3),
1
16p
+pt2t3+pt1(t2+t3),
1
16
(1+16
2
p
2
t1
)(1+16
2
p
2
t2
)(1+16
2
p
2
t3
)
2
p

If the focus
0,
1
8p

is on the circle, its distance from the circumcenter is:
In[]:=
FullSimplify[EuclideanDistance[circle[[1]],{0,1/(8*p)}],Assumptions{t1,t2,t3,p}∈Reals]
Out[]=
1
16
(1+16
2
p
2
t1
)(1+16
2
p
2
t2
)(1+16
2
p
2
t3
)
2
p
This coincides with the circumradius we have from the TriangleConstruct function. Thus we prove the statement on Twitter.

Animation

Because we have all equations for the parabola and its tangents, it is easy to draw everything inside ContourPlot function. Use Epilog option to add triangle and its circumcircle:
In[]:=
ManipulateContourPlot{​​y==2*p*x^2,​​y-2p
2
t1
+4pt1x,​​y-2p
2
t2
+4pt2x,​​y-2p
2
t3
+4pt3x​​},{x,-2,2},{y,-2,2},Epilog​​
,Triangle
t1+t2
2
,2pt1t2,
t2+t3
2
,2pt2t3,
t1+t3
2
,2pt1t3,​​Circle
1
4
(t1+t2+t3-16
2
p
t1t2t3),
1
16p
+pt2t3+pt1(t2+t3),
1
16
(1+16
2
p
2
t1
)(1+16
2
p
2
t2
)(1+16
2
p
2
t3
)
2
p
,​​{PointSize[0.02],Point[{0,1/(8*p)}]}​​,{p,1/2,1},{{t1,-1},-2,0},{{t2,0},-1,1},{{t3,1},0,1.5},ControlPlacementTop
Out[]=
​
p
t1
t2
t3