Weighted Fermat Point (rotation + scaling lemma)
To minimize , factor out , then apply a spiral similarity at — rotate by and scale by — sending . This converts into the polyline . The rotation angle is the angle opposite in the "weight triangle" .
Weighted Fermat point — the Fermat-point generalization when each of the three distances carries its own weight. Spiral similarity stitches the three legs into one polyline; the triangle inequality closes it out.
Universal form
Notation: attached to , to , to (matching the rotation construction below).
Classical model
- Moving point : anywhere in the plane
- Fixed points : three fixed points with positive weights respectively
- Key constraint: the "weight triangle" must satisfy the triangle inequality (so the rotation angle exists); otherwise the optimal falls at some vertex (boundary solution)
- Equal-weight special case: degenerates to Fermat point

When to use
- Minimizing (three legs, each with its own weight)
- The equal-weight special case degenerates to Fermat point (the classical Fermat-Torricelli point)
- Physics / engineering setting: three cities with different demands need a shared transfer hub; the "general delivers water" problem upgraded with speed coefficients
The core move
Apply a spiral similarity (rotation + scaling) at the vertex with weight — that is, at . The three legs splice into a single polyline, and the shortest polyline is a straight segment — which gives the minimum.
The rotation angle equals the angle opposite in the "weight triangle" with side lengths .

Construction
Let be the three fixed points with corresponding weights (on ), (on ), (on ). First factor out of and normalize , setting (so that below the polyline length equals directly, no longer carries a coefficient, and , are absorbed cleanly by the spiral similarity).

-
Compute the rotation angle: (equivalently, , which is the law of cosines). The choice of is not arbitrary — see the "Why it works" section: to make , apply the law of cosines to and solve.

-
Apply the spiral similarity (centered at , easier to see as two steps):
- 2a Rotate by : , . Properties: , , (rotations preserve lengths).
- 2b Scale by : , . Properties: , (uniform scaling).
Together, and are the spiral-similarity images (with , ).

-
The three legs splice exactly into the polyline :
- (with after normalization, this leg is just ).
- (law of cosines in : ).
- (scaling factor ).
So the polyline length exactly.
-
Straighten: the shortest polyline equals , with equality when are collinear.
-
Locate : is the intersection of line with the relevant arc / line (worked out from the collinearity condition).
Closed-form minimum
Since is determined directly by the weights , the minimum can also be computed without finding — combine the law of cosines on with the law of cosines in the weight triangle and simplify, yielding a closed form involving only "weights + ":
Notation: (standard opposite-side notation — opposite vertex , etc.); is the area of ; is the area of the weight triangle (Heron: ). Each of the three weight coefficients has the form "sum of squares of the other two weights, minus the square of this side's weight" — exactly in the weight triangle.
Sanity check (Fermat point, ): all three weight coefficients are , , and the formula gives
i.e. the classical closed form for the Fermat-Torricelli minimum.
Applicability: the weight triangle must satisfy the triangle inequality (so exists), and the optimal must lie inside ; otherwise the minimum is attained at a vertex (boundary solution), and you must compare the three vertex values of directly.
Why it works
Rotations preserve angles and scalings preserve ratios; together, a spiral similarity sends to so that , and it converts the leg " to " into the leg " to " — whose length is exactly by our choice of (via the law of cosines). The three legs with different weights are thereby translated into three consecutive segments of one polyline ( stays in place because ); the rest is just "polyline straight segment".

Recap of the law of cosines: in any with side lengths , the angle opposite side satisfies
Where the Step 1 formula comes from: plug the three sides of the weight triangle — after normalization with — into the law of cosines. The angle opposite is , so
Step 3's is the same idea: in , the sides and emanate from with included angle . Law of cosines again:
So — and that equality is exactly what was chosen to enforce.
Geometric intuition: "In the weight triangle , the angle opposite is the rotation angle." (the classical Fermat point) (the isoceles right-angled weight triangle) (the right angle is opposite the hypotenuse)

Worked examples
- The classical Fermat point: , rotate by to build an equilateral triangle — the optimal sees all three sides at .
- Weights : minimize . After factoring out , the spiral similarity sends to with , ; the problem reduces to .
- Weights : rotate by — the weight triangle is the right triangle.
Variants / generalizations
- Special-angle weight triangles: when corresponds to special angles such as or , the rotation angle is immediate and the polyline construction is easy.
- Degenerate case: if the weight-triangle inequality fails, the minimum is attained at one of the vertices (a "boundary solution"), and the spiral-similarity trick no longer applies.
- Dimension-reduction: for the single-leg weighted variant, see Hu-Bu-Gui (Different-Speed Minimum, sin-Angle Method); for the two-leg equal-weight variant, see General Drinking Horse (axial-symmetry shortest path).
- Naming note: this lemma is known in Chinese olympiad circles as the "weighted Fermat-point rotation method"; in the English literature it appears as the weighted rotation lemma or under names like Tellier's construction / spiral similarity. It is not a named theorem but the standard lemma for the weighted Fermat-Torricelli problem — re-derive it on the fly with the law of cosines rather than citing it.
