Angles in a spherical triangle.

748 Views Asked by At

Just seeking advice here! I have 3 coordinates;

$A(-0.52992,0.84805,0),\\ B(0.84805,0,0.52992),\\C(0.15461,0.47553,0.86603)$.

I want to find the angles at $A$, $B$ and $C$. Hence, I find the normal of the planes through the great circle $AB$, $AC$, $BC$ respectively.

I can easily find that the (unit) normals are

$n_{AB}:(0.50306,0.31434,-0.80506)\\n_{BC}:(-0.31209,-0.80818,0.49945)\\n_{AC}:(0.77558,0.48464,-0.40448)$

Is the angle at $A$ just $cos^{-1}(n_{AB}.n_{AC})$, angle at $B$ is $cos^{-1}(n_{AB}.n_{BC})$, angle at C is $cos^{-1}(n_{AC}.n_{BC})$?

What I am worried is that $n_{AB}.n_{BC}=-0.81313$ and hence $arccos(-0.81313)=2.5203$. This is the same situation for angle $C$. Am I still correct considering that the angles $B$ and $C$ are more than $\pi$? Can an angle be more than $\pi$? Or is there any way I can reduce the angle?

Edit: I can try to visualize the points on the sphere, it seems that angle $C$ is more than $\frac{\pi}{2}$, but angle $B$ seems to be less than $\frac{\pi}{2}$, am I still correct to say that angle $B$ is $2.52$ rad?

4

There are 4 best solutions below

5
On

Two things:

  1. $2.5$ is not larger than $\pi=3.1415\dots$.
  2. What you computed was Euclidean angles, not spherical. That is, they are angles between the lines $AB$, $AC$ and so on. The spherical angles would be the angle between the great circles passing $A,C$ and $A,B$ respectively.
1
On

Thought a picture will help you - visualize?

enter image description here

2
On

Note that if $n_{AB}$ is a unit vector perpendicular to the great circle through $A$ and $B,$ then so is $-n_{AB}.$ For each side of the spherical triangle, there are two unit vectors perpendicular to that side, each of them the exact opposite of the other.

When you reverse the direction of one of the vectors in a dot product, you reverse the sign of the product, and the arc cosine you would have gotten is replaced by its supplement. If you get just one of the unit vectors “backward” when computing the angles, you will compute the exterior angle at the vertex whose interior angle you wanted.

One way to avoid this error is to make sure you take each pair of vectors in your cross products in the same “direction” around the triangle. For example, you can take $A\times B,$ $B\times C,$ and $C\times A.$ Alternatively, you can reverse all three of the cross products. If you use a different method to find the normal unit vectors, make sure that the dot product of each normal with the vector to the remaining vertex is positive in all three cases, or ensure that all three dot products are negative. There is a twist to this, however: when you set up the normals this way, you get normals that go in nearly opposite directions when the vertex angle is very small but go in nearly the same direction when the vertex angle is very large. Therefore simply taking the arc cosine of a dot product, $\arccos(n_1\cdot n_2).$ will give you the exterior angle, so you actually want $\arccos(-n_1\cdot n_2)$ in order to get the interior angle.

Another way that works (as you noted in a comment) is to use cross products to find the normals, but make sure that the vertex at which you want to find the angle is either the first vector in both cross products or the second vector in both cross products. That way the normals will point in almost the same direction when the angle is small and will be almost opposite when the angle is large, and you can take $\arccos(n_1\cdot n_2)$ without requiring a negative sign. Using this method, you need at least four cross products, but since $B\times A = -A\times B$ this method does not really require any extra computation, just reverse the vector when you need the other cross product.

One thing you must not do is to have two normals that follow one rule and the third one following the opposite rule. This will cause you to compute exterior angles at two vertices. It looks like your $n_{AC}$ is the “wrong way around” compared to your other two normal vectors.

Merely having multiple obtuse angles in a spherical triangle is not an indication that you computed the angles incorrectly. The sum of the angles of a spherical triangle can be anything up to $540$ degrees.

0
On

Note that $$ n_{AB}=-n_{BA}=\frac{A\times B}{|A|\,|B|}\\ n_{BC}=-n_{CB}=\frac{B\times C}{|B|\,|C|}\\ n_{CA}=-n_{AC}=\frac{C\times A}{|C|\,|A|} $$ Therefore, $$ \angle A=\arccos(n_{BA}\cdot n_{CA})=0.51928\\ \angle B=\arccos(n_{AB}\cdot n_{CB})=0.62125\\ \angle C=\arccos(n_{AC}\cdot n_{BC})=2.56032 $$ and by Girard's Theorem, the area of the triangle is $$ \angle A+\angle B+\angle C-\pi=0.55926 $$ where the area of the whole sphere is $4\pi$ steradians.


The angle you got for $\angle B$ is the supplement of what is computed above, because you have the wrong sign for the dot product. That is, $$ \cos(\angle B)=n_{AB}\cdot n_{CB}=n_{BA}\cdot n_{BC}=-n_{AB}\cdot n_{BC}=-n_{BA}\cdot n_{CB} $$