Heron’s formula is one of geometry’s most elegant results: given only the three side lengths of a triangle — no angles, no heights — you can calculate the area exactly. The calculator above implements the full formula, displays a labelled diagram, and shows the step-by-step working so you can follow every calculation.
The formula
Label the three sides a, b, and c. First compute the semi-perimeter:
s = (a + b + c) / 2
The area is then:
Area = sqrt( s * (s - a) * (s - b) * (s - c) )
That’s it. No trigonometry, no altitude measurement — just the three side lengths and a square root.
How this calculator works
The tool also derives every other property of the triangle from the same three inputs:
- Angles — computed from the law of cosines: angle A = arccos((b^2 + c^2 - a^2) / (2bc)), and similarly for B and C.
- Altitudes — each altitude equals 2 * Area / (base side), so h_a = 2A / a.
- Inradius — the radius of the inscribed circle: r = Area / s.
- Circumradius — the radius of the circumscribed circle: R = (a * b * c) / (4 * Area).
- Triangle type — classified as equilateral, isosceles, or scalene by comparing sides, and as acute, right, or obtuse by comparing the largest angle to 90 degrees.
The SVG diagram scales to your inputs so the relative proportions are always correct.
Worked example
Suppose a triangle has sides a = 5, b = 6, c = 7:
- Semi-perimeter:
s = (5 + 6 + 7) / 2 = 9 - Factors:
(9 - 5) = 4,(9 - 6) = 3,(9 - 7) = 2 - Product under the root:
9 * 4 * 3 * 2 = 216 - Area:
sqrt(216) = 14.6969...(approximately 14.70 units squared)
Cross-checks:
- Perimeter = 18 units
- Largest angle (opposite c = 7): arccos((25 + 36 - 49) / 60) = arccos(0.2) = approx 78.46 degrees — acute triangle.
- Inradius: 14.697 / 9 = approx 1.633
- Circumradius: (5 * 6 * 7) / (4 * 14.697) = 210 / 58.79 = approx 3.572
Formula note
Heron’s formula is algebraically equivalent to the determinant form and to the cross-product form:
Area = 0.5 * |b x c| * sin(A).
It can also be written without the semi-perimeter variable as:
Area = 0.25 * sqrt((a + b + c) * (-a + b + c) * (a - b + c) * (a + b - c)).
All three forms give identical results; the semi-perimeter version is used here because it matches the classical statement of the theorem and makes the working easiest to read.
Everything runs in your browser — no numbers are sent to any server.