b样条曲线曲面和nurbs曲线曲1

b样条曲线曲面和nurbs曲线曲1

ID:10121261

大小:528.50 KB

页数:21页

时间:2018-06-11

b样条曲线曲面和nurbs曲线曲1_第1页
b样条曲线曲面和nurbs曲线曲1_第2页
b样条曲线曲面和nurbs曲线曲1_第3页
b样条曲线曲面和nurbs曲线曲1_第4页
b样条曲线曲面和nurbs曲线曲1_第5页
资源描述:

《b样条曲线曲面和nurbs曲线曲1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、B样条曲线曲面和NURBS曲线曲面(学习笔记和上机练习)非均匀有理B样条,通常简称为NURBS(Non-UniformRationalB-Splines)。NURBS是非有理B样条、有理以及非有理Bézier曲线曲面的推广。一、要对B样条曲线曲面和NURBS曲线曲面有所了解应先了解B样条基函数B样条基函数的定义和性质令是一个实数列,即≤,i=0,1,…,m-1。其中,称为节点,称为节点矢量,用表示第i个次(+1阶)B样条基函数,其定义为若≤<值为1,其他值为0(2)由(2)式可知:(1)是一个阶梯函数,它在半开区间外都为零;(2)当

2、>0时,是两个-1次基函数的线性组合;(3)计算一组基函数时需要事先指定节点矢量和次数;(4)(2)式中可能出现0/0,我们规定0/0=0;(5)是定义在整个实数轴上的分段多项式函数,只在区间上有意义;(6)半开区间称为第i个节点区间,长度可以为零,因相邻节点可以相同;B样条基函数的一些重要性质:1如果,则=0。2对于所有的和,有≥0.3对于任意的节点区间,当时,。4在节点区间内部,是无限次可微的。在节点处是次连续可微的,其中是节点的重复度。5除的情况外,严格的达到一次最大值。B样条基函数的导数基函数的求导公式为(4)根据求导法则,

3、对基函数求导得到一般的求导公式:(5)另一个计算B样条基函数各阶导数的公式(参考[Butt76]):,…,(6)B样条基函数的一些重要计算a–确定节点()在节点矢量()的区间下标(据区间)//确定参数u所在的节点区间下标//n=m-p-1//m为节点矢量U[]的最大下标//p为B样条函数次数intBuspan(intn,intp,floatu,floatU[]){intlow,high,mid;if(u==U[n+1])//特殊情况returnn;//进行二分搜索low=p;high=n+1;mid=(int)(low+high)/

4、2;while(u

5、

6、u>U[mid]){if(u=U[mid]&&u

7、,floatN[]){floattm1,tm2,TN[100][100];floatleft[100][100],right[100][100];for(intti=0;ti<=i+p;ti++)for(intj=0;j<=p;j++){tm1=U[ti+j]-U[ti];tm2=U[ti+j+1]-U[ti+1];if(tm1!=0)left[ti][j]=(u-U[ti])/tm1;elseleft[ti][j]=0.0;if(tm2!=0)right[ti][j]=(U[ti+j+1]-u)/tm2;elseright[ti]

8、[j]=0.0;if(u>=U[ti]&&u=i-p;t--)for(intk=1;k=i-p;r--)N[r]=left[r][p]*TN[r][p-1]+right[r][p]*TN[r+1][p-1];}c–计算B样条基函数的导数(据

9、(6)式)//计算基函数的1阶导数并保存在NP[]中//i为参数u所在的节点区间下标//p为B样条函数次数P>2voidBNipip(inti,intp,floatu,floatU[],floatNP[]){floattm1,tm2,TN[100][100];floatleft[100][100],right[100][100];for(intti=0;ti<=i+p+1;ti++)for(intj=0;j<=p;j++){tm1=U[ti+j]-U[ti];tm2=U[ti+j+1]-U[ti+1];if(tm1!=0)left[

10、ti][j]=(u-U[ti])/tm1;elseleft[ti][j]=0.0;if(tm2!=0)right[ti][j]=(U[ti+j+1]-u)/tm2;elseright[ti][j]=0.0;if(u>=U[ti]&&u

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。