B样条曲线定义和基本性质王莹莹2013年9月前言在我们工程中应用的拟合曲线,一般地说可以分为两种类型:一种是最终生成的曲线通过所有的给定型值点,比如抛物样条曲线和三次参数样条曲线等,这样的曲线适用于插值放样;另一种曲线是,它的最终结果并不一定通过给定的型值点,而只是比较好地接近这些点,这类曲线(或曲面)比较适合于外形设计。因为在外形设计中(比如汽车、船舶),初始给出的数据点往往并不精确;并有的地方在外观上考虑是主要的,因为不是功能的要求,所以为了美观而宁可放弃个别数据点。因此不须最终生成的曲线都通过这些数据点。另一方面,考虑到在进行外形设计时应易于实时局部修改,反映直观,以便于设计者交互操作。第一类曲线在这方面就不能适应。BézierCurves1962年,法国雷诺汽车公司的P.E.Bezier构造了一种以逼近为基础的参数曲线和曲面的设计方法,并用这种方法完成了一种称为UNISURF的曲线和曲面设计系统,1972年,该系统被投入了应用。Bezier方法将函数逼近同几何表示结合起来,使得设计师在计算机上就象使用作图工具一样得心应手。通过Bezier可以画出复杂形状的曲线,只要给出表示曲线大体走向的点,就可由这些点画出一个多边形,然后通过Bezier公式逼近这个多边形画出所要的曲线。其中的给出的描述曲线大体走向的点称为控制点,这些点连成的多边形称为控制多边形。Bezier曲线的形状是通过一组多边折线(特征多边形)的各顶点唯一地定义出来的。在这组顶点中:(1)只有第一个顶点和最后一个顶点在曲线上;(2)其余的顶点则用于定义曲线的导数、阶次和形状;(3)第一条边和最后一条边则表示了曲线在两端点处的切线方向。一、Bézier曲线的定义和性质1.定义给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则Bézier曲线可定义为:其中,Pi(i=0,1,…,n)构成该Bézier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数:其中,00=1,0!=1。控制顶点特征多边形(t),BPP(t)ni,n0ii0,1tn)0,1,...,(i,t)(1ti!i)!(nn!t)(1tC(t)Biniiniinni,图8-5Bezier曲线的例子BézierCurves2.Bernstein基函数的性质1)n,1,2,i(0,1),(t0(t)Bni,1t0t)(1tC(t)Biniinni,(1)正性(2)端点性质Bi,n(0)=Bi,n(1)=1,i=00,i≠01,i=n0,i≠n在Bernstein基函数曲线的次数。由排列组合和导数运算规律可以推导出Bernstein基函数的如下性质:中,n为基本2.Bernstein基函数的性质0,1t1(t)Bn0ini,,n0in0ininiinni,1t]t)[(1t)(1tC(t)B(3)权性由二项式定理可知:(4)对称性:t)(1B(t)Bni,nni,(t)Bt)(1tCt)(1t)](1[1Ct)(1Bni,iniinini)(nninnni,n因为2.Bernstein基函数的性质n0,1,...,itBtBntB'1ni,1n1,ini,(5)递推性(6)导函数:(7)最大值0,1,2...nitBtBt1tB1n1,i1ni,ni,即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成。Bi,n(t)在t=i/n处达到最大值。3.Bézier曲线的性质(1)端点性质曲线端点位置矢量由Bernstein基函数的端点性质可以推得:当t=0时,P(0)=P0;当t=1时,P(1)=Pn;由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。3.Bézier曲线的性质1n0i1ni,1n1,ii'(t)]B(t)[BPn(t)P(1)端点性质切矢量因为:所以:当t=0时,P(0)=n(P1–P0);当t=1时,P(1)=n(Pn–Pn-1);说明,Bezier曲线起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致。3.Bézier曲线的性质n0in0ini,inni,*i(t)BP(t)BP(t)*P0,1,...ni,PPin*i(2)对称性由控制顶点构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反。因为:n0ini,in0ini,nint)(1BPt)(1BP0,1t,t)P(13.Bézier曲线的性质)0,1,...nt,1t(01(t)B0ni,(3)凸包性由于并且说明当t在[0,1]区间变化时,对某一个t值,P(t)是特征多边形各顶点的加权平均,权因子依次是Bi,n(t)。在几何图形上,意味着Bezier曲线P(t)在中各点是控制点Pi的凸线性组合,即曲线落在Pi构成的凸包之中。0,1t1(t)Bn0ini,,0,1t图3.1.9Bezier曲线的凸包性凸包(c)3.Bézier曲线的性质(4)几何不变性指某些几何特性不随坐标变换而变化的特性。Bezier曲线位置与形状与其特征多边形顶点Pi(i=0,1,…n)的位置有关,它不依赖坐标系的选择。n0ini,in0ini,i)a-ba-u(BP(t)BP(参变量u是t的置换)3.Bézier曲线的性质(5)变差缩减性若Bezier曲线的特征多边形P0P1…Pn是一个平面图形,则平面内任意直线与P(t)的交点个数不多于该直线与其特征多边形的交点个数。此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。在一个位置上增加多个控制点将增加这个点的权值,将Bézier曲线推向这个点.4.Bézier曲线及其控制多边形的几何形状Bézier曲线的性质如果只有一个控制点P0,例如:n=0那么,对于所有的t有P(t)=P0如果只有两个控制点P0和P1,例如:n=1那么公式简化为在两个控制点之间的一条直线段.3个控制点形成一条抛物线,4个控制点是一条三次曲线,等等.二、B样条曲线的定义和性质1.B样条曲线的引入Bezier曲线是通过逼近特征多边形而获得曲线的,存在的不足是:1)缺乏局部修改性,即改变某一控制点对整个曲线都有影响.2)n较大时,特征多边形的边数较多,对曲线的控制减弱。3)幂次过高难于修改。(而在外形设计中,局部修改是随时要进行的)1)逼近特征多边形的精度更高.2)多边形的边数与基函数的次数无关。3)具有局部修改性.1972年,Riesenfeld等提出了B样条曲线。用B样条基函数代替Bernstein基函数;2.B样条定义(t)NPP(t)ki,n0ii设有控制顶点P0,P1,…,Pn,则k阶(k-1次)B样条曲线的数学表达式为:其中Ni,k(t)是k-1次B样条曲线的基函数,也称B样条分段混合函数,其中每一个称为B样条。B样条基函数是一个称为节点矢量的非递减的参数t的序列所决定的k阶分段多项式,也即为k阶(k-1次)多项式样条。2.B样条定义deBoor-Cox(德布尔—考克斯)递推定义:1ii1iii,1tttt0ttt1(t)N或,k=12k(t),Ntttt(t)Ntttt(t)N1k1,i1ikiki1ki,i1kiiki,约定:000该递推公式表明:欲确定第i个k阶B样条Ni,k(t),需要用ti,ti+1,…ti+k共k+1个节点,称区间[ti,ti+k]为Ni,k(t)的支撑区间。曲线方程中,n+1个控制顶点Pi(i=0,1,…n)要用到n+1个k阶B样条基Ni,k(t)。支撑区间的并集定义了这一组B样条基的节点矢量T=[t0,t1,…tn+k]。OtherwisettttNiii01)(11,)()()(1,111,1,tNtttttNtttttNkiikikikiikiiki000knknnnkkttttttttand,,,,,,,,,,111103.B样条的性质(1)局部支撑性(2)权性(3)微分公式]t,[tt0,(t)N]t,[tt0,(t)Nkiiki,kiiki,n0i1n1kki,]t,[tt1(t)N(t)Ntt1k-(t)Ntt1k(t)N1k1,i1iki1ki,i1kiki,4.B样条曲线类型的划分假定控制多边形的顶点为Pi(i=0,1…,n),阶数为k(次数为k-1),则节点矢量是T=[t0,t1,…,tn+k]。B样条曲线按其节点矢量中节点的分布情况,可划分为4种类型:均匀B样条曲线节点矢量中节点为沿参数轴均匀或等距分布,所有节点区间长度Δi=ti+1-ti=常数0(i=0,1,…n+k-1)。这样的节点矢量定义了均匀的B样条基。例如:T=(0,1,2,3,4,5,6,7)图3.1.23三次均匀的B样条曲线4.B样条曲线类型的划分准均匀B样条曲线与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有保留Bezier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线解决了这个问题。例如:T=(0,0,0,1,2,3,4,5,6,7,7,7)图3.1.24准均匀三次B样条曲线4.B样条曲线类型的划分分段Bezier曲线节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。B样条曲线用分段Bezier曲线表示后,各曲线段就具有了相对的独立性,移动曲线段内的一个控制顶点只影响该曲线段的形状,对其它曲线段的形状没有影响。例如:T=(0,0,0,1,1,2,2,3,3,4,4,4)图3.1.25三次分段Bezier曲线4.B样条曲线类型的划分非均匀Bezier曲线任意分布的节点矢量T=[t0,t1,…,tn+k],只要在数学上成立(节点序列非递减,两端节点重复度≤k,内节点重复度≤k-1)都可选取。这样的节点矢量定义了非均匀B样条基。例如:T=(0,0,2,2,3,5,8,11,16)三、B样条曲线的性质1.局部性(比Bézier曲线优点)]t,[tt1iik阶B样条曲线上参数为的一点P(t)至多与k个控制顶点Pj(j=i-k+1,…i)有关,与其它控制顶点无关;移动该曲线的第i个控制顶点Pi至多影响到定义在区间(ti,ti+k)上那部分曲线的形状,对曲线的其余部分不发生影响。图8-16B样条曲线的局部支柱性P0P1P2P3P″4P5P6P7P4P′4一段由K个连续控制点组成;一个控制点参与K段(ti,ti+k)曲线构造。]t,[tt1ii2.凸包性ni1kk阶P(t)在区间(ti,ti+1),上的部分位于k个点Pi-k+1…,Pi的凸包内,整条曲线则位于各凸包Ci的并集之内。3.分段参数多项式分段参数多项式P(t)在每一区间上都是次数不高于k-1的参数t的多项式。4.变差缩减性设平面内n+1个控制顶点构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数。5.几何不变性B样条曲线的形状和位置与坐标系的选择无关。6.造型的灵活性用B样条曲线可以构造直线段、尖点、切线等特殊情况。对于4阶(3次)的B样条曲线P(t)若要在其中得到一条直线段,只要Pi,Pi+1,Pi+2,Pi+34点位于一条直线上。为了使P(t)能过P(i)点,只要使Pi,Pi+1,Pi+2重合。尖点也可通过三重节点的方法得到。为了使曲线和某一直线L相切,只要取Pi,Pi+1,Pi+2位于L上