"Given any point on a ellipse, is it always possible to inscribe an equilateral triangle, with a vertex coincident with that point, in the ellipse?"

I thought I could use analytical geometry, but when I first come up with a line-long equation I gave it up. Do you think there are faster, and more elegant ways to solve this problem?


4 Answers 4


@ajotatxe This is a neat approach but your method of picking the points $A_i,A_j$ won't always produce an equilateral triangle; consider for example an oblong ellipse resembling a line, and a point $P$ in the middle of this ellipse. Here is an attempt at improvement:

Fix a point $P$ on an ellipse $E$, and point $T≠P$ on the tangent line of $E$ at $P$. For each $0≤\theta≤120$ draw two lines $A_\theta P$ and $B_\theta P$ in a clockwise fashion such that $\angle A_\theta PT=\theta°$ and $\angle A_\theta PB_\theta =60°$. Consider the points $I_\theta ,J_\theta$ where $AP$ and $BP$, respectively, intersect $E$ ($I_\theta=P$ iff $\theta =0$, and similarly $J_\theta = 0$ iff $\theta = 120$), and define $f(\theta)=I_\theta P-J_\theta P$.

Clearly $f$ is continuous on $[0,120]$ and $f(0)<0$, $f(120)>0$, so that $f(\phi)=0$ for some $0<\phi <120$. Then $I_\phi P=J_\phi P$ and $\angle I_\phi PJ_\phi =60°$so that $\triangle I_\phi J_\phi P$ is equilateral. Q.E.D.

It seems that this method works for any convex continuous shape, not just ellipses.


I have an idea, but a rigorous proof based on this idea may be a bit tough. Nevertheless, perhaps you find it useful.

For each $r>0$, consider the circle centered on the given point $P$ of the ellipse with radius $r$.

If the circle intersects the ellipse two points, they will be at a distance $d(r)$. We define $f(r)=d(r)/r$. If the circle intersects the ellipse more than two points $A_1,\ldots\,A_n$ take $A_i, A_j$ such that the arc $A_iPA_j$ doesn't cointain any other $A_k$.

If the circle is tangent to the ellipse (being the ellipse within the circle), define $f(r)=0$.

If the circle and the ellipse don't share any points, $f$ remains undefined.

It seems that for small enough $r$, the triangle defined by the given point and the intersection has an obtuse angle, so $f(r)>1$. It also seems that $f$ is continuous where we have defined it. So there will be some $r$ such that $f(r)=1$.

  • $\begingroup$ I think you we can simply say: for small $r$, $f(r) >1$, for big $r$, $f(r) < 1$, so since $f(r)$ is continuous, there must be at least one $x | f(x) =1 \Rightarrow $ there is at least one equilateral triangle $\endgroup$
    – sirfoga
    Apr 26, 2014 at 10:15

You have your point P on the ellipse. Imagine a point Q infinitesimally close to P, also on the ellipse, and a point R towards the center of the ellipse that forms an equilateral triangle with P and Q. R is inside the ellipse.

Now slide Q around the ellipse to a point on the ellipse that is farthest from P, maintaining PQR as an equilateral triangle. The distance between P and R will be the same as P and Q, so R must be either outside the ellipse or on the edge. If R is on the edge then PQR is your inscribed equilateral triangle. If R is outside the ellipse then at some point on Q's slide around the ellipse R moved from inside the ellipse to outside it, and then PQR was an equilateral triangle inscribed in the ellipse.


I did a numerical simulation with Mathematica, and I found that the larger the eccentricity of the ellipse, the more equilateral triangles can be identified for a point. When the eccentricity is small, the triangle is unique. Suppose the equation of the ellipse is $\frac{x^2}{a^2}+\frac{y^2}{b^2}=1$. Here is my animation simulation:

When a=4,b=1/3:

enter image description here

When a=4,b=3:

enter image description here

This is my code:

Manipulate[Block[{a = 4, b = 1/3}, {x1, y1} = {a Cos[t], b Sin[t]};
  sols = 
   Union[NSolve[{x1^2/a^2 + y1^2/b^2 == 1, x2^2/a^2 + y2^2/b^2 == 1, 
      x3^2/a^2 + y3^2/b^2 == 
       1, (x1 - x2)^2 + (y1 - y2)^2 == (x1 - x3)^2 + (y1 - 
           y3)^2 == (x2 - x3)^2 + (y2 - y3)^2 > $MachineEpsilon}, {x2,
       y2, x3, y3}, Reals]];
   Show[ContourPlot[x^2/a^2 + y^2/b^2 == 1, {x, -a, a}, {y, -a, a}, 
     PerformanceGoal -> "Quality"], 
    Graphics[{PointSize[0.02], Red, Point[{x1, y1}], Black, 
      Riffle[Triangle[{{x1, y1}, {x2, y2}, {x3, y3}}] /. sols, 
       ColorData[96, "ColorList"]]}]], 
   Column["Length of side:" <> ToString[#] & /@ 
     Union[EuclideanDistance[{x2, y2}, {x3, y3}] /. sols, 
      SameTest -> (Abs[#1 - #2] < 10^11*$MachineEpsilon &)]], 
   Right]], {t, $MachineEpsilon, 2 Pi}, 
 Bookmarks -> {"r1" :> (t = 0.001), "r2" :> (t = 2 Pi)}]

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .