1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Point movement on a surface of a sphere

  1. Jun 2, 2015 #1
    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.

    Last edited: Jun 2, 2015
  2. jcsd
  3. Jun 2, 2015 #2
    Is point moves along the surface of sphere ?
  4. Jun 2, 2015 #3
    Yes, it is very commonly computed in video games. Self driven point on the surface of a sphere. I cant find any math on this topic. Ive been looking for a week.
  5. Jun 2, 2015 #4
    If velocity is upward then how can point move on surface of sphere ? It should leave the surface.
  6. Jun 2, 2015 #5
    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: Jun 2, 2015
  7. Jun 2, 2015 #6
    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?
  8. Jun 2, 2015 #7
    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
  9. Jun 2, 2015 #8
    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook