Advertisement

A velocity curve in two-space?

Started by May 23, 2002 08:46 AM
4 comments, last by felonius 22 years, 8 months ago
I am reading a book with some basic animation stuff in it and there is a section on splines in animation. They define the spline itself in 3-space: Q(u) = (x(u), y(u), z(u)) So far so good. But then they define a "velocity curve" in 2-space: V(u) = (t(u), s(u)) What is this and what is t and s? I would have thought that the velocity just was a scalar, and not a tuple. ?!? Thanks in advance.
Jacob Marner, M.Sc.Console Programmer, Deadline Games
Velocity, like position, is a vector. So in two dimensions the velocity vector has two components. For a time or other parameter dependent velocity

V(u) = (t(u), s(u))

Gives the two components, t and s, as functions as u.

You may be thinking of speed which is just a scalar. You can think of velocity as directed speed, i.e. speed with the direction also specified.
John BlackburneProgrammer, The Pitbull Syndicate
Advertisement
Thanks, but if what you say is true then the text following the definition in the book (Watt&Watt: Advanced Animation and Rendering techniques page 346) confuses me:

Quote start:

in general, driving an object positioned on a curve Q(u) by the velocity curve
V(u) = (t(u), s(u))
that plots the arclength s, or distance travelled, against time, requires the curve to be reparameterized in terms of s. Since s is always a strictly increasing function of u the reparameterization can always be effected wihtout ambiquity as there is a one-to-one correspondence between s and u.

Quote end.

If you suggestion is true the arclength would be sqrt(t^2+s^2) not s as the text says.

I was thinking, could the above mean that u (which is the parameter) be mapped into t (time) and s (velocity)? This just seem pretty pointless since I would have thought that u was the time - but it might be that one want to keep time constant even if the function is reparemeterized. Does this make sense?
Jacob Marner, M.Sc.Console Programmer, Deadline Games
Doesn't it just mean that
s is the distance travelled along the curve (arc length)
t is the time at which you are at point s

Both are parameterized by u, which also parameterizes the curve. I think you'd get the actual direction of velocity from the spline curve at that point. The reason to have u common is that s (or t) could be some weird backward and forward function.



[edited by - JuNC on May 23, 2002 1:13:10 PM]
yeah, this makes sense. But I think it is odd that they call it a *velocity* curve. It just matches positions with time.

Thanks people. I will get back if turns out not to make sense anyway.
Jacob Marner, M.Sc.Console Programmer, Deadline Games
I can hopefully help with your understanding of this problem...

V(u) is the parametric velocity function, not necessarily the velocity of an object following the curve. It''s magnitude is equal to the rate of change in length of a radius vector from the origin of the coordinate system to the point u on the curve. s is the arc length and represents the integral of the parametric velocity from the start of the curve to any point u along the curve, given by

       /us(u) = \ V(z)dz       /0 


z is just the variable of integration...

If V(u) is written as V(u) = V(t(u),s(u)) then the notation is rather poor (if t means time). Strictly speaking, t is a re-parametrization of the curve... in other words, t is a scaled version of u... hence t=t(u). More correctly, V should be written as V(u) = V(s(t(u))), which just says what I said above... that V is the parametric velocity and depends on two things... where on the curve you are (dictated by t or u) and on the shape of the curve... the specific form of the function V(.).

Make sense?

The biggest point is don''t get confused with the difference between parametric velocity, V(u), and the velocity of an object following the curve, V(t). The two are linked via the re-parameterisation, t(u), but the functions will be different.

Cheers,

Timkin

This topic is closed to new replies.

Advertisement