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.