Is there an algorithm to determine the largest equilateral triangle in a convex polygon?
-
1Related, but not quite the same: Maximum circle inside a non-convex polygon – NovaDenizen Jul 30 '14 at 21:35
-
1@NovaDenizen Thanks, so maybe make centroid of the triangle as far as possible from the vertices and inside the polygon. – i. m. soloveichik Jul 30 '14 at 22:00
3 Answers
Based on my other answers to more specific tasks, I offer the following solution that will work for any regular convex polygon:
- Draw the long diagonal AE, and draw circles at either end, with radius AE.
- Mark H, the point of intersection of the two circles, and draw intervals HA and HE.
- Draw a line parallel to HE through C, and mark I, the point of intersection with GA.
- Draw a line parallel to HA through C, and mark J, the point of intersection with EF. Draw interval IJ.
- Shade $\triangle$CEI, the required equilateral triangle.
I submit the following example of the construction for an irregular polygon ...
and make the observations:
the inscribed equilateral triangle of maximum area within an irregular polygon will have one side on the polygon's longest side.
the inscribed equilateral triangle of maximum area within a regular polygon will have as it's axis of symmetry the longest axis of symmetry of the polygon.
- 151
My initial assumption is wrong, and an 80-80-20 triangle provides the coutnerexample.
If the triangle is maximal then all 3 vertices have to be on edges of the polygon. So I'm thinking that it makes sense to approach the problem by iterating over all tuples of 3 edges (filtering out tuples where all 3 edges are the same), assuming one vertex is somewhere on each of these edges, and seeking solutions using each tuple of edges.
Say $x_1$, $x_2$, and $x_3$, are the vertices of an equilateral triangle.
If $x_i$ is constrained to be on a line segment between $p_i$ and $q_i$, then $x_i = p_i \alpha_i + (1 - \alpha_i)q_i$ where $0 \le \alpha_i \le 1$ is an interpolation variable that puts each $x_i$ at a proportion of $\alpha_i$ along each line segment.
Define $v_1$, $v_2$, and $v_3$ as the vector edges of this triangle ($v_1 = x_1 - x_2$, $v_2 = x_2 - x_3$, $v_3 = x_3 - x_1$). We have $v_1 \cdot v_1 = v_2 \cdot v_2 = v_3 \cdot v_3$ since the lengths of the sides must be equal. Substitute the definitions of $v_i$ into these equations, then substitute the interpolation equations for $x_i$ above into that.
Now the equations look like $P_1(\alpha_1, \alpha_2, \alpha_3) = P_2(\alpha_1, \alpha_2, \alpha_3) = P_3(\alpha_1, \alpha_2, \alpha_3)$ where each $P_i$ is a 2nd degree multinomial. All solutions of these multinomials obeying the $\alpha$ range requirement form equilateral triangles touching the edge of the polygon.
Any particular instance of these equations could have 0, 1, or 2 solutions, maybe some other number, and possibly an infinite range of solutions (like a regular (or sufficiently symmetrical) polygon with 3n edges). If you find a finite number of solutions you can just test them to see which results in the largest edge size. If you find an infinite range of solutions then finding a maximal triangle is more complicated.
~~
- 4,286
-
I'm not sure about your very first sentence. Couldn't only $2$ or even $1$ be on the edge? – Jack M Jul 31 '14 at 00:12
-
Remember that the polygon is convex, so if the triangle's corner points are within the polygon then all points along the edges must also be within the polygon. – NovaDenizen Jul 31 '14 at 00:13
-
If only 1 vertex is on the edge then you can certainly make the triangle bigger by pushing the other two out to an edge. – NovaDenizen Jul 31 '14 at 00:16
-
It's also an interesting problem to find the largest equilateral triangle with three touching vertices. – Dávid Horváth Apr 03 '18 at 05:40
Yes, there is an algorithm:
DePano, A., Yan Ke, and J. O’Rourke. "Finding largest inscribed equilateral triangles and squares." Proc. 25th Allerton Conf. Commun. Control Comput. 1987.
Unfortunately, I do not have easy access to my own article. :-/
(Image from this link.)
- 31,079
-
-
1@i.m.soloveichik: I can eventually, but not soon, as it requires a visit to physical archives & scanning. – Joseph O'Rourke Jul 31 '14 at 01:12
-
I've asked about a special case (probably trivial!) of this question here: Finding the largest equilateral triangle inside a given triangle – ShreevatsaR Aug 03 '17 at 16:02
-
1
-
On the second page of the paper, proof of Theorem 1 says “Let $e_a$, $e_b$ and $e_c$ be the three edges of $P$ that contain the corners $a$, $b$ and $c$ of $T$ respectively”. But from the second diagram on the linked question, it appears that not all 3 corners of the inscribed equilateral triangle $T$ need be on edges of $P$. Am I missing something? – ShreevatsaR Aug 04 '17 at 04:30






