资源简介
自己写了个B样条的实现,其中一个方法参考了网上的代码,已经在博客里标记出来。新人资源,有错误希望多多指正。
代码片段和文件信息
function result = baseFunction(i k u NodeVector)
% 计算基函数Nik(u)NodeVector为节点向量
if k == 0 % 0次B样条
if (u >= NodeVector(i+1)) && (u < NodeVector(i+2))
result = 1.0;
else
result = 0.0;
end
else
Length1 = NodeVector(i+k+1) - NodeVector(i+1);
Length2 = NodeVector(i+k+2) - NodeVector(i+2); % 支撑区间的长度
if Length1 == 0.0 % 规定0/0 = 0
Length1 = 1.0;
end
if Length2 == 0.0
Length2 = 1.0;
end
result = (u - NodeVector(i+1)) / Length1 * baseFunction(i k-1 u NodeVector) ...
+ (NodeVector(i+k+2) - u) / Length2 * baseFunction(i+1 k-1 u NodeVector);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 715 2018-09-04 21:08 B-spline\ba
文件 133 2018-09-05 08:30 B-spline\GetPlace.m
文件 1209 2018-09-05 11:27 B-spline\main.m
目录 0 2018-09-05 11:30 B-spline
----------- --------- ---------- ----- ----
2057 4
评论
共有 条评论