第5章 CHAPTER 5 曲线曲面生成与设计 曲线曲面生成与设计是计算机图形学研究的重要内容之一。而曲线曲面设计源于20世纪六七十年代的飞机和汽车工业。 曲线曲面设计方法的要求: ①绘制的曲线与曲面具有唯一性; ②设计曲线与曲面的过程具有明确的几何意义,且操作方便; ③曲线与曲面具有几何不变性; ④曲线与曲面具有统一性,能统一表示各种形状及处理各种情况; ⑤具有局部修改性,局部修改不影响全局; ⑥易于实现光滑连接。 本章要点: 本章重点掌握Beziér曲线与曲面、B样条曲线与曲面的生成。了解非均匀有理B样条(NURBS)曲线与曲面的基本理论。 5.1曲线与曲面理论基础 5.1.1样条曲线简介 1. 样条定义 样条可以定义为由一组指定点集而生成的平滑曲线的柔韧带。例如,通过一组指定点生成平滑曲线那种柔韧的细竹条或细钢条。在计算机图形学中,样条曲线是指由多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续条件。样条曲线有插值样条和逼近样条两种不同的描述方法,每种方法都是一种带有特定边界条件的特殊多项式。 在样条曲线的生成过程中,首先给出一组坐标点位置,它们决定了曲线的大致形状和走势,称这些坐标点为控制点。当选取的多项式使每个控制点都在曲线上时,则所得曲线称为这组控制点的插值样条曲线,如图51所示。当多项式的选取使曲线不一定通过每个控制点时,所得曲线称为这组控制点的逼近样条曲线,如图52所示。 图51插值样条曲线 图52逼近样条曲线 (1) 凸包 凸包是包围一组控制点的凸多边形的边界。这个凸多边形使每个控制点要么在凸包的边界上,要么在凸包的内部。如图53所示,虚线绘出了包围控制点pi的凸包。凸包提供了曲线曲面与围绕控制点区域间的偏差度量,同时还保证了多项式光滑地沿控制点前进。 (2) 控制多边形 在生成逼近样条的过程中,连接控制点序列的折线很关键,它提醒设计人员控制点的次序。这一组连接控制点的折线称作该曲线的控制多边形,如图54所示。 图53曲线与其凸包 图54曲线与控制多边形 2. 连续性条件 1) 参数连续性 为了保证分段参数曲线从一段到另一段平滑过渡,可以在连接点处要求各种连续性条件。样条的每一部分以参数坐标函数的形式进行描述: x=x(u)y=y(u)z=z(u)u1≤u≤u2 可以通过测试曲线段连接处的参数导数来建立参数连续性。 (1) 0阶参数连续性,记作C0连续性,如图55(a)所示,是指曲线在该位置是连接的,至少没断开,即第一个曲线段在u1处的x,y,z值与第二个曲线段在u2处的x,y,z值相等。 (2) 1阶参数连续性,记作C1连续性,如图55(b)所示,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数(切线)。 (3) 2阶参数连续性,记作C2连续性,如图55(c)所示,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。 图55曲线段参数连续性 2) 几何连续性 (1) 0阶几何连续性,记作G0连续性,与0阶参数连续性的定义相同。 (2) 1阶几何连续性,记作G1连续性,指一阶导数在相邻段的交点处成比例,则相邻曲线段在交点处切向量的大小不一定相等。 (3) 2阶几何连续性,记作G2连续性,指相邻曲线段在交点处其一阶和二阶导数均成比例。G2连续性下,两个曲线段在交点处的曲率相等。 从定义可以看出,几何连续性是参数连续性的一种弱化测试。 3. 样条曲线的等式和矩阵描述 对于一条三维的n次参数多项式曲线,可以采用以t为参数的方程来描述: x(t)=x0+x1·t+…+xn·tn y(t)=y0+y1·t+…+yn·tn z(t)=z0+z1·t+…+zn·tn,t∈[0,1] 将方程写成矩阵乘积形式可得 P(t)=x(t)y(t)z(t)= x0x1…xn y0y1…yn z0z1…zn1ttn=CT,t∈[0,1] 其中,T是参数t的幂次列向量矩阵,C是(n+1)×3阶的系数矩阵。将已知的边界条件,如端点坐标以及端点处的一阶导数等,代入该矩阵方程,求得系数矩阵: C=GM 其中,G是包含样条形式的几何约束条件(边界条件)在内的(n+1)×3阶的矩阵,M是一个(n+1)×(n+1)阶矩阵,也称为基矩阵,它将几何约束值转化成多项式系数,并且提供了样条曲线的特征。基矩阵描述了一个样条表式,它对于从一个样条表示转换到另一个样条表示特别有用。 5.1.2三次样条 实际曲线设计的过程中通常采用三次样条表示,三次多项式方程是通过特定点且在连接处保持位置和斜率连续性的最低阶次的方程。给定n+1个控制点pk=(xk,yk,zk),k=0,1,2,…,n,可得到通过每个点的分段三次多项式曲线,由下面的方程组来描述: x(t)=x0+x1·t+x2·t2+x3·t3 y(t)=y0+y1·t+y2·t2+y3·t3 z(t)=z0+z1·t+z2·t2+z3·t3,t∈[0,1] 其中,t为参数。当t=0时,对应每段曲线段的起点; 当t=1时,对应每段曲线段的终点。对于n+1个控制点,一共要生成n条三次样条曲线段,每一段都需要求出多项式表示中的系数,这些系数可以通过在两段相邻曲线段的交点处设置足够的边界条件来获得。 常用的插值方法有: 自然三次样条插值和Hermite插值。 1. 自然三次样条插值 描述一个自然三次样条有n+1个控制点需要拟合,共有n个曲线段计4n个多项式系数待定,如图56所示。对于每个内部控制点(p0除外,共n-1个),各有4个边界条件,在该控制点两侧的两个曲线段在该点处有相同的1阶导数和2阶导数,且两个曲线段都通过该点,所以,共有4个边界条件。这样就给出了由4n个多项式系数组成的4n-4个方程。再加上由第一个控制点p0(曲线起点)和最后一个控制点pn(曲线终点)所得的,共4n-2个方程。对于4n个待定系数,还有两个条件才能列出满足需要的4n个方程。得到这两个方程有两个可行的方法,一是设p0和pn处的2阶导数为0; 二是增加两个虚控制点,它们各位于控制点序列的两端,定义为p-1和pn+1,如图57所示。两个虚拟控制点的设立使原有的n+1个控制点都变成了内控制点,自然可以获得4n个边界条件,列出4n个求解系数的方程。 图56n+1个控制点的分段连续三次样条插值 图57增加两个虚控制点的连续三次样条插值 自然三次样条插值有如下特点。 (1) 采用公式描述时,需要相邻曲线段在公共边界处有C2连续性。 (2) 对于具有n+1个控制点的自然三次样条有n+1个控制点需要拟合,共有n个曲线段计4n个多项式系数待定。 (3) 内控制点两侧的曲线段在控制点处具有相同的1阶导数和2阶导数,且均通过控制点,加上起点和终点共4n-2个方程,还需要两个条件。 ① 假定p0和pn处2阶导数为0。 ② 增加两个虚控制点,可保证n+1个点均为内控制点。 自然三次样条插值是一种有效的方法,但其中任何一个控制点的改动都会影响到整个曲线的形状,局部控制特性不好。 2. Hermite插值样条 由法国数学家查理斯·埃尔米特(Charles Hermite)给出的Hermite插值样条是一个给定每个控制点切线的分段三次多项式。它可以实现局部的调整,因为它的各个曲线段都仅取决于端点的约束。假定型值点Pk和Pk+1之间的曲线段为p(t),t∈[0,1],给定矢量Pk、Pk+1、Rk和Rk+1,则满足下列条件的三次参数曲线为三次Hermite样条曲线: p(0)=Pk,p(1)=Pk+1 p′(0)=Rk,p′(1)=Rk+1 如图58所示。 图58在控制点Pk和Pk+1之间的Hermite曲线段的参数点函数 p(t) 关于该曲线的矢量方程可写成 p(t)=at3+bt2+ct+d 其矩阵表达式为 p(t)=[t3t2t1] axayaz bxbybz cxcycz dxdydz=[t3t2t1]abcd=TC 代入边界条件得 p(0)p(1)p′(0)p′(1)=PKPK+1RKRK+1= 0001 1111 0010 3210C 对上式两边再同乘逆矩阵,得到 C=abcd= 0001 1111 0010 3210-1PkPk+1RkRk+1= 2-211 -33-2-1 0010 1000PkPk+1RkRk+1=MhGh 其中,Mh是Hermite矩阵,Gh是Hermite几何矢量。 因此,三次Hermite样条曲线的方程为 p(t)=TMhGh,t∈[0,1] TMh= t3t2t1 2-211 -33-2-1 0010 1000 令 H0(t)=2t3-3t2+1 H1(t)=-2t3+3t2 H2(t)=t3-2t2+t H3(t)=t3-t2 p(t)=PkH0(t)+Pk+1H1(t)+RkH2(t)+Rk+1H3(t) 多项式Hk(u)(k=0,1,2,3)为Hermite基函数,如图59所示。 图59Hermite基函数 5.2 Beziér曲线与曲面 Beziér曲线是法国雷诺汽车公司工程师P.E Beziér 于1962年以“逼近”为基础构造的一种参数曲线。由于Beziér曲线拥有许多较好的性质,且更容易实现,在许多图形系统和CAD系统得到广泛应用。 5.2.1Beziér曲线的定义 1. Beziér曲线的定义 Beziér曲线是能够在第一个和最后一个顶点之间进行插值的一个多项式混合函数。通常,对于有n+1个控制点的Beziér曲线段用参数方程表示如下: p(t)=∑ni=0PiBEZi,n(t)0≤t≤1 Beziér基函数——Bernstein多项式的定义为 BEZi,n(t)=Cinti(1-t)n-it∈[0,1] 其中: Cin=n!i!(n-i)! Beziér混合函数的递归定义形式为 BEZi,n(t)=(1-t)BEZi,n-1(t)+tBEZi-1,n-1(t)n>i≥1 这里: BEZi,i(t)=ti BEZ0,i(t)=(1-t)i Beziér曲线坐标的3个分量x,y,z的参数方程为 x(t)=∑ni=0xiBEZi,n(t) y(t)=∑ni=0yiBEZi,n(t) z(t)=∑ni=0ziBEZi,n(t) Beziér曲线控制点的个数与曲线形状直接相关。Beziér曲线多项式的次数要比控制点的个数少1。3个控制点生成抛物线(二次曲线),4个控制点生成三次曲线,但对某些控制点布局,得到了退化的Beziér多项式。 2. 基函数Bernstein多项式的性质 (1) 非负性: BEZi,n(t)≥0,t∈[0,1]。 (2) 权性: ∑ni=0BEZi,n(t)=1,t∈[0,1]。 (3) 对称性: BEZi,n(t)=BEZn-i,n(1-t),(i=0,1,2,…,n)。 (4) 导数: 对i=0,1,2,…,n,有BEZ′i,n(t)=n[BEZi-1,n-1(t)-BEZi,n-1(t)]。 (5) 积分: ∫10BEZi,n(t)=1n+1,(i=0,1,2,…,n)。 (6) 最大值: 在区间[0,1]内,BEZi,n(t)在t=i/n 处取得最大值。 (7) 线性无关性: 任何一个n次多项式都可表示成它们的线性组合,或者说{BEZi,n(t)}ni=0是n次多项式空间的一组基。 5.2.2Beziér曲线的性质 根据基函数Bernstein的性质,可推导出Beziér曲线具有下列性质。 1) 端点的性质 Beziér 曲线总是通过第一个和最后一个控制点,该曲线在两个端点处的边界条件是 p(t)t=0=P0 p(t)t=1=Pn Beziér曲线在端点处的一阶导数值可由控制点的坐标求出 p′(t)t=0=nP1-nP0 p′(t)t=1=nPn-nPn-1 Beziér曲线在起点处的切线位于前两个控制点的连线上,而终点处的切线位于最后两个控制点的连线上,即曲线起点和终点处的切线方向与起始折线段和终止折线段的切线方向一致。同样,Beziér曲线在端点处的二阶导数可以计算为 p″(t)t=0=n(n-1)[(P2-P1)-(P1-P0)] p″(t)t=1=n(n-1)[(Pn-2-Pn-1)-(Pn-1-Pn)] 例如,三次Beziér曲线段在起点和终点的二阶导数是 p″(t)t=0=6(P0-2P1+P2) p″(t)t=1=6(P1-2P2+P3) 利用该性质可将几个较低次数的Beziér曲线段相连接,构造成一条形状复杂的高次Beziér曲线。 2) 几何不变性和仿射不变性 曲线仅依赖于控制点而与坐标系的位置和方向无关,即曲线的形状在坐标系平移和旋转后不变。同时,对任意仿射变换A,有 A(p(t))=A∑ni=0PiBEZi,n(t)=∑ni=0A[Pi]BEZi,n(t) 即在仿射变换下,p(t)的形式不变。 3) 对称性 Beziér曲线对称性不是形状的对称,而是如果保留Beziér曲线全部控制点Pi的坐标位置不变,即保持控制多边形的顶点位置不变,仅把它们的顺序颠倒一下,将下标为i的控制点Pi改为下标为n-i的控制点Pn-i时,即新的控制多边形的顶点为P*i=Pn-i,则曲线保持不变,只是走向相反而已,其曲线路径描述如下: p*(t)=∑ni=0P*iBEZi,n(t) =∑ni=0Pn-iBEZi,n(t) =∑ni=0Pn-iBEZn-i,n(1-t) =∑ni=0PiBEZi,n(1-t) Beziér曲线的对称性表明其控制多边形的起点和终点具有相同的特性。 4) 凸包性 由于Beziér曲线的基函数Bernstein多项式总是正值,而且总和为1,即 ∑ni=0BEZi,n(t)=1,t∈[0,1] 所以,Beziér曲线各点均落在控制多边形各顶点构成的凸包中,这里的凸包指的是包含所有顶点的最小凸多边形。Beziér曲线的凸包性保证了曲线随控制点平稳前进而不会振荡。 5) 变差缩减性 如果Beziér曲线的特征多边形P1P2…Pn是一个平面图形,则平面内任意直线与曲线的交点个数不会多于该直线与其特征多边形的交点个数。此性质反映了Beziér曲线比特征多边形的波动还小,即Beziér曲线比特征多边形的折线更光顺。 5.2.3按不同次数给出Beziér曲线的描述 1. 一次Beziér曲线 当n=1时 ,有两个控制点P0和P,Beziér曲线是一个一次多项式: p(t)=∑1i=0PiBEZi,1(t)=(1-t)P0+tP1,0≤t≤1 可应用矩阵表示为 p(t)=t1-11 10P0P1,0≤t≤1 显然,一次Beziér曲线是连接起点P0和终点P1的直线段。 2. 二次Beziér曲线 当n=2时,有三个控制点P0、P1和P2,Beziér曲线是一个二次多项式: p(t)=∑2i=0PiBEZi,2(t)=(1-t)2P0+2t(1-t)P1+t2P2,0≤t≤1 可应用矩阵表示为 p(t)=t2t1 1-21 -220 100P0P1P2,0≤t≤1 显然,二次Beziér曲线对应一条起点为P0,终点为P2的抛物线,有 p(0)=P0,p(1)=P2,p′(0)=2(P1-P0),p′(1)=2(P2-P1) 当t=12时,有 p12=12·P1+12·(P0+P2) 由此可得,二次Beziér曲线在t=12处的点P12经过三角形P0 P1P2中边P0 P2上的中线P1的中点P′,如图510所示。 图510二次Beziér曲线 3. 三次Beziér曲线 当n=3时,有四个控制点P0、P1、P2和P3,Beziér曲线是一个三次多项式: p(t)=∑3i=0PiBEZi,3(t)=(1-t)3P0+3t(1-t2)P1+3t2(1-t)P2+t3P30≤t≤1 可应用矩阵表示为 p(t)= t3t2t1 -13-31 3-630 -3300 1000P0P1P2P3 其三次Beziér基函数为 BEZ0,3(t)=(1-t)3 BEZ1,3(t)=3(1-t)2 BEZ2,3(t)=3t2(1-t) BEZ3,3(t)=t3 图511给出了这4个三次Beziér基函数的形状。 图511三次Beziér曲线的4个基函数 5.2.4Beziér曲线的De Casteljau递推算法 计算Beziér曲线上的点,可用Beziér曲线方程,但使用De Casteljau提出的递推算法则要简单的多。如图512所示,设P0、P20、P2是一条抛物线上顺序3个不同的点。过P0和P2点的两切线交于P1点,在P20点的切线交 P0P1和P2P1于P10和P11,则如下比例成立: P0P10P10P1=P1P11P11P2=P10P20P20P11 这是抛物线的三切线定理。 图512Beziér曲线的De Casteljau递推算法 当P0,P2固定,引入参数t,令上述比值为t∶(1-t),即有 P10=(1-t)P0+tP1 P11=(1-t)P1+tP2 P20=(1-t)P10+tP11 t从0变到1,第一、二式就分别表示控制二边形的第一、二条边,它们是两条一次Beziér曲线。将一、二式代入第三式得 P20=(1-t)2P0+2t(1-t)P1+t2P2 当t从0变到1时,它表示了由3个顶点P0、P1、P2定义的一条二次Beziér曲线,并且表明二次Beziér曲线P20可被定义为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)确定的一次Beziér曲线的线性组合。以此类推,由4个控制点定义的三次Beziér曲线P30可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确定的两条二次Beziér曲线的线性组合; 而(n+1)个控制点Pi(i=0,1,2,…,n)定义的n次Beziér曲线Pn0可被定义为分别由前、后n个控制点定义的两条(n-1)次Beziér曲线的Pn-10和Pn-11线性组合: Pn0=(1-t)Pn-10+tPn-11,0≤t≤1 由此得到Beziér曲线的递推计算公式为 Pri= Pi,r=0 (1-t)·Pr-1i+t·Pr-1i+1,r=1,2,…,n; i=0,1,2,…,n-r 这就是De Casteljau递推算法,图513是n=3求解Pri的递推过程。 图513n=3时应用De Casteljau递推算法求解Pri的递推过程 5.2.5Beziér曲线的拼接 给定两条Beziér曲线P(t)和Q(t),相应控制点为Pi(i=0,1,2,…,n)和Qj(j=0,1,2,…,m),且令ai=Pi-Pi-1,bj=Qj-Qj-1,如图514所示。 图514Beziér曲线的拼接 现在把两条曲线连接起来,连接条件如下。 (1) 要使它们达到G0连续的充要条件: Pn=Q0。 (2) 要使它们达到G1连续的充要条件: Pn-1,Pn=Q0,Q1三点共线,即 b1=αan(α>0) (3) 要使它们达到G2连续的充要条件: 在G1连续的条件下,并满足方程Q″(0)=α2P″(1)+βP′(1)。 将Q″(0)、P″(1)和P′(1),Q0=Pn、Q1-Q2=α(Pn-Pn-1)代入并整理,可以得到 Q2=α2+2α+βn-1+1Pn-2α2+2α+βn-1Pn-1+α2Pn-2 选择α和β的值,可以利用该式确定曲线段Q(t)的特征多边形的顶点Q2,而顶点Q0、Q1已被G1连续条件确定。要达到G2连续的话,只剩下顶点Q2可以自由选取。 如果从上式的两边都减去Pn,则等式右边可以表示为(Pn-Pn-1)和(Pn-1-Pn-2)的线性组合: Q2-Pn=α2+2α+βn-1(Pn-Pn-1)-α2(Pn-1-Pn-2) 这表明Pn-2、Pn-1、Pn=Q0、Q1和Q2五点共面。事实上,在接合点两条曲线段的曲率相等,主法线方向一致,可以断定: Pn-2Q2位于直线Pn-1Q1的同一侧。 5.2.6反求Beziér曲线控制点的方法 若给定n+1个型值点Qi(i=0,1,2,…,n),为了构造一条通过这些型值点的n次Beziér曲线,需要反求出通过Qi的Beziér曲线的n+1个控制点Pi(i=0,1,2,…,n)。 由Beziér曲线定义可知,由n+1个控制点Pi(i=0,1,2,…,n)可生成n次Beziér曲线,即 p(t)=∑ni=0PiBEZi,n(t),0≤t≤1 =∑ni=0Cinti(1-t)n-iPi =C0n(1-t)nP0+C1nt(1-t)n-1P1+…+Cn-1ntn-1(1-t)Pn-1+CnntnPn 通常,可取参数t=i/n与型值点Qi对应,用于反求Pi(i=0,1,2,…,n)。 由于Qi=Pi(i/n),可得到关于Pi(i=0,1,2,…,n)的n+1个方程构成的线性方程组: Q0=P0  Qi=C0n(1-i/n)nP0+C1n(i/n)(1-i/n)n-1P1+…Cn-1n(i/n)n-1(1-i/n)Pn-1+Cnn(i/n)nPn  Qn=Pn 其中,i=0,1,2,…,n-1,由上述方程组可得Qi的Beziér曲线的n+1个控制点Pi(i=0,1,2,…,n)。分别列出上述方程组关于x(t),y(t),z(t)的n+1个方程式,则可解出n+1个控制点Pi的坐标值(xi,yi,zi)。 5.2.7Beziér曲面 在掌握Beziér曲线的基础上,可以较容易给出Beziér曲面的定义和性质。Beziér曲线的一些算法也可以扩展到Beziér曲面的生成。 1. Beziér曲面的定义 p(u,v)=∑mi=0∑nj=0Pi,jBEZi,m(u)BEZj,n(v)(u,v)∈[0,1]×[0,1] 其中,Pi,j为给定(m+1)×(n+1)个控制点的位置,所有的控制点形成一个空间的网格,称为控制网格或Beziér网格。 BEZi,m(u)与BEZj,n(v)是Bernstein基函数,定义为 BEZi,m(u)=Cim·ui·(1-u)m-i BEZj,n(v)=Cjn·vj·(1-v)n-j Beziér曲面的矩阵形式为 P(u,v)=BEZ0,n(u),BEZ1,n(u),…,BEZm,n(u) P0,0P0,1…P0,m P1,0P1,1…P1,m  Pn,0Pn,1…Pn,mBEZ0,m(v)BEZ1,m(v)BEZn,m(v) 在实际设计中,m与n小于或等于4,否则网格对于曲面的控制力将会减弱。 2. Beziér曲面的性质 除变差缩减性外,Beziér曲线的其他所有性质都可以推广到Beziér曲面。 (1) Beziér网格的4个角点正好是Beziér曲面的4个角点,即 p(0,0)=p0,0,p(0,1)=p0,n,p(1,0)=pm,0,p(1,1)=pm,n (2) 几何不变性和仿射不变性。 (3) 对称性。 (4) 凸包性。 3. 常见的Beziér曲面 1) 双线性Beziér曲面 当m=n=1时,形成双线性Beziér曲面。 双线性Beziér曲面的表达式为 p(u,v)=∑1i=0∑1j=0Pi,jBEZi,1(u)BEZj,1(v)(u,v)∈[0,1]×[0,1] 所以有 p(u,v)=(1-u)(1-v)P0,0+(1-u)vP0,1+u(1-v)P1,0+uvP1,1 双线性Beziér曲面的矩阵形式为 p(u,v)=p1(u)·(1-v)+p2(u)·v=p1(u)p2(u)1-vv =1-uuP0,0P0,1 P1,0P1,11-vv =u1-1110P0,0P0,1 P1,0P1,1-1110v1 2) 双二次Beziér曲面 当m=n=2时,形成双二次Beziér曲面。 双二次Beziér曲面的表达式为 p(u,v)=∑2i=0∑2j=0Pi,jBEZi,2(u)BEZj,2(v) (u,v)∈[0,1]×[0,1] 双二次Beziér曲面的矩阵形式为 p(u,v)=∑2i=0∑2j=0Pi,jBEZi,2(u)BEZj,2(v) = u2u1 1-21 -220 100 P0,0P0,1P0,2 P1,0P1,1P1,2 P2,0P2,1P2,2 1-21 -220 100v2v1 双二次Beziér曲面如图515所示。控制网格由9个控制点组成,其中P0,0、P0,2、P2,0、P2,2在曲面片的角点处。 3) 双三次 Beziér曲面 Beziér曲面中最重要的应用是双三次 Beziér曲面,即m=n=3。 双三次Beziér曲面的表达式为 p(u,v)=∑3i=0∑3j=0Pi,jBEZi,3(u)BEZj,3(v)(u,v)∈[0,1]×[0,1] 双三次Beziér曲面如图516所示,控制网格由16个控制点组成,其中P0,0、P0,3、P3,0、P3,3在曲面片的角点处,四周的12个控制点定义了4条Beziér曲线,即曲面片的边界曲线,中央4个控制点P1,1、P1,2、P2,1、P2,2与边界曲线无关,但也影响曲面的形状。 图515双二次Beziér曲面 图516双三次Beziér曲面 5.3B样条曲线与曲面 Gordon,Riesenfeld等对Beziér曲线理论进行了改进,他们用B样条基函数代替了Bernstein基函数,从而形成B样条曲线。B样条方法保留了Beziér方法的优点,克服了其由于整体表示带来的不具备局部性质的缺点。B样条曲线具有设计自由型曲线曲面的强大功能,被广泛应用于CAD系统和许多图形软件包中。 5.3.1B样条曲线的定义与性质 1. B样条曲线的定义 B样条曲线的定义为 p(t)=∑ni=0PiBEZi,k(t)tmin≤t≤tmax,2≤k≤n+1 其中,Pi(i=0,1,…,n)为n+1个控制顶点,又称为de Boor点。由控制顶点顺序连成的折线称为B样条控制多边形,简称控制多边形。k是B样条曲线的阶数,(k-1)称为次数,曲线连接点处有(k-1)次连续。参数t的选取取决于B样条节点矢量的选取。BEZi,k(t)是BEZ样条基函数,由Coxde Boor的递归公式定义为 BEZi,1(t)= 1,ti≤t