第四章自由曲线与曲面(二)2Bezier曲线1962年,法国雷诺汽车公司P.E.Bezier工程师以“逼近”为基础UNISURF系统1972年雷诺汽车公司正式使用3Bezier曲线(1/19)Bezier基函数--Bernstein多项式的定义]1,0[,)1()(,tttCtBiniinni)!(!!ininCin0.40.60.810.20.40.60.81BEZ(u)0.80.20.60.41BEZ(u)BEZ(u)uu10.80.60.40.2BEZ(u)0.80.20.40.40.20.60.60.811u0.20.40.20.40.60.810.80.6u10.2三次Bézier曲线的四个混合函数4Bezier曲线(2/19)Bernstein基函数的性质正性权性对称性降阶公式升阶公式)1()(,,tBtBninni]1,0[,0)(,ttBni]1,0[,1)(0,ttBnini)()()1()(1,11,,ttBtBttBninini)(11)(1)(1,1,1,tBnintBinitBninini5Bezier曲线(3/19)导数积分最大值在t=i/n处取得最大值线性无关性是n次多项式空间的一组基11)(10,ntBnininitB0,)())()(()(1,1,1,ttBtBntBninini6Bezier曲线(4/19)Bezier曲线的定义n次多项式曲线P(t)称为n次Bezier曲线控制顶点控制多边形]1,0[)()(0,ttBPtPniniiP0P1P2P37Bezier曲线(5/19)Bezier曲线的性质端点位置这说明,Bezier曲线通过特征多边形的起点和终点.00|)(PtPtntPtP1|)(P0P1P2P3端点切矢量将伯恩斯坦式对t求导.8)()()1(!)1(!)!1()1(!)1()1()!1()!1()1)(()1()!(!!1,1,1)1()1()1(111',tBtBnttininnttininnttintitininBniniiniiniiininini在对曲线参数方程求导9niniiinnnnnnnininiitBPPntBPPtBPPtBPPntBtBPntP11,111,111,1121,0011,1,10')()()()()()()()()()()(10Bezier曲线(6/19)导数曲线)(|)(010PPntPt)(|)(11nntPPntP]1,0[)()()(11,11ttBPPntPniniiiP0P1P2P3一阶导矢:对于三次Bezier曲线,n=3,有P’(0)=3(P1-P0)P’(1)=3(P3-P2)它说明Bezier在始点和终点处的切线方向与特征多边形的第一条边和最后一条边的走向一致。二阶导矢:当t=0时当t=1时11)2)(1()1()2)(1()0()()2()1()(210122,2012nnnniniiiiiPPPnnPPPPnnPtBPPPPnntP二阶导失只与相邻的3个顶点有关。事实上,r阶导失只与r+1个相邻点有关,与更远点无关。1213Bezier曲线(7/19)对称性不是形状对称保持贝塞尔曲线全部控制点Pi的坐标位置不变,只是将控制点Pi的排序颠倒,曲线形状保持不变假如保持n次Bézier曲线诸顶点的位置不变,而把次序颠倒过来,即下标为i的点改为下标为n-i的点,则此时曲线仍不变,只不过曲线的走向相反而已。这一性质可证明如下:由伯恩斯坦多项式可以导出:记次序颠倒以后的顶点为,则有此时,设新的Bézier曲线为,则14)1()1()!(!!)(,,tBttinintBnininininiPPini,,2,1,0*)()()(,0,0**tBPtBPtQniniinninii*iP)(*tQ令n-i=k,则i=n-k,且i=0时,k=n及i=n,k=0,所以再将k换成i,则又因为所以)()(,0*tBPtQnknnkk)()(,0*tBPtQninnii)1()(,,tBtBninni)()1(,,tBtBninni)1()1()1()(0,,0*tQtBPtBPtQniniininii16Bezier曲线(8/19)凸包性点集的凸包包含这些点的最小凸集Bezier曲线位于其控制顶点的凸包之内2p3p0p1p17Bezier曲线(10/19)几何不变性曲线的形状仅与特征多边形各顶点的相邻位置有关,而与坐标系的选择无关。平面曲线的变差缩减性若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与曲线的交点个数不多于该直线与其特征多边形的交点个数。此性质反映了曲线比其特征多边形的波动要小,也就是说比特征多边形的折线更光顺。18Bezier曲线(11/19)二次Bezier曲线n=2,有3个控制点抛物线P0P2P1MP(0.5)P(1)P(0)19210200120122022102001022121)1()(]1,0[)(2)2()1(2)1()(PPPtttPtPtPPtPPPPtPttPttPi说明二次曲线为抛物线,其矩阵形式为20Bezier曲线(12/19)三次Bezier曲线n=3P0P1P2P3P(0)P(1)21Bezier曲线(13/19)三次Bezier曲线的矩阵表示PMTPPPPttttBtBtBtBPPPPtBPtPBiii3210233,33,23,13,03210303,10010033036313311)()()()(],,,[)()(22Bezier曲线(14/19)递推公式--DeCasteljau算法kninkPtPtkPPkikiiki,,1,0,,,2,1)1(0,111计算过程几何解释例。利用Bezier的定比分割方法绘制三次Bezier曲线。令u=0.5,并验证你的分割方法是正确的。设由P0,P1,P2,P3控制生成的一条三次Bezier曲线可在u=1/2处分段,分成的两端均为三次Bezier曲线,它们由各自的控制点控制。取P0P1的中点P4,P1P2的中点P5,P2P3的中点P6,P4P5的中点P7,P5P6的中点P8,P7P8的中点P9。则P4=(P0+P1)/2;P5=(P1+P2)/223P6=(P2+P3)/2;P7=(P4+P5)/2=P0/4+P1/2+P2/4;P8=(P5+P6)/2=P1/4+P2/2+P3/2;P9=(P7+P8)/2=P0/8+3P1/8+3P2/8+P3/8下面来说明P9在由P0、P1、P2、P3确定的三次Bezier曲线上,且为u=1/2时的P(1/2),这只需将u=1/2代入P(t).2493210321032103210238183838181838381000100330363133112141810001003303631331121212121PPPPPPPPPPPPPPPPPP接着我们还需证明,P(u)(0≤u≤1/2)即为点P0、P4、P7、P9控制生成的Bezier曲线,而P(u)(1/2≤u≤1)即为点P9、P8、P6、P3控制生成的Bezier曲线.设由P0、P4、P7、P9控制生成的Bezier曲线为:)10(10010033036313311)(9740231tPPPPttttP将P0、P4、P7、P9代入)10(1001003303631331121241381232343234381838381181838381412141212110010033036313311)(32100102102210233210210100231tPPPPtttPPPPPPPPPPtttPPPPPPPPPPttttP在曲线P(u)(0≤u≤1/2)中,令u=t/2,则得)10)(210()(1001003303631331121418121)(1321023tutPPPPPttttPuP同理可证通过上述的分割,我们获得折线P0P4P7P9P8P6P3它比折线P0P1P2P3更接近曲线,且P9在曲线上,继续对由P9分成的两段曲线作分割,除获得更接近曲线的折线外,另外还获得曲线上的两个点,分割次数越多,新的折线越逼近曲线。)10)(121(10010033036313311)(3689232tuPPPPttttPuP当达到某种精度时,我们可获得的折线近似地表达Bezier曲线。例:试根据下列给定的条件,分割作图画出有关曲线的形状示意图。已知:图(a)所示三次Bezier曲线的控制多边形,共有4个控制点P0P1P2P3;t=1/2P1P0P3P2P0P3P2P1BCA(a)例:计算以(30,0),(60,10),(80,30),(90,60),(90,90)为控制顶点的4次Bezier曲线在t=1/2处的值,并画出decasteljau三角形。由Bezier曲线函数表达式可得:decasteljau三角形:35Bezier曲线(15/19)曲线的拼接mimiitBEZPtP0,)()(njnijsBEZQsQ0,)()(为了表达复杂的曲线,通常采用分段设计,然后将各段曲线相互连接起来,并在结合处保持一定的连续条件,下面讨论两段曲线达到不同阶级和连续的条件。给定两条曲线P(t)和Q(t),相应控制点为Pi(i=0,1,…,n)和Qj(j=0,1,…,n),且令ai=Pi-Pi-1,bj=Qj-Qj-1,如图,现在讨论如何把两条曲线光滑地连接起来。根据前节内容可以知道:(1)使它们达到G0连续的充要条件是Pn=Q0(2)使它们达到G1连续的充要条件是Pn-1,Pn=Q0,Q1三点共线,即b1=an(0)(3)使它们达到G2连续的充要条件是在G1连续的条件下,满足方程将代入并整理,可以得到选择α和β的值,可以利用该式确定曲线段Q(t)的特征多边形顶点Q2,而顶点Q0、Q1已被G1连续条件所确定;要达到G2连续的话,只剩下顶点Q2可以自由选取。)1()1()0(Q2PP)(Q-Q、PQ、)1(、和)1(、)0(Q101n0nnPPPP221222122112QnnnPPnPn如果上式的两边都减去Pn,则等式右边可以表示为(Pn-Pn-1)和(Pn-1-Pn-2)的线性组合这表明Pn-2、Pn-1、Pn=Q0、Q1和Q2这5点共面。事实上,在接合点两条曲线段的曲率相等,主