Law of sines: uniform proof of Euclidean, spherical & hyperbolic cases

Strictly speaking, there is just one approach to a uniform proof, which is the one given by Elementary Differential Geometry , Christian Bär, pages 201-209. This approach is based on Riemannian geometry.

The impossibility of coming up with a 'rule-and-compass' uniform proof is that the Pythagorean theorem is expressed in essential different ways:

  • Euclidean geometry: $a^2+b^2=c^2$

  • Spherical geometry: $\cos(a)\cos(b)=\cos(c)$

  • Hyperbolic geometry: $\cosh(a)\cosh(b)=\cosh(c)$

It is true that we may derive the following formulae for rectangular triangles:

  • Euclidean geometry: $\sin(\alpha)=\frac{a}{c}$

  • Spherical geometry: $\sin(\alpha)=\frac{\sin(a)}{\sin(c)}$

  • Hyperbolic geometry: $\sin(\alpha)=\frac{\sinh(a)}{\sinh(c)}$

and then the usual proof of the sine rule applies to the other two cases (just dividing a triangle into two rectagle ones by an altitude), but whereas $\sin(\alpha)=\frac{a}{c}$ is a definition, the other two expressions have to be found in a different way.


The following proof works for all three geometries, but it is not a uniform geometry proof -- it looks at the geometries "from the outside" (using $\mathbb{R}^3$) rather than doing the proof within the spherical/Euclidean/hyperbolic plane. But I like it anyway.

Embedding the geometries

First we will embed these planes into standard 3-dimensional space.

  • For spherical geometry, we use the standard embedding onto the points satisfying $z = \pm \sqrt{1 - x^2 - y^2}$.

  • For Euclidean geometry, we embed trivially onto the points satisfying $z = \sqrt{1}$.

  • For hyperbolic geometry, we use the standard embedding onto the points satisfying $z = \sqrt{1 + x^2 + y^2}$.

In the immediate (infinitesimal) vicinity of $(0,0,1)$, the three embedded planes are tangent to each other, and there is no distortion of angles or distances there.

We can (and occasionally will) project the other two embedded planes onto the Euclidean one simply by setting the $z$ coordinate to $1$. With this projection, spherical and hyperbolic lines through $(0,0,1)$ are projected onto straight Euclidean lines through $(0,0,1)$. (But lines not through $(0,0,1)$ project onto ellipses or hyperbolas.)

Moving around in the plane

Next we will consider what it's like to walk around in the plane.

We will think of $(0,0,1)$ as the "origin" of each plane, and we will imagine standing there, and when we walk, the plane shifts under us so that we stay at $(0,0,1)$. This way, we can walk to any location in the plane in order to see it without distortion.

For example, in the Euclidean plane, if we "walk" (while staying at the origin) for a distance $d$ in the $-x$ direction, then the plane shifts all points $(x,y,z)$ to $(x+d,y,z)$.

In the spherical plane, if we walk for a distance $d$ in the $-x$ direction, then the plane shifts all points $(x,y,z)$ to $(x \cos d + z \sin d, \; y, \; z \cos d - x \sin d)$.

In the hyperbolic plane, if we walk for a distance $d$ in the $-x$ direction, then the plane shifts all points $(x,y,z)$ to $(x \cosh d + z \sinh d, \; y, \; z \cosh d + x \sinh d)$.

Notice that for the embeddings we have chosen, all $y$ coordinates remain unchanged when walking in the $\pm x$ direction.

Distance and projected distance

In every case, define $\sin_k(d)$ as the new $x$ coordinate of the origin $(0,0,1)$ when we walk in the $-x$ direction for a distance $d$.

This is $\sin d$, $d$, and $\sinh d$ for the spherical, Euclidean, and hyperbolic cases respectively, but we will just use $\sin_k(d)$ for all three cases.

So $\sin_k(d)$ is the projected distance from the origin, using our embeddings, for a point at distance $d$ in the plane's internal geometry. (Not just in the +x direction, but in any direction, due to the rotational symmetry.)

The unified law of sines

Consider triangle $ABC$, placed with $A$ at $(0,0,1)$, and $AB$ extending from there in the $+x$ direction, so $B$ also has $y=0$, and with $C$ having $y>0$.

Projected into the Euclidean plane, sides $AB$ and $AC$ are straight lines, but $BC$ is probably not.

While we are standing at $A$, the Euclidean projection of $C$ lies at a distance of $\sin_k b$ from the origin, where $b$ is the length of side $AC$. Since the projection is a straight line, and angles are not distorted at the origin, we see that $C$ is projected onto $(\sin_k(b) \cos A, \; \sin_k(b) \sin A, \; 1)$.

Now we will walk to $B$. At $B$, we see that $C$ projects to $(- \sin_k(a) \cos B, \; \sin_k(a) \sin B, \; 1)$. But as we walked from $A$ to $B$, the $y$ coordinate of $C$ of course did not change, so we see that $\sin_k(a) \sin B = \sin_k(b) \sin A$, and so $$\frac{\sin_k(a)}{\sin A} = \frac{\sin_k(b)}{\sin B}.$$

We can keep walking back and forth on line $AB$ and go to the foot of the altitude from $C$. Let's call its length $h_C$. There, we see that $C$ projects to $(0, \sin_k(h_C), 1)$. We do not need this for the proof, but it is just nice to notice that $\sin_k(a) \sin B = \sin_k(b) \sin A = \sin_k(h_C)$.

