# Velocity on the surface of a sphere

Hi,

I want to move an object along the surface of a sphere with a given velocity. I essentially want to make a simple tether airplane simulator (control line).

I know that I need to work in spherical coordinates for the position of the object and its velocity.

I have seen an old post that descibes a similar problem but I cannot get it to work and cannot fully get my head around it. https://www.physicsforums.com/showthread.php?t=295684

Any help would be much appreciated.

Thanks

your object should have a vector for its velocity toward the center of the earth an a manipulatable vector for it velocity tangent to the outside of the sphere. This will give the object a overall velocity "curved" around your sphere.

This is what I have so far. I initially get the position of the object. Theta and Phi are initially zero and Radius = 2; Therefore the polar to opengl result is (0,0,2);

void init()
{
//position from polar to opengl
pos.x = Radius * sin(theta) * sin(phi);
pos.z = Radius* cos(theta) * sin(phi);
}

The velocity must be orthogonal to the position vector.

void update()
{
//update velocity

//ensure velocity is orthogonal to position