Reparameterization

    One problem that exists with splines is that when given a linearly increasing t, the point does not progress through the curve at even intervals. To correct this problem we reparameterized the spline by sampling points and then linearly interpolating between those sample points.

    The first step in the reparameterization of a spline is to store points along the spline. In our program we took ten sample points between each control point and stored the point and how far the point lies from the previous sample point. The next step was to go through each sample point and reparameterize the t value. This is done by dividing the current length by the entire length of the spline. Now t ranges from zero to one over the entire spline instead of between each control point. This eliminates the need to change the control points when t becomes greater than one.

    The interpolation process is done using another routine. The first step in this interpolation is to find which is the first sample point before the t value passed. Unless the t value at the sample point is the same as the t value passed which is usually not the case, linear interpolation is used to get the actual point. This is easily done by first scaling the t to range from zero to one between the current sample point and the next sample point, then the desired point is found with the standard parametric equation.

    The figures below were created in a DOS program we coded to experiment on different curves and reparameterization. The first picture shows the result of passing a linearly increasing t into a B-spline. As you can see the dots are most concentrated at the beginning and end of the spline and are the least concentrated in the middle. The next picture shows a spline drawn passing a linear t but is reparameterized and it clearly shows that each dot is equally spaced along the line. The next picture does the same as the second but increases the t at half the rate and shows that the dots are still evenly spaced out along the line.

 
Normal B-spline
 
Reparameterized B-spline
 
Second Reparameterized B-spline
 
 

[Return to cs563 '99 Biomedical Visualization Talk]