Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Please excuse what will surely turn into a long rambling question, full of incorrect terminology.

I'm trying to figure out the mathematics of moving on a parametric surface - that is, for some constructed shape which has local coordinates (u,v) which map to world coordinates (x,y,z), and given a starting point in (u,v) and velocity vector in (u,v), what will be the ending position in (u,v). Additionally, a bunch of other questions, for example, if at the final position (u < 0), at what time did (u == 0)?

Supposing the most simple possible situation where (x,y,z) = (u,v,0), the problem is simple and I can use standard mechanics to work out the answer. After I thought about this for a while I realised the same applies to a cylinder and various others. Basically any shape you can make from a sheet of paper without stretching it.

If the surface is not uniformly stretched it isn't so simple. For example think of a bend in a road. The outside edge of the road might be at u=0 and the inside edge at u=1. A car travelling in a straight line in terms of (u,v) would perfectly follow the curve of the road in (x,y,z) coordinates. A car moving in a straight line in terms of (x,y,z) would be moving along a curve in (u,v), and if the car started off pointing along the road, it would soon hit the outside edge. It's still possible to figure out a solution though, if the road is flat, by doing the mechanics in (x,y,z) and then converting the result back to (u,v).

However, if the surface is eg a torus, this does not work. Trying to do the mechanics in (x,y,z) means you end up outside the surface.

Here is a diagram to illustrate my understanding of the problem:

enter image description here

Suppose you are standing on this torus. There is no gravity, and you have magnetic boots. You can walk along the red line without ever turning left or right in your local frame of reference. However, if you try to walk along the blue line, you always have to keep turning right.

So as an example of the type of result I am looking for, imagine you are standing on the blue line, tangental to it, and then you start walking in a "straight" line (not turning left or right). You will immediately deviate from the blue line. The line you end up walking is the line I am looking for.

Of course, I am not just looking for an answer for a torus. I'm looking for something that will work with a surface type that can approximate arbitrary shapes. Intuition tells me there probably isn't a solution to this problem for arbitrary parametric surfaces. Is there a solution for some specific type, e.g. Bezier patch, or NURBS surfaces? What conditions are necessary for the problem to be solvable? And what is the correct terminology for these concepts?

share|cite|improve this question
The question isn't entirely clear. Are you looking for a geodesic path along the surface with specified initial point and tangent vector? – Rahul Jul 5 '12 at 0:59
I'm not sure. Specific initial point and tangent vector is right. I've added a diagram to try to explain the type of path I'm talking about. – Alistair Buxton Jul 5 '12 at 1:45
Yes, a geodesic is definitely what you're looking for. In general, you have to solve an ODE involving the differential geometry of the surface to find it, and I doubt you can get a closed form except in very special cases. Unfortunately, this is where the extent of my knowledge ends, so I'll let someone with more expertise provide a full answer. – Rahul Jul 5 '12 at 7:46
You will almost certainly resort to numerical methods to find your geodesic path. I don't know what is commonly done when a parameterization is given, but there are a couple of popular algorithms for the case when your surface is represented by a triangle mesh. The fast marching method which is supposed to approximate a geodesic on a smooth surface, and one that gives the true geodesic path on the piecewise flat surface: – yasmar Jul 5 '12 at 8:33
Thanks. I did some searching on geodesics and found a large number of papers covering this topic. I currently use an "unwrapping" approach for trimesh but I found it was difficult to implement due to rounding errors when the path passes very close to a vertex. Literal corner cases, you might say. So I was looking for a more direct method that would avoid these problems, by directly using the underlying control surface. – Alistair Buxton Jul 5 '12 at 15:05

Look up Clairaut's law for geodesic. The sine of angle between your path and meridian of torus when multiplied by its radius at that point equals always a constant radius which is less than minimum radius of torus.The red line is a geodesic but the blue one is not, because by definition the local normal and path normal should coincide while going on the geodesic.

share|cite|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.