knotpara.m

来自「malab语言实现bspline曲线拟合」· M 代码 · 共 37 行

M
37
字号
function u = knotpara(t,p,n,m)

% 节点参数化u:u(1)=u(2)=...u(p+1)=0,u(p+2)<u(p+3)<...<u(n+1),u(n+2)=u(n+3)=...u(n+p+2)=1

for i = 1:p+1
    u(i) = t(1);
    u(n+i+1) = t(m+1);
end
nc = n;
inc = (m+1)/(nc+1);
low = 0;
high = 0;
d = -1;
for i = 1:(nc+1)
    d = d+inc;
    high = floor(d+0.5);        %朝负无穷方向舍入
    s = 0.0;
    for j = (low+1):(high+1)
        s = s + t(j);
    end
    w(i) = s/(high-low+1);
    low = high + 1;
end
is = 1;
ie = nc - p;
r = p;
for i = is:ie
    js = max(0,i);
    je = min(nc,i+p-1);
    r = r + 1;
    s = 0;
    for j = (js+1):(je+1)
        s = s + w(j);
    end
    u(r+1) = s/(je-js+1);
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?