1. Explanation of the classic tri-diagonal cubic spline formulation. Included are 2 example problems.
2. Extension to parametric cubic splines. Included are 2 example problems
.
:smile:
Drager
Oct19-07, 02:51 AM
wow,
After a very long search in google i found this tutorial.
And it was the first one, which describes parametric cubic splines in a good way.
Thank you very much :-)
Now i can lay streets through my landscape :-)
Cyko007
Oct31-07, 10:29 PM
Sigh....Thank You!
I was missing something very stupid and now I know what it is!
emer
Jan15-08, 11:20 AM
Thank you for tutorials. This has helped me very mush.
harshm
Mar2-08, 02:21 AM
Hey there -
Thanks for the great tutorials - they really helped me! I'm trying to duplicate your results for cubic interpolation of a circle with 4 points and I got the same solution for the 2nd derivatives in the x and y directions. However, when I solve for the coefficients and plot the cubic polynomials I can't seem to get the same result as you - Heres the code that calculates the coefficients (in MATLAB)
mx - x''
my - y''
Sx - x coefficients
Sy - y coefficients
s - arc length [0 0.25 0.5 0.75 1]
%Plotting the function
ds = 0.01;
m=1;
i=1;
for i = 1:n-1
for k = s(i):ds:s(i+1)
genpnx(m) = Sx(i,1)*(k - s(i))^3 + Sx(i,2)*(k-s(i))^2 + Sx(i,3)*(k-s(i)) + Sx(i,4);
genpny(m) = Sy(i,1)*(k - s(i))^3 + Sy(i,2)*(k-s(i))^2 + Sy(i,3)*(k-s(i)) + Sy(i,4);
m = m+1;
end
i
end
plot(genpnx,genpny,'r')
Do you have any idea what I might be doing wrong? (Ive attached an image of what the spline looks like for 4 points)
Thanks!
hotvette
Mar3-08, 03:22 PM
Though I'm not a MATLAB person, your expressions for calculating the coefficients look correct. Make sure you are using 0.25 for h. Also, for plotting, t should vary from 0 to 0.25 for each segment.
Here are the coefficient values I got for the 1st segment:
ax = 32
bx = -24
cx = 0
dx = 1
ay = -32
by = 0
cy = 6
dy = 0
Actually, this isn't the best way to fit a circle with cubic polynomials. It is better to fit a quarter circle with a single parametric cubic. The tutorial has been updated - check it out.
harshm
Mar3-08, 07:08 PM
Thanks for the coefficients - they helped me figure out what the problem was - a syntax problem - the correct expression for the coefficients are
Sx(i,1) = (mx(i+1) - mx(i))/(6*h)
while I had
Sx(i,1) = (mx(i+1) - mx(i))/6*h
Thanks a ton!
hotvette
Mar3-08, 07:35 PM
Glad to help. Fyi, the problem can be made even simpler by making h = 1, meaning s = [0 1 2 3 4]. Second deriveratives are x" = [-3 0 3 -3], y" = [0 -3 0 3 0] and plotting can be done for t varying from 0 to 1 for each segment.
I encourage you to review the updated tutorial on circle fitting.
hotvette
Mar12-08, 02:10 PM
Attached is an update to the Cubic Spline Tutorial.
To Staff,
Would someone be willing to replace the 1st attachment in this thread with the below? Thanks.