您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > chapter3-2_2006
清华大学计算机图形学3.2Bezier曲线与曲面清华大学计算机图形学由于几何外形设计的要求越来越高,传统的曲线曲面表示方法,已不能满足用户的需求。1962年,法国雷诺汽车公司的P.E.Bezier构造了一种以逼近为基础的参数曲线和曲面的设计方法,并用这种方法完成了一种称为UNISURF的曲线和曲面设计系统,1972年,该系统被投入了应用。清华大学计算机图形学•Bezier方法将函数逼近同几何表示结合起来,使得设计师在计算机上就象使用作图工具一样得心应手。•典故日本的穗板:天上掉下来为边向量ttdtdititfAtftVniiininiini1)1()!1()(,0,1)()()(111,0,iA清华大学计算机图形学–剑桥的Forest–常庚哲:中国的Bezier,曲面凸性–梁友栋:几何连续的浙大学派,梁叶郑马–纪念Bezier的CAGD专辑清华大学计算机图形学0P1P2P3P图3.1.8三次Bezier曲线0P1P2P3P清华大学计算机图形学•课件演示:Bezier曲线清华大学计算机图形学3.2.1Bezier曲线的定义和性质1.定义给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n)则Bezier曲线可定义为:清华大学计算机图形学其中,Pi构成该Bezier曲线的特征多边形,Bi,n(t)是n次Bernstein基函数:00=1,0!=1清华大学计算机图形学2.Betnstein基函数的性质(1)非负性(2)端点性质,00,1()0(0,1),1,2,,1;intBttin清华大学计算机图形学(3)权性由二项式定理可知:,0()1(0,1)niniBttninininiinnittttCtB00,1])1[()1()(清华大学计算机图形学(4)对称性因为,,(1)()inninBtBt)1()1()1()]1(1[)(,)(,tBttCttCtBniiniinininninnnin清华大学计算机图形学(5)递推性。即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成。因为),...,1,0(),()()1()(1,11,,nittBtBttBninini)()()1()1()1()1()1()()1()(1,11,)1()1(111)1(1111,ttBtBttttCttCtttCCttCtBniniiniininiininiinininiinni清华大学计算机图形学(6)导函数(7)最大值在处达到最大值;,,1,0)],()([)(1,1,1,nitBtBntBnininiBtin,()tin清华大学计算机图形学(8)升阶公式)(11)()11()()(11)()()11()()1(1,11,,1,1,1,,tBnitBnitBtBnittBtBnitBtninininininini清华大学计算机图形学(9)积分10,11)(ntBni清华大学计算机图形学3.Bezier曲线的性质(1)端点性质a)曲线端点位置矢量由Bernstein基函数的端点性质可以推得,当t=0时,P(0)=P0;当t=1时,P(1)=Pn。由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。清华大学计算机图形学b)切矢量因为,所以当t=0时,P’(0)=n(P1-P0),当t=1时,P’(1)=n(Pn-Pn-1),这说明Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致。101,1,1')]()([)(nininiitBtBPntP清华大学计算机图形学c)二阶导矢当t=0时,当t=1时,上式表明:2阶导矢只与相邻的3个顶点有关。事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关。将、及、代入曲率公式,可以得到Bezier曲线在端点的曲率分别为:)()2()1()(2,1202tBPPPnntPniiinii)2)(1()0(012PPPnnP)2)(1()1(21nnnPPPnnP)0('P)0(P)1('P)1(P3'')()()()(tPtPtPtk3011201)()(1)0(PPPPPPnnk31121)()(1)1(nnnnnnPPPPPPnnk清华大学计算机图形学d)K阶导函数的差分表示n次Bezier曲线的k阶导数可用差分公式为:其中高阶向前差分矢量由低阶向前差分矢量递推地定义:例如:]1,0[)()!(!)(0,ttBPknntPknikniikkikikikPPP111iiPP0iiiiiPPPPP10101iiiiiiPPPPPP1211122清华大学计算机图形学(2)对称性由控制顶点构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反。因为:这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质。),,...,1,0(,*niPPinininininiininininniinniittBPtBPtBPtBPtC000,0,,,*]1,0[),1()1()()()(*清华大学计算机图形学(3)凸包性由于,且,这一结果说明当t在[0,1]区间变化时,对某一个t值,P(t)是特征多边形各顶点的加权平均,权因子依次是。在几何图形上,意味着Bezier曲线P(t)在中各点是控制点Pi的凸线性组合,即曲线落在Pi构成的凸包之中,如图3.1.9所示。ninitB0,1)(),,1,0,10(1)(0,nittBni)(,tBni]1,0[t图3.1.9Bezier曲线的凸包性凸包清华大学计算机图形学(4)几何不变性这是指某些几何特性不随坐标变换而变化的特性。Bezier曲线位置与形状与其特征多边形顶点的位置有关,它不依赖坐标系的选择。),,1,0(niPi清华大学计算机图形学(5)变差缩减性若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与C(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质。此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。nPPP10清华大学计算机图形学(6)仿射不变性对于任意的仿射变换A:即在仿射变换下,的形式不变。)(][)()](([,0,tBPAtBPAtPAniininii清华大学计算机图形学3.2.2Bezier曲线的递推(deCasteljau)算法计算Bezier曲线上的点,可用Bezier曲线方程,但使用deCasteljau提出的递推算法则要简单的多。如下图所示,设、、是一条抛物线上顺序三个不同的点。过和点的两切线交于点,在点的切线交和于和,则如下比例成立:这是所谓抛物线的三切线定理。(示意图见下页)0P20P2P0P2P1P20P0P1P2P1P10P11P11202010211111110100PPPPPPPPPPPP清华大学计算机图形学0P1P2P11P10P20PBezier曲线上的点图3.1.10抛物线三切线定理清华大学计算机图形学当P0,P2固定,引入参数t,令上述比值为t:(1-t),即有:t从0变到1,第一、二式就分别表示控制二边形的第一、二条边,它们是两条一次Bezier曲线。将一、二式代入第三式得:11102021111010)1()1()1(tPPtPtPPtPtPPtP2210220)1(2)1(PtPttPtP清华大学计算机图形学当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线。并且表明:这二次Bezier曲线P02可以定义为分别由前两个顶点(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的线性组合:清华大学计算机图形学]1,0[)1(11100ttPPtPnnnnP0由此得到Bezier曲线的递推计算公式:这便是著名的deCasteljau算法。用这一递推公式,在给定参数下,求Bezier曲线上一点P(t)非常有效。上式中:是定义Bezier曲线的控制点,即为曲线上具有参数t的点。deCasteljau算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法。kninktPPtkPPkikiiki,...,1,0,,...,2,1)1(0111)(tP清华大学计算机图形学当n=3时,decasteljau算法递推出的Pki呈直角三角形,对应结果如图3.1.11所示。从左向右递推,最右边点P30即为曲线上的点。清华大学计算机图形学0P1P2P3P10P11P12P20P21P30P图3.1.11n=3时niP的递推关系清华大学计算机图形学这一算法可用简单的几何作图来实现。给定参数,就把定义域分成长度为的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是由第一级递推生成的中间顶点,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点。重复进行下去,直到n级递推得到一个中间顶点即为所求曲线上的点,如图3.1.12所示。]1,0[t)1(:tt)1,,1,0(1niPi)2,,1,0(2niPinP0)(tP清华大学计算机图形学)3/1(30PP011/3图3.1.12几何作图法求Bezier曲线上一点(n=3,t=1/4)0P1P2P3P10P11P12P20P21P清华大学计算机图形学•DeCasteljau算法演示清华大学计算机图形学3.2.3Bezier曲线的拼接几何设计中,一条Bezier曲线往往难以描述复杂的曲线形状。这是由于增加由于特征多边形的顶点数,会引起Bezier曲线次数的提高,而高次多项式又会带来计算上的困难,实际使用中,一般不超过10次。所以有时采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的连续条件。下面讨论两段Bezier曲线达到不同阶几何连续的条件。清华大学计算机图形学给定两条Bezier曲线P(t)和Q(t),相应控制点为Pi(i=0,1,...,n)和Qj(j=0,1,...,m),且令,如图3.1.13所示,我们现在把两条曲线连接起来。图3.1.13Bezier曲线的拼接11,jjjiiiQQbPPab1Pn-2Pn-2Pn-1P(t)an-1anPnQ0Q1b2Q2Q(t)清华大学计算机图形学(1)要使它们达到G0连续的充要条件是:Pn=Q0;(2)要使它们达到G1连续的充要条件是:Pn-1,Pn=Q,Q1三点共线,即:(3)要使它们达到G2连续的充要条件是:在G1连续的条件下,并满足方程。我们将、和,、代入,并整理,可以得到:选择和的值,可以利用该式确定曲线段的特征多边形顶点,而顶点、已被连续条件所确定。要达到连续的话,只剩下顶点可以自由选取。)0(1nab)1()1()0('2PPQ)0(Q)1(P)1('PnPQ0)(121nnPPQQ22
本文标题:chapter3-2_2006
链接地址:https://www.777doc.com/doc-2905437 .html