calculating the Fermat point of a triangle

5.7k Views Asked by At

Is there any algorithm by which one can calculate the fermat's point for a set of 3 points in a triangle? a fermat's point is such a point that the sum of distances of the vertices of the triangle to this point is minimum. I came across several mathematical proofs regarding this ,but can't get an algo for actually calculating it programmatically for given 3 points. Can someone please help on this? Thanks.

2

There are 2 best solutions below

3
On BEST ANSWER

If the angle at A is 120 degrees or more, $a^2 \geq b^2 + bc + c^2$ and the Fermat point is at A. Check this for B and C, as well.

When all angles are less than 120 degrees, the Fermat point is number 13 in the list of triangle centers here:

http://faculty.evansville.edu/ck6/encyclopedia/ETC.html

where you can find barycentric coordinates of that point as a function of the sides of the triangle. Given barycentric coordinates for any point its Cartesian coordinates can be calculated from the Cartesian coordinates of the vertices of the triangle.

3
On

Here after 9 years. I had the same question but never found an answer on the web so I decided to compute the Fermat-Torricelli point barycentric coordinates myself.

Let $A,B,C$ be the angles of the triangle and $\alpha=A+\frac{\pi}{3},\beta=B+\frac{\pi}{3},\gamma=C+\frac{\pi}{3}$. The formula is:

$\overrightarrow{PT}=(\sin\alpha \sin\beta \sin C+\sin\alpha \sin\gamma \sin B+\sin\beta \sin\gamma \sin A)^{-1}(\sin\beta \sin\gamma \sin A\cdot\overrightarrow{PA}+\sin\alpha \sin\gamma \sin B \cdot \overrightarrow{PB} +\sin\alpha \sin\beta \sin C \cdot \overrightarrow{PC})$

So the ratio of the barycentric coordinates is : $(\sin\beta \sin\gamma \sin A:\sin\alpha \sin\gamma \sin B:\sin\alpha \sin\beta \sin C)$.

I hope that you see the symmetry.

I made a GeoGebra program that computes the point using the formula and, to check its validity, I've added the lines that intersect to the point. The notations are a bit different than here.

I hope that for those who are searching it now, this will be useful.