B-spline curve interpolation

2 views (last 30 days)
Lokesh Rakawat
Lokesh Rakawat on 25 Apr 2018
Commented: Unai San Miguel on 9 Jul 2018
I am trying to interpolate a given no of data points(3D) to get the interpolating B-spline curve. But for lower degree (like n=4), the control points (at the start of curve) are at very large distance from data points (except the first and last obviously) and for higher degree (n=10), the distance decreases.
data point = [1.8344 2.2802 0; 1.8187 2.2686 0.0100; 1.8063 2.2608 0.0200; 1.7909 2.2610 0.0300;....... (16 more)...;2.1227 2.5056 0;]
for n=4 , control point = [1.8344 2.2802 0; 2973836.32757604 218588.706397133 4207055.37520728 ; -1045212.71992514 -76824.3713212613 -1478655.05573647; 257382.122002332 18920.5432190655 364113.500023932 ;..................................;2.1227 2.5056 0;]
for n = 10, control point = [1.8344 2.2802 0; -14.3298479369024 25.3962285214618 -12.33440210039 ; 22.0947228148273 -26.8248883657439 15.5134643356754; -18.2395057888953 31.1856933650198 -15.3541524420049;..........................;2.1227 2.5056 0;]
How should I choose the order(degree) of the curve and do the interpolation.
Also, when I don't use the backslash operator, I get warning (Matrix is close to singular or badly scaled)
Please tell me how to work and sort out this.
  2 Comments
Lokesh Rakawat
Lokesh Rakawat on 25 Apr 2018
Anybody, please any idea?
Unai San Miguel
Unai San Miguel on 9 Jul 2018
There aer a number of techniques to do interpolations. Can you post the code you have used so far?

Sign in to comment.

Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!