Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Spherical Coordinates


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 Zaei   Members   -  Reputation: 122

Like
Likes
Like

Posted 14 October 2001 - 11:24 AM

I am trying to define a planet using spherical corrdinates (rho, phi, theta). The sphere is centered on the origin, and I have my camera defined by a second set of spherical coordinates. What I want to do is clip away all geometry on the sphere that is not visible (the sphere has a radius of ~5000, the camera is at rho 5020). How can i avoid the cost of converting from Spherical to cartesian coordinates, and clip off all that extra geometry? Z.

Sponsor:

#2 Timkin   Members   -  Reputation: 864

Like
Likes
Like

Posted 14 October 2001 - 07:31 PM

I will assume that your camera is located on the positive z axis at a point zc, such that zc > zp (where zc is the radius of the sphere the camera lies on and zp is the radius of the planet). If you're camera lies elsewhere on the sphere, then it is a trivial transformation of coordinates to adjust the solution to your exact problem.

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!

Cheers,

Timkin

Edited by - Timkin on October 15, 2001 12:18:02 AM

#3 Zaei   Members   -  Reputation: 122

Like
Likes
Like

Posted 15 October 2001 - 11:40 AM

Sounds great! Thanks a lot.

Z.

#4 Zaei   Members   -  Reputation: 122

Like
Likes
Like

Posted 15 October 2001 - 02:36 PM

Worked like a charm, Thanks Much!

Z.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS