⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doboor.m

📁 采用德布尔算法进行B样条的生成
💻 M
字号:
%正确的德布尔算法
function p=doboor(d,u,l,t,r,k,dim,n)
%for j=1:k+1
%    for m=1:dim
%        dt(m,j)=d(m,j);
%    end
%end

for i=1:l-1
    if u==1
        j=n+1;
        break
    end
    if u==0
        j=k+1;
        break
    end
    if u>=t(i)&u<t(i+1)
        j=sum(r(1:i));
        break
    end
end
i=j;

%以上是判断u在哪个参数区间,从而判断算法中所涉及的控制点,已经把起始值为1考虑进去了。
dt=d;
%dt(1:dim,1:k+1)=d(1:dim,i-k:i);
%按照算法来
for ll=1:k
    for j=i-k:i-ll
        uu=knot(l,j+k+1,t,r);%所求节点的节点值
        vv=knot(l,j+ll,t,r);
        denom=uu-vv;
        if abs(denom)<=1e-5
            alfa=0;
        else
        alfa=(u-vv)/denom;
        alfa;
        
        end
        
            dt(1:dim,j)=(1-alfa)*dt(1:dim,j)+alfa*dt(1:dim,j+1);
            
    end
end
for m=1:dim
    p(m)=dt(m,i-k);   
end

⌨️ 快捷键说明

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