Point movement on a surface of a sphere

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
7 replies · 5K views
Sobe118
Messages
4
Reaction score
0
I'm trying to find the resulting location of a point on a sphere in spherical coordinates or Cartesian. Based on velocities from the perspective of an object on the sphere.

So given the:
location on the sphere (in spherical or Cartesian)
zy - plane rotation of the point
up direction of the point is always away from the origin
velocity from the perspective of the object

How do I find the resulting new location on the sphere. I am not sure what math to use, or what keywords to search in google.
Made an illustration below.

movement.png
 
Last edited:
Physics news on Phys.org
Is point moves along the surface of sphere ?
 
Yes, it is very commonly computed in video games. Self driven point on the surface of a sphere. I can't find any math on this topic. I've been looking for a week.
 
If velocity is upward then how can point move on surface of sphere ? It should leave the surface.
 
The point would normally only ever have velocities on its green and red arrows. The radius is fixed.

Think of it as if a car is driving on a very tiny earth
 
Last edited:
Maybe we can try to rotate the coordinate? Make the orbit to the xy plane and do the motion and then rotate it again.
Is this a feasible way?
 
The point trajectory will be a circle If two velocities are equal then you can make resultant speed that speed direction will be circle trajectory and then you can use 3d circle equation
 
Thanks Arman, I will try to test that. Seems simple.

I found a post on another form related to this problem from a game programming perspective, I haven't got this to work yet.
1) Center the sphere to 0,0,0 global coordinates.
2) Get the up-vector of the airplane, which is a also the normal of the plane tangent to the sphere, by normalizing the position vector of the airplane.
3) Get the at-vector of the airplane by subtracting the previous airplane position from the current airplane position and normalizing it.
4) Get the right-vector of the airplane by taking the cross product of the up-vector and the at-vector.
5) Use these vectors to create a rotation matrix, a correction rotation matrix.
6) Locally rotate the airplane and create a local rotation matrix.
7) Get the final rotation of the airplane by multiplying the local rotation matrix times the correction rotation matrix.
8) Use the at-vector of the final rotation matrix as the directional vector of the airplane and translate the airplane along this vector scaled by the speed of the airplane.