1、第20讲 Bezier曲线,济南大学信息学院,回 顾-曲线的表示形式,曲线的表示形式非参数表示显式表示隐式表示,回 顾-曲线的表示形式,参数曲线的矢量表示形式,参数曲线的规范化表示形式,区间a,b规范化为0,1,参数表示,回顾连续性条件,参数连续性称曲线P = P(t)在 处n阶参数连续,如果它在 处n阶左右导数存在,并且满足记号,传统的、严格的连续性,回顾连续性条件,几何连续性只需限定两个曲线段在交点处的参数导数成比例,而不必完全相等记号直观的、易于交互控制的连续性,内容提要,Bezier 曲线的提出Bezier 曲线的应用Bezier 曲线的定义Bernstein基函数的性质Bezier曲
2、线的性质Bezier曲线生成总结Bezier曲线优点和缺点,Bezier曲线提出,提出:Bezier在1962年提出优点: 输入的控制点与生成曲线之间的关系明确; 能方便地改变曲线的形状和阶次。,计算机辅助设计与制造(CAD/CAM) 飞机、汽车、船舶外形的设计 CATIA波音 宝马 奔驰 克莱斯勒 水泵叶轮和齿轮等机械零件的设计,Bezier曲线应用,Bezier曲线应用,桥梁建筑物以及日用品的设计,曲线字形轮廓描述 地图图形管理系统 真实感图形的绘制,Bezier曲线应用,还有那些应用?,Bezier曲线的定义,Bezier曲线是参数多项式曲线,它由一组控制多边形的顶点唯一的确定。,控制多
3、边形各顶点,只有第一个和最后一个在曲线上,其它顶点,用于控制曲线的阶次和形状。,改变顶点的位置就会改变曲线的形状(便于修改),增加顶点,则增加了曲线段的阶次(灵活),Bezier曲线的定义,控制点对曲线形状的修改,Bezier曲线是面向几何的,充分发挥人的主观能动性和创造性,通过直观交互使人对设计对象的控制达到直接的几何化程度。,Bezier曲线的定义,控制点对曲线阶次的修改,Bezier曲线的定义,一次Bezier曲线,二次Bezier曲线,Bezier曲线的定义,三次Bezier曲线,P(t)= B0,3(t)P0 + B1,3(t)P1+ B2,3(t)P2B3,3(t)P3,其中 B0
4、,3(t)(1-t)3 B1,3(t)3t(1-t)2 B2,3(t)3t2(1-t) B3,3(t)t3,Bezier曲线的定义,Bernstein基函数的性质(一),非负性,0!=1,00=1。,端点的性质,Bernstein基函数的性质(二),对称性,推导:,Bernstein基函数的性质(三),权性,递推性,Bernstein基函数的性质(四),导函数,Bezier曲线的性质(一),端点性质 曲线的起点和终点同控制多边形的起点和终点重合,当 t1 时,对Bernstein多项式只有kn 的项为1,其它项均为0,将t0代入Bezier曲线表达式:,Bezier曲线的性质(二),Bezie
5、r曲线中对t求一阶导数:,一阶导数,Bezier曲线的性质(二),在起始点t0, B0,n-1(0)1,其余项均为0,故有: C(0)n(P1P0)在终止点t1, Bn-1,n-1(1)1,其余项均为0,故有: C(1)= n(PnPn-1),即Bezier曲线在端点处的一阶导数只同相近的两个控制点有关,其方向相同于两点的连线方向。,Bezier曲线中对参数t求二阶导数可得:,Bezier曲线的性质(三),在起始点t0处的二阶导数为: C”(0)n(n1)(P22P1P0)在终止点t1处的二阶导数为: C”(1)n(n1)(Pn2Pn-1Pn-2),即Bezier曲线在端点处的二阶导数只同相近
6、的三个控制点有关。,二阶导数,Bezier曲线的性质(四),凸包性 Bezier曲线各点均落在控制多边形各顶点构成的凸包之中,这里凸包是指包含所有顶点的最小凸多边形。 当特征多边形为凸时,Bezier曲线也是凸的;当特征多边形有凹有凸时,其曲线的凸凹形状与之对应。Bezier曲线的凸包性质保证了多项式曲线随控制点平稳前进而不会振荡。变差缩减性 如果Bezier曲线的控制多边形是一平面图形,则该平面内的任意直线和Bezier曲线的交点个数不多于该直线与控制多边形的交点个数。,Bezier曲线生成,如何绘制一段Bezier曲线?,1 确定曲线的阶次,2 计算Bernstein基函数的表达式,B0,
7、3(t)(1-t)3 ; B1,3(t)3t(1-t)2 ; B2,3(t)3t2(1-t) ; B3,3(t)t3,3 把Bezier曲线中的Pk写成分量坐标的形式,4 确定一合适的步长;控制t从0到1变化,求出一系列(x,y)坐标点;将其用小线段顺序连接起来。,Bezier曲线生成,算法描述:对于二维平面的情况,只有x,y坐标分量,可以给出四点三次Bezier曲线如下的算法描述:输入:阶次,3; 控制顶点:4个,(x0,y0),(x3,y3) begin x=x0 y=y0 moveto (x,y) for t0 to 1 step t xB0,3(t)x0B1,3(t)x1B2,3(t)
8、x2B3,3(t)x3 yB0,3(t)y0B1,3(t)y1B2,3(t)y2B3,3(t)y3 lineto (x,y) endfor end,为什么呢?,三次Bezier曲线例子: 设在平面上给定的7个控制点坐标分别为:A(100,300),B(120,200),C(220,200),D(270,100),E(370,100), F(420,200),G(420,300)。画出其曲线。,Bezier曲线生成,Bezier曲线生成,德卡斯特里奥算法,当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线。并且表明:这二次Bezier曲线P02可以定义为分别由前
9、两个顶点(P0,P1)和后两个顶点(P1,P2)决定的一次Bezier曲线的线性组合。,依次类推,由四个控制点定义的三次Bezier曲线P03可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确定的二条二次Bezier曲线的线性组合; 由(n+1)个控制点Pi(i=0,1,.,n)定义的n次Bezier曲线P0n可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线P0n-1与P1n-1的线性组合:,由此得到Bezier曲线的递推计算公式,Bezier曲线生成,Bezier曲线的光滑连接,例子:设有两段三次Bezier曲线,其中一段曲线由控制点P0、P1、P2、P3生成
10、,另一条曲线由控制点Q0、Q1、Q2、Q3生成,P3(Q0)是两段曲线的公共控制点。如果两段曲线要达到光滑连接,需要一阶参数连续,甚至二阶参数连续。,对于一阶导数连续,第一段曲线终点处的导数为: P(1)3(P3P2) 第二段曲线起点处的导数为: Q(0)3(Q1Q0),P3P2Q1Q0,Bezier曲线生成,两段Bezier曲线光滑连接的示意图,二阶导数连续,第一段曲线终点处的二阶导数为: P”(1)6(P32P2P1)第二段曲线起点处的二阶导数为: Q”(0)6(Q22Q1Q0) 要达到二阶导数连续 P32P2P1Q22Q1Q0整理后可得: Q2-P12(Q1-P2),Bezier曲线生成,总 结,是一种以逼近方法为基础的参数曲线方法,设计者能够方便地通过控制、修改多边形顶点的位置和个数,来改变曲线的形状和阶次,可以从多边形的形状来预测将要产生的曲线形状,当控制点数较大时,特征多边形对曲线控制减弱,光滑连接所需要的条件要求比较高,抓紧时间 复习备考,作业P249: 8.9,