您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 第7讲-B样条曲线曲面
1车身CAD山东交通学院汽车工程系2复习:分段三次B-样条曲线rrrrrr3B样条曲线的表达式若给定m+n+1个控制顶点Bi(i=0,1,2,…,m+n),将多边折线分成m+1段,每段多边折线称为B特征多边形,构成的第i段B-样条曲线为n次多项式(i=0,1,2,…,m):其中,Nk,n(u)为n次B样条基函数(德布尔-考克斯递推公式)∑=+=nknkkiniuNBur0,,)()(三次B样条曲线算法B样条曲线的正算和反算正算:从已知的B样条特征多边形顶点计算三次B样条曲线,是B样条曲线的逼近过程,称为曲线正算。给定特征多边形顶点Bi,计算B样条曲线ri(u),根据公式)()(3,30uNBurkkkii∑=+=33,323,213,13,0)()()()(++++++=iiiiBuNBuNBuNBuN反算:从已知型值点序列反推控制多边形顶点,是B样条曲线的插值过程,称为曲线反算。实际中多为给出曲线上的一批型值点pi,用B样条曲线来拟合这些点,然后求出它需要的插值点。这时首先要求出B样条曲线特征多边形顶点,才能对曲线进行插值计算。已知n+1个型值点Pi(i=0,1,…n),求特征多边形顶点位置矢量Bi(i=-1,0,1…n+1)。三次B样条曲线算法关于三次B样条曲线的端点性质中:)4(61)1(321BBBri++=)4(61)0(210BBBri++=)(21)1(12BBr−=′)(21)0(02BBr−=′)()(2)0(1012210BBBBBBBr−+−=+−=′′)()(2)1(2121321BBBBBBBr−+−=+−=′′三次B样条曲线算法反算归结为:iiiiPBBB=+++−)4(6111补充两个适当的端点条件,方程组有唯一的解。工程中常见情况为:A.给出两端点的切矢量B.自由端点条件C.封闭曲线条件(1)三次B样条曲线算法A.给出两端点的切矢量式中,和为实际设计中可以根据抛物线端点条件给出。将(1)(2)联立消去和得:⎪⎪⎩⎪⎪⎨⎧′=−′=−−+−nnnPBBPBB)(21)(2111011(2)′0P′nP1−B1+nB′−=+′+=+−nnnnPPBBPPBB323210010(3)三次B样条曲线算法将上式(1)(3)联立构成三对角线型方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡′+=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡−−−−nnnnnnPPPPPPPBBBBBB666...663...21141141.........1411411212210012210用追赶法解上式,将结果带入(2)式中求出Bi(i=-1,0,1,…n+1)即可。三次B样条曲线算法B.自由端点条件一般取联立式(1)(4)构成三对角线型方程组nnBBBB==+−101⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡−−−−nnnnnnPPPPPPBBBBBB1221012210...6...51141141.........14114115用追赶法解上式(4)C.封闭曲线条件为使曲线的起点和终点光滑连接,在Pn和P0将应生成一小段曲线。考虑Pn点的连续性,曲线由Bn-1、Bn、Bn+1、Bx生成,其中Bx为生成曲线PnP0的第四个顶点。考虑P0的连续性,曲线PnP0应由顶点By、B-1、B0、B1生成,其中By为生成曲线PnP0的第一个顶点。⎪⎪⎩⎪⎪⎨⎧====+−−10111BBBBBBBBxnnyn(5)三次B样条曲线算法如果给定顶点Bn=B-1,Bn+1=B0,只要Bn-1、Bn(或B-1)、Bn+1(或B0)、B1四个顶点生成曲线PnP0,即将原曲线封闭且满足C2连续。011BBBBnn==+−(6)将(1)(6)联立,得方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡−−−−nnnnnnPPPPPPBBBBBB1221012210...6...41141141.........14114114(7)节点插入具有较高的理论价值,在曲线曲面设计中广泛使用,优点:简单证明B样条曲线的变差缩减性;改善B样条曲线的局部性质,提高曲线形状控制的潜在灵活性求出曲线上的点;生成曲线的Bezier点,得到B样条曲线的分段Bezier表示;实现对曲线的分割;生成曲面时,使不相同的节点矢量统一起来B样条曲线的节点插入与升阶曲线升阶重要意义升阶可以增加曲线的柔性,提高形状控制的潜在灵活性。通过增加控制顶点数增加曲线自由度。通过插入节点的分割过程可以精确的在某个区域增加形状控制的灵活性。但移动对应于插入节点后生成的新控制顶点,样条曲线在插入节点处的连续性将遭受损失。采用升阶方法,无论怎样移动升阶后生成的新控制顶点,样条曲线曲面的参数连续性都不会降低。重要的是,顺序连接若干条不同次B样条曲线时,必须使用升阶方法。B样条曲线的节点插入与升阶B样条基函数节点是参数轴上的分割点。包括均匀节点和非均匀节点。B样条基函数可以有各种各样的定义方式,但是公认的最容易理解的是德布尔考克斯公式deBoor-Cox递推定义。原理是,只要是k次多项式(k次的B样条基函数),即可构造一种递推的公式,由0次构造1次,1次构造2次,2次构造3次...依次类推。B样条曲线基函数⎩⎨⎧=+OtherwiseuxuxNiii01)(10,并约定:000=Ni,1(x)是0次多项式,0次多项式是常数。)()()(1,111,1,xNxxxxxNxxxxxNkiikikikiikiiki−++++−−+−−+−−=样条基函数构造为节点,上,取分割在区间Ba],[10bxxxban==LB样条曲线基函数上式中采用阶数给出(次数+1),k表示阶数,i为序号。Ni,k(u)的第一下标等于其支撑区间左端节点的下标,即表示该B样条在参数u轴上的位置。公式表明,欲确定第i个k次B样条Ni,k(u),需要用到ui,ui+1,…,ui+k共k+1个节点。同时称[ui,ui+k]为Ni,k(u)的支撑空间)()()(1,111,1,xNxxxxxNxxxxxNkiikikikiikiiki−++++−−+−−+−−=uuuuiiuui+1i+1uui+2i+2BBi,1i,1(u)(u)uuBBi,1i,1(u)(u)的图像的图像uuiiuui+1i+1uui+2i+2BBi,2i,2(u)(u)uuBBi,2i,2(u)(u)的图像的图像uuiiuui+1i+1uui+3i+3BBi,3i,3(u)(u)uui+2i+2BBi,3i,3(u)(u)的图像的图像(0次B样条-平台函数)(1次B样条-屋脊函数)(2次B样条-草帽函数)NNNNNN一次B样条Ni,2(u)可有两个0次B样条Ni,1(u)和Ni+1,1(u)递推得到,是它们的凸线性组合。再有两个一次B样条Ni,2(u)和Ni+1,2(u)递推得到二次B样条Ni,3(u)B样条曲线基函数B样条基函数Ni,k(u)是定义在一组节点向量上的基函数,不像伯恩斯坦基函数那样简单地只和u有关,而是在一个区间里面,和一组节点向量有关,节点向量不一样,基函数也不一样。deBoor-Cox的原理是,只要是k次的B样条基函数,构造一个递推的公式,由0次多项式(常数)的递推构造1次的,1次的递推构造2次的等等。每个Bi都有一个Ni,k(u)与之匹配,有n+1个Ni,k(u),曲线的次数是k-1次,问题是这条曲线的定义区间是什么?第二个问题是对n+1个顶点,k阶的B样条曲线需要多少个节点向量(ui)与之匹配?Bezier曲线的定义区间是[0,1]?B样条曲线基函数对于Ni,1(1阶0次基函数)来说,涉及ui到ui+1一个区间,即一阶的多项式涉及一个区间两个节点;对于Ni,2来说,由于Ni,2是由Ni,1和Ni+1,1组成的,因此Ni,2涉及2个区间3个节点;Ni,3涉及3个区间4个节点...,Ni,k涉及k个区间k+1个节点⎩⎨⎧=+OtherwiseuxuuNiii01)(11,)()()(1,111,1,uNuuuuuNuuuuuNkiikikikiikiiki−++++−−+−−+−−=knknnnkkuuuuuuuu+−++−,,,,,,,,,,11110LLLB样条曲线基函数以k=4,n=4为例},,,,,,,,{876543210uuuuuuuuuU=第一项是B0N0,4(u),涉及哪些节点?u0到u4第二项是B1N1,4(u),涉及哪些节点?u1到u5第五项是B4N4,4(u),涉及哪些节点?u4到u8节点矢量为:∑==nikiiuNBur0,)()(上图区间是u3到u5(从uk-1到un+1),B样条基函数严重依赖于节点向量的分布。阶数+顶点个数等于节点向量的个数。基函数的定义区间是多少?},,,,,,,,{876543210uuuuuuuuuU=区间要合法,区间里必须有足够的基函数与顶点配对。哪个区间是第一个开始有意义的区间呢?正好是B0B1B2B3,B0B1B2B3决定一段,B1B2B3B4在u4u5区间里有定义,B1B2B3B4决定一段,两端之间有三个顶点是一样的,这样就保证了两段拼接的效果非常好。分段的含义:上面的曲线被分成两段:u3u4,u4u5。如有5个顶点B0、B1、B2、B3、B4,B样条是一段段过渡过去,哪些基函数是在u3u4区间里有定义?B样条曲线基函数B样条曲线基函数ui是节点值,U=(u0,u1,…un+k)构成了k-1次B样条函数的节点矢量,其中的节点是非减序列,所生成的B样条曲线定义在从节点值uk-1到节点值un+1的区间上,而每个基函数定义在u的取值范围内的ui到ui+k的子区间上。由于每个控制点Bi仅与一个基函数Ni,k(u)作乘法,因此该控制点的改变仅影响ui到ui+k的子区间上的曲线形状。B样条基函数主要性质局部性:Bi,k(u)只在区间(ui,ui+k)取正值,在其它地方为零。u∈(ui,ui+k),Bi,k(u)0;u∈其它时,Bi,k(u)=0。反过来,对每一个区间(ui,ui+k),至多只有k个基函数在其上非零,它们是:Bi-k+1,k(u),Bi-k+2,k(u),…,Bi,k(u)。权性:∑Bi,k(u)≡1(i=0,1,2,…,n)连续性:Bi,k(u)在r重节点处至少为k-1-r次连续(Ck-1-r)。B样条曲线基函数线性无关性:Bi,k(u)(i=0,1,…,n)线性无关。分段多项式:Bi,k(u)在每个长度非零的区间[uj,uj+1)上都是次数不高于k-1的多项式,它在整个参数轴上是分段多项式。B样条曲线基函数
本文标题:第7讲-B样条曲线曲面
链接地址:https://www.777doc.com/doc-6182818 .html