菅光宾数字媒体系7.1基本概念7.4Bezier曲线7.5Bezier曲面7.6B样条曲线7.7B样条曲面工业产品的几何形状大致可分为两类一类由初等解析曲面,如平面、圆柱面、圆锥面、球面、圆环面等组成,可以用初等解析函数完全清楚地表达全部形状。另一类由自由曲面组成,如汽车车身等的曲线和曲面,不能用初等解析函数完全清楚地表达全部形状,需要构造新的函数来进行研究,这些研究成果形成了计算机辅助几何设计(ComputerAidedGeometricDesign,CAGD)学科7.1.1样条曲线曲面在汽车制造厂里,传统上采用样条绘制曲线的形状。绘图员弯曲样条(如弹性细木条)通过各型值点,其它地方自然过渡,然后沿样条画下曲线,即得到样条曲线(SplineCurve)。在计算机图形学中,样条曲线是指由多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续性条件,而样条曲面则可用两组正交样条曲线来描述。7.1.2曲线曲面的表示形式曲线曲面的可以采用显式方程、隐函数方程和参数方程表示:直线的表示形式:已知直线的起点坐标P1(x1,y1)和终点坐标P2(x2,y2),直线的显式方程表示为:)(112121xxxxyyyy直线的隐函数方程表示为:直线的参数方程表示为:0)()(112121xxxxyyyyxftyyyytxxxx)()(121121由于用参数方程表示的曲线曲面可以直接进行几何变换,而且易于表示成矢量和矩阵,所以在计算机图形学中一般使用参数方程来描述曲线曲面。一条三次曲线的参数方程的矢量和矩阵表示:参数方程表示:zzzzyyyyxxxxdtctbtatzdtctbtatydtctbtatx232323)()()(,t∈〔0,1〕;矢量表示:dctbtattp23)(t∈〔0,1〕矩阵表示:dcbattttp1)(23t∈〔0,1〕几何形式对三次参数曲线,若用其端点位矢P(0)、P(1)和切矢P(0)、P(1)描述。将P(0)、P(1)、P(0)和P(1)简记为P0、P1、P0和P1,代入得]1,0[)(012233tatatatatP'10103'10'102'010022233PPPPaPPPPaPaPa令:可将其简化为:上式是三次Hermite(Ferguson)曲线的几何形式,几何系数是P0、P1、P0和P1。称为调和函数(或混合函数)1010,,,GGFF132)(230tttF23132)(tttFttttG2302)(231)(tttG]1,0[)('11'001100tPGPGPFPFtP7.1.3拟合和逼近曲线曲面的拟合:当用一组型值点(插值点)来指定曲线曲面的形状时,形状完全通过给定的型值点序列确定7.1.3拟合和逼近曲线曲面的逼近:当用一组控制点来指定曲线曲面的形状时,求出的形状不必通过控制点7.1.4连续性条件通常单一的曲线段或曲面片难以表达复杂的形状,必须将一些曲线段连接成组合曲线,或将一些曲面片连接成组合曲面,才能描述复杂的形状。为了保证在连接点处平滑过渡,需要满足连续性条件。连续性条件有两种:参数连续性和几何连续性。参数连续性零阶参数连续性,记作C0,指相邻两个曲线段在交点处具有相同的坐标。一阶参数连续性,记作C1,指相邻两个曲线段在交点处具有相同的一阶导数。二阶参数连续性,记作C2,指相邻两个曲线段在交点处具有相同的一阶和二阶导数。7.4Bezier曲线法国雷诺汽车公司的工程师Bezier和法国雪铁龙汽车公司的deCasteljau分别提出了一种新的参数曲线表示方法,称为Bezier曲线。7.4Bezier曲线Bezier的想法从一开始就面向几何而不是面向代数。Bezier曲线由控制多边形惟一定义,Bezier曲线只有第一个顶点和最后一个顶点落在控制多边形上7.4Bezier曲线多边形的第一条和最后一条边表示了曲线在起点和终点的切矢量方向,其它顶点则用于定义曲线的导数、阶次和形状曲线的形状趋近于控制多边形的形状,改变控制多边形的顶点位置就会改变曲线的形状。绘制Bezier曲线的直观交互性使得对设计对象的控制达到了直接的几何化程度,使用起来非常方便。几种典型的三次Bezier曲线7.4.1Bezier曲线的定义给定n+1个控制点Pi(i=0,1,2……n),称为n次Bezier曲线。)()(,0tBPtpniniit∈〔0,1〕Pi是n+1个控制点,是Bernstein基函数iniiniinnittinintBttC)1()!(!!)()1(,)(,tBni1.一次Bezier曲线当n=1时,Bezier曲线的控制多边形有二个控制点P0和P1,Bezier曲线是一次多项式。101,10Pt)(1)()(PttBPtpiii可以看出,一次Bezier曲线是一段直线2.二次Bezier曲线当n=2时,Bezier曲线的控制多边形有三个控制点P0、P1和P2,Bezier曲线是二次多项式。Pt)1(2Pt)(1)()(221022,20PtttBPtpiiiPt)22(P1)2t-(t221202Ptt可以证明,二次Bezier曲线是一段抛物线。3.三次Bezier曲线当n=3时,Bezier曲线的控制多边形有四个控制点P0、P1、P2和P3,Bezier曲线是三次多项式。PtPt)-(1t3)1(3Pt)(1)()(332212033,30PtttBPtpiiiPtP)3tt3()363(1)P3t-3tt(33223123023Pttt可以证明,三次Bezier曲线是自由曲线。注意:对于Bezier曲线,在区间〔0,1〕范围内,每个基函数均不为零,说明不能使用控制多边形对曲线的形状进行局部调整,如果要改变某一控制点位置,整个曲线都将受到影响。7.4.2Bezier曲线的性质1.端点性质在闭区间〔0,1〕内,将t=0和t=1代入式(7-12),得到p(0)=P0和p(1)=Pn。说明Bezier曲线的起点和终点分别位于顶点P0和Pn上。2.一阶导数将式(7-12)求导,有])1()()1([)(110'iniiniinniittinttiCPtp在闭区间〔0,1〕内,将t=0和t=1代入上式,得到)()0(01'PPnp)()1(1'nnPPnp3.凸包性质由公式(7-13)可以看出,在闭区间〔0,1〕内,,而且。说明Bezier曲线位于控制多边形构成的凸包之内。1)(0,ninitB0)1()(,iniinnittCtB7.4.3Bezier曲线的可分割性Bezier曲线的可分割性可用德卡斯特里奥(DeCasteliau)算法表达如下。给定空间n+1个点Pi(i=0,1,2n)及参数t,有)()()1()(111tPttPttPririri]1,0[;,1,0;,2,1trninr例如,当n=3时,有三次Bezier曲线递推如下:0,31,0,22,1,0,1iririr)()()1()()()()1()()()()1()(030212020111010010tPttPttPtPttPttPtPttPttP其中:规定:)()()1()()()()1()(121121111020tPttPttPtPttPttP)()()1()(212030tPttPttPiiPtP)(0根据该式可以绘制Bezier曲线,取t=0,t=1/3,t=2/3,t=1,点的运动轨迹形成Bezier曲线。图7-8绘制的是t=1/3的点。图7-9绘制的是t=2/3的点。7.5.1Bezier曲面的定义Bezier曲面是由Bezier曲线拓广而来,以两组正交的Bezier曲线控制点构造空间网格来生成曲面。m×n次Bezier曲面的定义如下:)()(),(m0i,,0,vBuBPvupnjminjji(u,v)∈〔0,1〕×〔0,1〕依次用线段连接点列Pi,j(i=0,1,…,m;j=0,1,…,n)中相邻两点所形成的空间网格称为控制网格,当m=3,n=3时由4×4=16个控制点构成控制网格,曲面称为双三次Bezier曲面7.5.2双三次Bezier曲面的定义双三次Bezier曲面定义如下:)()(),(30i3,3,30,vBuBPvupjijji(u,v)∈〔0,1〕×〔0,1〕7.6B样条曲线Bezier不足之处确定了控制多边形的顶点个数(n+1个),也就确定了曲线的次数(n次)控制多边形与曲线的逼近程度较差,次数越高,逼进程度越差曲线不能局部修改,修改某一控制点将影响到整条曲线,原因是Bernstein基函数在整个开区间(0,1)内均不为零7.6B样条曲线Gordon和Riesenfeld于1974年用B样条基函数代替了Bernstein基函数,构造了B样条曲线。比Bezier曲线更贴近控制多边形,曲线更光滑(很容易产生C2连续性),曲线的次数可根据需要指定增加了对曲线的局部修改功能,B样条曲线是分段组成的,所以控制多边形的顶点对曲线的控制灵活而直观。7.6.1B样条曲线的定义B样条曲线分为均匀B样条曲线和非均匀B样条曲线,本书只讨论均匀B样条曲线。给定n+1个控制点Pi(i=0,1,2,…,n),n次B样条曲线段的参数表达式为:niniitFPtp0,)()(式中为n次B样条基函数,其形式为:7.6.1B样条曲线的定义依次用线段连接控制点Pi(i=0,1,2,…,n)组成的多边形称为B样条曲线控制多边形。在工程实际中,二次B样条曲线和三次B样条曲线应用得较为广泛。7.6.2二次B样条曲线1.矩阵表示二次B样条曲线二次B样条曲线的分段参数表达式矩阵形式为:二次B样条曲线2.几何性质一阶导数为:以t=0,1,1/2代入二次B样条曲线2.几何性质二次B样条曲线一般情况下:曲线不经过控制点;起点只与前两个控制点有关,终点只与后两个控制点有关2.几何性质二次B样条曲线的起点p(0)位于P0P1边的中点处,且其切矢量P1-P0沿P0P1边的走向终点p(1)位于P1P2边的中点处,且其切矢量P2-P1沿P1P2边的走向P(1/2)正是P(0)、P1、P(1)这三点所构成的三角形的中线P1Pm的中点P0P1P2p’(1/2)p(0)p(1/2)p(1)Pm2.几何性质p(1/2)处的切线平行于两个端点的连线p(0)p(1)三个顶点P0P1P2确定一段二次B样条曲线,该段曲线是一段抛物线。一般情况下,B样条曲线不经过控制点,曲线起点只与前二个控制点有关,终点只与后二个控制点有关。P0P1P2p’(1/2)p(0)p(1/2)p(1)Pm7.6.3三次B样条曲线1.矩阵表示控制多边形有四个顶点P1,P2,P3,P4三次B样条曲线1.矩阵表示三次B样条曲线的分段表示为:三次B样条曲线1.几何性质求一阶导数和二阶导数三次B样条曲线以t=0,1代入三次B样条曲线以t=0,1代入2.几何性质曲线的起点p(0)位于△P0P1P2底边P0P2的中线上,且距P1点三分之一处。该点处的切矢量p’(0)平行于△P0P1P2的底边P0P2,且长度为其二分之一。该点处的二阶导数p”(0)沿着中线P1Pm方向,长度等于中线的两倍。P0P1P2p’(0)P”(0)P”(1)PmP3p’(1)p(0)p(1)2.几何性质曲线终点p(1)位于△P1P2P3底边P1P3的