Laws of Rational Trigonometry

Norman Wildberger is the creator of rational trigonometry, an alternative to classical trigonometry. After using this beautiful theory for about 10 years, I think the main advantages for me have been the ease of derivation of algebraic expressions and the ease of interpretation of those formulas. I find it easier and easier to derive novel formulas by using the laws that I will discuss below. But even more important to me is that I find it easier to interpret the formulas in comparison with their classic counterparts. Let me explain.

I am a scientist, so the formulas need to tell me something about the actual physical situation that they are designed to represent. In my case they express relations between observable variables (measurements with one or more cameras) and not directly observable variables (3D properties of objects and their configurations). The formulas help me to really understand those relations, since they are algebraic expressions using only addition, subtraction, multiplication, division, and an occasional square root.

Main laws

The crucial starting point is that Wildberger uses quadrances and spreads instead of distances and angles. The translation between the old and the new entities is as follows. A quadrance Q is the square of the distance d. Quadrances have dimension m^2.


A spread s is the square of the sine of an angle \alpha. Spreads are dimensionless.

s = \sin^2 \alpha

So, a generic triangle has three quadrances and three spreads. Note that the line segment with quadrance Q_i is opposite of the meet of two line segments with spread s_i.

Generic triangle.

Quadrances are graphically denoted with a rectangular box in the middle of the line segment. Spreads are graphically denoted with a straight line in the corner between the two line segments.

In my experience it takes some getting used to this approach, but I promise that rational trigonometry will pay off in a big way later.

Spread law

This is quite familiar to those who remember the sine law

\frac{s_1}{Q_1} = \frac{s_2}{Q_2} = \frac{s_3}{Q_3}

Cross law

This is the actual work horse. I use it almost every week.

(Q_1+Q_2 - Q_3)^2 = 4 Q_1 Q_2 (1 - s_3)

Triple spread formula

This is the one that you have to get used to the most.

(s_1 + s_2 + s_3)^2 = 2(s_1^2 + s_2^2 + s_3^2) + 4 s_1 s_2 s_3

Special cases

The other two laws are for special triangles.

Pythagorean theorem

If spread s_3 is equal to 1, the triangle turns into a right triangle. We get the very familiar formula of Pythagoras:

Q_1+Q_2 = Q_3

Right triangle.

Triple quad formula

If all spreads are equal to 0. Or in other words, three points are on a line then the three quadrances are related as:

(Q_1+Q_2 + Q_3)^2 = 2(Q_1^2 + Q_2^2 + Q_3^2)

Note that all quadrances have equal status. You can view it as a triangle with an area equal to 0.

Line segment with three quadrances.

There is also a non-symmetrical version of this formula that can easily be derived from the cross law.

(Q_1+Q_2 - Q_3)^2 = 4 Q_1 Q_2

In general, this is one the hardest formulas to wrap your mind around. Since we are so used to lengths being additive, this may be confusing at first.

Applying these laws in real life

I want to remind you here that I am not a mathematician. My goal is to derive formulas that are useful in the domain that is the core theme if this website: 3D computer vision.

It may occasionally become clear that I am a scientist (trained as a physicist). So, I will regularly check the dimensions of my formulas. And I will interpret the formulas in terms of entities that I can measure with rulers and protractors.

You can subscribe to my newsletter here. If you have any questions, contact me here.