导航:首页 > 源码编译 > deboor算法

deboor算法

发布时间:2025-06-18 20:21:27

1. 德氏高速算术法

全名是德布尔算法
德布尔算法是数学上的一种高级快速算法,别名也叫作德氏高速算术法。
数学的子领域数值分析中,德布尔算法(DeBooralgorithm)是快速而且数值上稳定的算法,用于计算B样条形式的样条曲线。这是用于贝兹曲线的deCasteljau算法的一个推广。

2. 求一个用python实现的基于deboor-cox的B样条算法

3. Matlab如何绘制三次B样条基函数

原文:http://hi..com/junus/item/129037fbad8b1fc4a835a2ca
均匀三次B样条与非均匀三次B样条的基函数[Matlab版]
%花了两天时间才搞明白均匀和非均匀B样条基函数的区别,并在Matlab下调试通过.
%给大家共享一下,有研究这个的可以省些时间
%************三次均匀B样条基函数************
function y=Nfun(i,t)
%参数i,
y=0;
for j=0:(3-i)
y=y+(-1)^j*nchoosek(4,j)*(t+3-i-j)^3;
end
y=y/6;
%************K次非均匀B样条基函数************
function result = Bbase(i,k,u,t)
%第i段k次B样条基,Deboor递推递归算法
%t为变量,u(i)<=t
if k==0
if u(i)<=t && t<=t<=u(i+1);
result=1;
return;
else
result=0;
return;
end
end
if u(i+k)-u(i)==0
alpha=0;
else
alpha=(t-u(i))/(u(i+k)-u(i));
end
if u(i+k+1)-u(i+1)==0
beta=0;
else
beta=(u(i+k+1)-t)/(u(i+k+1)-u(i+1));
end
result=alpha*Bbase(i,k-1,u,t)+beta*Bbase(i+1,k-1,u,t);
end
给你个计算样条基函数的程序自己用plot画就行
function L=bsp(x,k,knot)
spint=[];
p=length(knot)-k;
q=length(x);
ma=diag(ones(1,p));
for j=1:q
for i=1:p
sp=spmak(knot,ma(i,:));
spint(j,i)=fnval(sp,x(j));
end
end
L=spint;

4. 求;B-样条曲线的deboor算法和C++程序

voidCGraph151View::seekPoint(intk)//表示k阶2{3CPoint *interim;//存储B样数组指针4CDC *pDC =GetDC();5CGraph151Doc *pDoc = GetDocument();//6intj = pDoc->Length-1;7intlength=1.0/0.001;//B样曲线的点的个数8interim =newCPoint[length];//保存B样曲线点9intindex_length=0;//记录interim数组下一个下标10//画控制点图11pDC->MoveTo(pDoc->m_point[0]);12for(intn=0;n<pDoc->Length;n++)13{14pDC->LineTo(pDoc->m_point[n]);15pDC->MoveTo(pDoc->m_point[n]);16}17///结束1819for(floatt=pDoc->T[0];t<pDoc->T[pDoc->T_Length-1];t +=0.001)20{21inti;22chushihua();//还原m_point 和 im_point点数组使与初始化相同23for(intr=1;r<k;r++)24{25guodian();//更新一下m_point点数组 的数据26for( i=r;i<=j;i++)27{28floatpara1;29floatpara2;3031if( (pDoc->T[i+k-r] - pDoc->T[i]) !=0.0)32{33para1 = (t - pDoc->T[i]) / (pDoc->T[i+k-r] - pDoc->T[i]);34para2 = (pDoc->T[i+k-r] - t) /(pDoc->T[i+k-r] - pDoc->T[i]);35}36else37{38para1=0.0;39para2=0.0;40}4142intx =int( (para1 * pDoc->m_point[i].x) + (para2 * pDoc->m_point[i-1].x) );43inty =int( (para1 * pDoc->m_point[i].y) + (para2 * pDoc->m_point[i-1].y) );44pDoc->im_point[i].SetPoint(x,y);45}4647}4849interim[index_length++].SetPoint( pDoc->im_point[3].x,pDoc->im_point[3].y);//存储计算出的点50}5152//画图 B样曲线53CPen pen(PS_SOLID,1,RGB(255,0,0));54pDC->SelectObject(pen);55pDC->MoveTo(interim[0]);56for(intn=0;n<length;n++)57{58pDC->LineTo(interim[n]);59pDC->MoveTo(interim[n]);60}61//B样曲线画图结束62}

阅读全文

与deboor算法相关的资料

热点内容
phppdo防sql注入 浏览:520
程序员降薪了吗 浏览:626
锋范的压缩比是多少 浏览:865
苏州工业园区中级程序员 浏览:317
工程中轴向拉伸或压缩形变的杠杆 浏览:914
薄荷app怎么使用 浏览:994
细集料筛分试验算法 浏览:482
qq可直接发送文件夹吗 浏览:930
怎么在手机下贝尔编程app 浏览:442
加密表格左对齐能调吗 浏览:485
程序员早睡图片 浏览:699
基础编程c语言入门txt下载 浏览:579
如何在web服务器数据保存 浏览:393
道闸系统的加密狗有数据库吗 浏览:410
服务器瘫痪了英文怎么说 浏览:776
手机应用文件夹的数据指什么 浏览:802
如何进入2b2t服务器网易国服 浏览:533
java二进制转换为文件 浏览:15
java局部变量内存 浏览:635
linux解压tarzip 浏览:149