how can I get the basic function of the cubic B-spline [N i,d (t)]? thank you.
4 views (last 30 days)
Show older comments
how can I get the basic function of the B-spline [N i,d (t)]?
0 Comments
Answers (1)
Aditya
on 3 Mar 2025
Hi farouk,
To compute the basic function of a B-spline, denoted as ( N_{i,d}(t) ), you need to follow the recursive definition of B-spline basis functions. The B-spline basis functions are defined over a knot vector, and the degree of the B-spline is determined by ( d ).Here is a sample code :
function N = bsplineBasis(i, d, t, knots)
% bsplineBasis computes the B-spline basis function N_{i,d}(t)
% i: index of the basis function
% d: degree of the B-spline
% t: the parameter value
% knots: knot vector
if d == 0
% Zeroth-degree basis function
if knots(i) <= t && t < knots(i+1)
N = 1;
else
N = 0;
end
else
% Higher-degree basis function
% Compute the left term
if knots(i+d) == knots(i)
left_term = 0;
else
left_term = ((t - knots(i)) / (knots(i+d) - knots(i))) * bsplineBasis(i, d-1, t, knots);
end
% Compute the right term
if knots(i+d+1) == knots(i+1)
right_term = 0;
else
right_term = ((knots(i+d+1) - t) / (knots(i+d+1) - knots(i+1))) * bsplineBasis(i+1, d-1, t, knots);
end
N = left_term + right_term;
end
end
Following is the documentation link which will help you :
0 Comments
See Also
Categories
Find more on Splines in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!