It sounds like you want to keep the speed of the object at some constant value over the entire curve - knowing the arc-length won't help you do this. It will help you calculate at what time the object would reach its end-point if it were going at that speed, so it will be better than what you have now (the object will have the same average speed between all points), but the actual speed of the object will still vary as it moves around the curve.
A better solution would be to change our parametric parameter (the parameter that goes from 0 to 1, which I'll call
s to avoid confusion with
t = time) at a variable-rate
ds/dt, which is determined by what speed you want the object to be moving at that point on the curve. So in other words, instead of changing
s by 0.01 each frame, we might change it by 0.005 one frame, 0.02 the next, etc.
We do this by calculating the derivatives of
dy/ds) each frame, then setting
ds/dt = speed / sqrt( (dx/ds)2 + (dy/ds)2 )
That is, by taking the speed we want to go, and dividing by the speed we'd actually be going if we were changing
s at a fixed increment.
We want the speed of our object to be constant; let's give that constant the name
We learn in second-year calculus that, for parametric equations
speed = sqrt( (dx/dt)2 + (dy/dt)2)
We also learn that
dx/dt = dx/ds * ds/dt (chain rule)
speed = sqrt( (dx/ds)2 (ds/dt)2 + (dy/ds)2 (ds/dt)2 )
ds/dt, we get the stated equation.
Calculating the derivatives
I've never worked with those particular splines, but I understand they just give
y(s) in terms of cubic-equations of
s. Thus, we can find the derivative
dx/ds easily: if
x(s) = a*s3 + b*s2 + c*s + e
dx/ds = 3a*s2 + 2b*s + c
dy/ds) Of course, you'll need to know the exact values of
c to do this. According this this page, those values are easy to find.
Finally, to answer the question in the title: finding the arc-length equation of a parametric function involves solving a fairly complicated definite integral; even for the simple case of a cubic-equation, this can't generally be done.
Thus, you'll have to estimate the integral numerically. "Cutting the spline into 10 straight lines and summing their lengths" as you suggest is one very simple way of doing this; however, there are slightly more complicated methods that will give you much more accurate results using fewer line-segments.