The circumference of circles of radius $r$

We still need to show that $l(r)$, the circumference of a circle of radius $r$, is equal to $2 \pi \sin_k(r)$.

Again, this comes from the fact that the $y$ coordinate does not change as we walk in the $\pm x$ direction. Why is that?

Well, consider a line perpendicular to the $x$ axis at the origin (i.e. the $y$ axis). We can put tick marks at various $y$ positions on this line. As we walk along the $x$ axis, the shifted line will project to a curve, but this curve will remain perpendicular where it crosses the $x$ axis, and we already know that the tick marks will stay at the same $y$ heights as where they started.

So distance perpendicular to a ray from the origin is undistorted, in the immediate vicinity of the ray. (Radial distance however is generally distorted, so things like angles and curvature will not be correct.)

If we consider a circle of radius $r$, we see that when we stand at its center, it projects to a circle of radius $\sin_k(r)$, with circumference $2 \pi \sin_k(r)$.

And since distance perpendicular to a ray from the origin is undistorted in the vicinity of the ray, the circle's circumference is undistorted, so the circle really does have circumference $2 \pi \sin_k(r)$, even in the plane's internal geometry.

Bonus: Unified law of cosines

The question also mentions (in "comment/thought" #3) the law of cosines. Since we have already set up much of the machinery, we can simply complete the machinery, and it will give us a unified law of cosines.

First, let's define $\cos_k(d)$ similarly to $\sin_k(d)$, in terms of the curvature constant $k$: $$\sin_k(d) = d - \frac{k d^3}{6} + \frac{k^2 d^5}{120} - \cdots = \sum_{i=0}^{\infty} \frac{(-k)^i d^{2i+1}}{(2i+1)!} = \begin{cases} \sin d & \mbox{if } k=1 & \mbox{(spherical)} \\ d & \mbox{if } k=0 & \mbox{(Euclidean)} \\ \sinh d & \mbox{if } k=-1 & \mbox{(hyperbolic)} \\ \end{cases}$$ $$\cos_k(d) = 1 - \frac{k d^2}{2} + \frac{k^2 d^4}{24} - \cdots = \sum_{i=0}^{\infty} \frac{(-k)^i d^{2i}}{(2i)!} = \begin{cases} \cos d & \mbox{if } k=1 & \mbox{(spherical)} \\ 1 & \mbox{if } k=0 & \mbox{(Euclidean)} \\ \cosh d & \mbox{if } k=-1 & \mbox{(hyperbolic)} \\ \end{cases}$$

This lets us write the mappings of the above section, moving around in the plane, in a unified form: $$\begin{array}{crcl} & (x,y,z) & \mapsto & (x \cos_k(d) + z \sin_k(d), \; y, \; z \cos_k(d) - k x \sin_k(d)) & \;\;\;\; \\ \mbox{and the special case } & (0,0,1) & \mapsto & (\sin_k(d), \; 0, \; \cos_k(d)) \\ \end{array} $$

Now, set up the triangle as before, with $A$ at the origin, so $C$ is at $$(\sin_k(b) \cos A, \; \sin_k(b) \sin A, \; \cos_k(b)).$$ Like before, we walk to $B$, at which point we see that $C$, being at angle $\pi-B$ and distance $a$, is at $$(- \sin_k(a) \cos B, \; \sin_k(a) \sin B, \; \cos_k(a)).$$

But we can also calculate the new position of $C$ using the mapping. In this case, since we are walking in the $+x$ direction, $d$ is $-c$. Plugging in $d=-c$ and $C$'s starting point $(x,y,z)=(\sin_k(b) \cos A, \; \sin_k(b) \sin A, \; \cos_k(b))$, we find that the transformed point is at $$ \left( \begin{array}{l} x' \\ y' \\ z' \\ \end{array} \right) = \left( \begin{array}{l} x \cos_k(d) + z \sin_k(d) \\ y \\ z \cos_k(d) - k x \sin_k(d) \\ \end{array} \right) = \left( \begin{array}{l} \sin_k(b) \cos A \cos_k(-c) + \cos_k(b) \sin_k(-c) \\ \sin_k(b) \sin A \\ \cos_k(b) \cos_k(-c) - k \sin_k(b) \cos A \sin_k(-c) \\ \end{array} \right) .$$

Setting these two formulations of $C$'s new position equal to each other, we get: $$ \left( \begin{array}{l} - \sin_k(a) \cos B \\ \sin_k(a) \sin B \\ \cos_k(a) \\ \end{array} \right) = \left( \begin{array}{l} \sin_k(b) \cos A \cos_k(-c) + \cos_k(b) \sin_k(-c) \\ \sin_k(b) \sin A \\ \cos_k(b) \cos_k(-c) - k \sin_k(b) \cos A \sin_k(-c) \\ \end{array} \right) $$

The $y$ components give us the law of sines, same as before. And the $z$ components give us the law of cosines. (Since these points are on a known 2D surface, the $x$ components do not give us a third independent identity.) We can simplify it slightly, since $\cos_k$ is even and $\sin_k$ is odd: $$ \cos_k(a) = \cos_k(b) \cos_k(c) + k \sin_k(b) \sin_k(c) \cos A $$