Members - Reputation: 122
Posted 14 October 2001 - 11:24 AM
Members - Reputation: 864
Posted 14 October 2001 - 07:31 PM
Given that zc > zp, then the visible part of the planet will be the locus of all points within the 'cap' of the sphere defined by the intersection of the sphere and a tangent cone with origin at zc. In other words, all vectors that pass through zc and are tangent to the sphere define a 'tangent cone' and it is only points on the planet within this cone that will be visible at zc. I believe that finding this set of points is the problem you have asked. Please correct me if I am wrong.
Assuming this is the case...
A vector from the origin of the sphere to zc is given by c = <0,0,zc> and the vector function defining the surface of the sphere is given by r (theta,phi) = zp(cos(theta)sin(phi)i + sin(theta)sin(phi)j + cos(phi)k ). Hence, the tangent cone is defined by t = c -r such that t.r = 0; and so we can solve this to find that cos(phi)=zp/zc, thus defining the boundary of our set of points by the angle phi (which is the (angle of) declination from the z axis of the point on the sphere).
So, you can clip all points on the sphere for which phi>cos-1(zp/zc)
I hope this is what you were looking for!
Edited by - Timkin on October 15, 2001 12:18:02 AM