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


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?

  • $\begingroup$ Spherical or 3D? 3 points does not define a sphere. $\endgroup$ – Moti Nov 10 '18 at 2:09
  • $\begingroup$ Spherical. Yes but I am finding the angles of the spherical triangle on a unit sphere. So 3 points on the (unit) sphere do determine a spherical triangle $\endgroup$ – Icycarus Nov 10 '18 at 16:37
  • $\begingroup$ You can find many spheres that use the same three points which result many solution - for each sphere you have a solution set. You need to say that the three points are of a great circle if you mean this - but than all equal $\pi$ $\endgroup$ – Moti Nov 10 '18 at 21:20
  • 1
    $\begingroup$ @Moti: By "unit sphere", OP certainly means "the unit sphere"; that is, the sphere of unit radius centered at the origin (cf. "the unit circle"). If you're studying spherical triangles, there's no good reason to make your life more complicated by studying them on a non-origin-centered sphere. $\endgroup$ – Blue Nov 10 '18 at 21:35
  • $\begingroup$ I missed that one. $\endgroup$ – Moti Nov 10 '18 at 23:52

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.
  • 2
    $\begingroup$ Hm.. I learnt that the angles between the great circles passing A,C and A,B is the angle between the normals of the plane passing through AC and AB. Which is what I have calculated, or did I misunderstood something? $\endgroup$ – Icycarus Nov 10 '18 at 21:22
  • $\begingroup$ Oh yes, thanks for pointing out. What I meant was more than pi/2. Will edit it $\endgroup$ – Icycarus Nov 10 '18 at 21:23
  • 1
    $\begingroup$ Then yes, they can be larger than $\pi/2$. $\endgroup$ – Quang Hoang Nov 10 '18 at 21:31
  • 2
    $\begingroup$ Oh, I missed that part. Yes, I think you are correct. Angle between normals of planes through great circles is the same with angle between them. $\endgroup$ – Quang Hoang Nov 10 '18 at 21:33
  • 1
    $\begingroup$ Oh! Thank you for the explanation! $\endgroup$ – Icycarus Nov 10 '18 at 21:34

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.

  • $\begingroup$ Thanks for the input! I was wondering if this was what you meant; Do find angle at A; I find the angle between $n_{AB}.n_{AC}$, angle at B; angle between $n_{BA}.n_{BC}$, angle at C; angle between $n_{AC}.n_{BC}$, where $n_{AB}$ = $A$ x $B$, $n_{BA}$ = $B$ x $A$ etc $\endgroup$ – Icycarus Nov 11 '18 at 21:11
  • $\begingroup$ That's not quite what I had in mind but it's a perfectly good method. I've added it to the answer. There are several correct ways to solve this problem! I'm sorry to say I actually made a sign error when I first wrote this up, which confused me because it seemed to imply that you already had the correct angle at $B.$ But I was doing the dot products in my head in a moving car and writing the results on my phone, and I have fixed the error now (I think), so please forgive the confusion. $\endgroup$ – David K Nov 11 '18 at 23:54

Thought a picture will help you - visualize?

enter image description here

  • $\begingroup$ Thanks for the diagram! $\endgroup$ – Icycarus Nov 11 '18 at 21:10

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} $$


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.