This question already has an answer here:

I'm currently implementing the Bentley-Ottman algorithm applied to spheres, involving intersections of many spheres on one sphere, circles in most cases of course. This requires locating "event" points on the sphere (ie: points where something "special" happened, such as extreme points of intersection circles or intersections between these).

My question is very similar to this one, mainly because I'm asking for the exact same thing : the eastmost and westmost points of a circle on a sphere, in my case named the start and end points of the circle. These points have the particularity of being the tangency points between the circle and a special longitude. The problem resides in finding these as exact coordinates.

I'm working with the CGAL library, which provides a great deal of exact intersection primitives, and these are in my opinion probably the most appropriate way to find the exact start-end points.

So far I've tried to reduce the problem to a simpler one : instead of finding the longitudes of these points, I'm trying to find the height of the horizontal plane which contains these two points. Using the following notations :

  • S : start point
  • E : end point
  • C : center of the circle (not on the sphere of course)
  • r : radius of the circle
  • O : center of the sphere
  • R : radius of the sphere
  • h : height of the horizontal plane containing the start-end points
  • H : intersection between the pole axis and the horizontal plane containing the start-end points
  • phi : the latitude containing C
  • phi' : the latitude containing the start-end points.

Starting out from the formula based on the Law of Sines, from the last post :

sin(phi') = sin(phi) cos(r/R)

We notably have :

h = R sin(phi')
sin(phi) = OC / R

Giving finally :

h = OC cos(r / R)

This is as far as I've gotten, and I'm stuck on finding an algebraic form of this cosine.

marked as duplicate by whuber Jul 4 '13 at 16:24

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • You state your question is the same as an existing one. Then you go on to reproduce part of an answer. Finally you ask for "an algebraic form of [a] cosine." Mathematically there is no such thing: to find h, you need to compute the inverse cosine (arccosine). If you wish to comment on or follow up on the duplicate, then please do so there. – whuber Jul 4 '13 at 16:24