第5章 曲线和曲面 几何造型技术是一项研究在计算机中,如何表达物体模型形状的技术。在航空航天、汽车、造船、机械、建筑和电子等行业得到了广泛的应用。 拟合曲线可分为两种类型:曲线过所有的给定型值点(插值放样);另一种曲线是,并不一定通过给定的型值点,而只是比较好地接近这些点(逼近)。这类曲线(或曲面)比较适合于外形设计。
工业产品的几何形状: 曲线曲面数学描述的发展 初等解析曲面 复杂方式自由变化的曲线曲面 弗格森双三次曲面片, 孔斯双三次曲面片 弗格森双三次曲面片, 孔斯双三次曲面片 样条方法, Bezier方法, B样条方法 有理Bezier, 非均匀有理B样条方法
5.1曲线曲面基础 曲线曲面的表示要求 1.唯一性 2.几何不变性 3.易于定界 4.统一性 5.易于实现光滑连接 6.几何直观
5.1.1 曲线曲面的参数表示 曲线和曲面的表示分为参数表示和非参数表示两种,非参数表示又分为显式表示和隐式表示。 显式表示一般形式是:y=f(x)。 隐式表示:f(x,y)=0 . 非参数方程的缺点是:与坐标轴相关;会出现斜率为无穷大的情形(如垂线);对于非平面曲线、曲面,难以用常系数的非参数化函数表示;不便于计算机编程。
曲线曲面的参数表示 参数表示的曲线、曲面具有几何不变性等优点,计算机图形学中通常用参数形式描述曲线、曲面。 曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为: p(t)=[x(t), y(t)] 空间曲线上任一三维点P可表示为: p(t)=[x(t), y(t), z(t)]
最简单的参数曲线是直线段,端点为P1、P2的直线段参数方程可表示为: p(t)=P1+(P2-P1)t t∈[0, 1]; 圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数显式表示为: 其参数形式可表示为:
参数表示方法的优点: 1.点动成线 2.选取具有几何不变性的参数曲线曲面表示形式。 3.斜率
4.t∈[0,1] ,使其相应的几何分量是有界的 5.可对参数方程直接进行仿射和投影变换 6.参数变化对各因变量的影响可以明显地表示出来
5.1.2 插值与逼近 1.插值 给定一组有序的数据点Pi(i=0, 1, …, n),构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。 主要方法有:线性插值,抛物线插值
2.逼近 当型值点较多时,构造插值函数通过所有型值点是相当困难的。而测量所得的数据点本身比较粗糙,使得构造精确的插值函数也是没有意义的。 这时通常选择一个次数较低的函数,构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。插值和逼近则统称为拟合。 逼近的方法最常用的是最小二乘法
曲线的插值 图5-1 曲线的插值
曲线的逼近 图5-2 曲线的逼近 将连接有一定次序控制点的直线序列称为控制多边形或特征多边形
5.1.3 连续性 假定参数曲线段pi以参数形式进行描述: 连续性:曲线段之间如何实现光滑连接的问题 参数连续性:函数的可微性,把组合参数曲线构造成在连接处具有直到n阶连续,即n阶连续可微,这类光滑度称之为Cn或n阶参数连续性
几何连续性 组合曲线在连接处满足不同于Cn的某一组约束条件,称为具有n阶几何连续性,简记为Gn。 曲线光滑度的两种度量方法并不矛盾,Cn连续包含在Gn连续之中。 1.参数连续性 0阶参数连续性,记作C0连续性,是指曲线的几何位置连接,即
0阶参数连续性 图5-3:0阶参数连续性
1阶参数连续性 记作C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数:
1阶参数连续性 图5-4:1阶参数连续性
2阶参数连续性 记作C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。 为任意常数。当 时, G2连续就成为C2连续。
5.1.4 样条描述 样条(spline)是指通过一组给定点集来生成平滑曲线的柔性带。 在计算机图形学中,样条曲线是指由多项式曲线段连接而成的曲线,在每段边界处满足特定的连续性条件。 样条曲面则是由两组正交的样条曲线来描述。
n次样条参数多项式曲线
5.1.5 三次Hermite样条 给定n+1个点,可得到通过每个点的分段三次多项式曲线: 方程组中12个系数唯一地确定了一条3次参数曲线的位置与形状。上述代数式写成矢量式是:
描述参数曲线的条件有: 端点位置矢量、端点切线矢量、曲率等。对三次参数曲线,用其端点矢量P(0),P(1). 端点切线矢量P’(0),P’(1)描述. 则由上式得:
将这些系数代回到原曲线方程,则曲线方程可表示为: 则三次参数曲线为三次Hermite样条曲线:
Mh是Hermite矩阵,为常数,它是边界约束矩阵的逆阵。Gh是Hermite几何矢量。三次Hermite样条曲线的方程为: 在上式中只要给定Gh,就可以求出P(t)。对于不同的初始条件Gh是不同的,但T,Mh都是相同的,将T•Mh称为Hermite基函数(或称混合函数,调和函数)。其表达式为:
则Hermite基函数的各分量可写为:
利用基函数表达的三次Hermite样条曲线的方程为: H0(t)和H1(t)专门控制端点的函数值对曲线的影响,而同端点的导数值无关; H2(t)和H3(t)则专门控制端点的一阶导数值对曲线形状的影响,而同端点的函数值无关。
5.2 Bezier 曲线 图5-5: Bezier曲线的例子
5.2.1 Bezier曲线的定义 给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则定义一个n次Bezier参数曲线,其各点坐标的插值公式是: 其中,Pi构成该Bezier曲线的特征多边形,BENk,n(t)是n次Bernstein基函数。
三次Bezier曲线如图5-6所示: P2 P0 P1 P3 图5-6:三次Bezier曲线
1.一次Bezier曲线(n=1) n=1时,有2个控制点P0和P1,Bezier多项式是一次多项式: 一次Bezier曲线是连接起点P0和终点P1的直线段。
2.二次Bezier曲线(n=2) (抛物线) n=2时,有3个控制点P0、P1和P2,Bezier多项式是二次多项式:
3.三次Bezier曲线(n=3) n=3时,有4个控制点P0、P1、P2和P3,Bezier多项式是三次多项式:
将三次Bezier曲线表示为矩阵形式: Mbe是系数矩阵,为常数,Gbe是4个控制点的位置矢量。
5.2.2 Bezier曲线的性质 (1)端点位置 由Bernstein基函数的端点性质可以推得, P(0)=P0 , P(1)=Pn (2)端点切线 上式说明Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致。
(3)端点曲率 上式表明2阶导数只与相邻的3个顶点有关,事实上,r阶导数只与(r+1)个相邻点有关,与更远点无关。三次Bezier曲线段在起始点和终止点处的二阶导数为。
(4)对称性 保持n次Bezier曲线控制顶点的位置不变,而把次序颠倒过来构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反。 这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质。 (5)凸包性 曲线落在Pi构成的凸包之中.
(6)几何不变性 这是指某些几何特性不随坐标变换而变化的特性。 (7)交互能力 P(t)的控制多边形{Pi}可作为曲线的输入和人机交互的良好手段。 (8)变差缩减性 若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与P(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质。 此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。
给定两条Bezier曲线P(t)和Q(t),相应控制点为Pi(i=0, 1, ..., n)和Qj(j=0,1,..., m),如下图所示。 1 2 3 (Q ) Q
(1)要使它们达到G0连续的充要条件是:Pn= Q0。 (2)要使它们达到G1连续的充要条件是:Pn-1、Pn(Q0),Q1三点共线,即可表示为: (3)要使它们达到G2连续的充要条件是:在G1连续的条件下, 与 均不为零且同向,还要求在处曲率相等且主法线的方向一致, 对于三次Bezier曲线,即要满足方程。
5.2.4 Bezier曲线的离散生成 de Casteljau提出的递推算法比较简单。该算法把一个复杂的几何计算问题转化为一系列的线性运算,所以计算稳定可靠,具有通用性,易于在计算机上实现。
) 3 / 1 ( P = 1/3 2 图5-8 几何作图法求Bezier曲线
已知控制点 ,称为 ,构成n条边的控制多边形。首先依次对控制多边形进行定比分割,分割比例为t:(1-t),得到第一级递推的中间顶点 。然后再对这些中间顶点构成的控制多边形进行同样的定比分割,得到第二级递推的中间顶点 。如此继续,直到n次分割得到中间顶点 ,即为所求的Bezier曲线P(t)。
以上的递推过程可以用公式表示为: P 1 2 3 图5-9 Bezier曲线的递推过程
5.3 B样条曲线 Bezier曲线有两点不足: 控制多边形的顶点个数决定了Bezier曲线的次数, 不能作局部修改。
一、B样条基函数 给定参数轴t上的一个分划, 其中,ti称为节点,T称为节点矢量。我们把由下列递推关系定义的函数Bi,k (t)称为定义在T上的归一化的k阶(k-1次)B样条基函数(简称k阶B样条基函数)
称区间[ti,ti+k+1]为Bi,k(t)的支承区间。B样条曲线方程中,n+1个控制顶点Pi(i=0,1,···,n),要用到n+1个k次B样条基函数Bi,k(t)。它们支撑区间的并集定义了这一组B样条基的节点矢量T=[t0,…,tn+k+1]。
5.3.1 B样条曲线的定义 B样条曲线的方程定义为: 顶点 Pi( i=0,1,2,…,n)为控制顶点,又称为德布尔点(de Boor)。称折线P1P2…Pn为P(t)的控制多边形,k为B样条曲线的次数。Bi,k(t)为k次B样条基函数.
1.一次B样条基函数 一次B样条基函数Bi,1(t)是由两个零次基函数Bi,0(t)和Bi+1,0(t)递推得到,是他们的凸线性组合。
2.二次B样条基函数 二次B样条基函数Bi,2(t)是相邻两个一次B样条基函数Bi,1(t)的凸线性组合。
B样条曲线基函数的特点 1.B样条曲线基函数的次数与控制点的个数无关. 2.B样条曲线的基函数具有局部支承性,即其只在其支承区间内非零。
5.3.2 B样条曲线的分类 B样条曲线按照节点矢量中的节点分布情况不同,可以将B样条曲线分为三类: 均匀B样条曲线 开放均匀B样条曲线
1.均匀周期性B样条曲线 当节点沿参数轴均匀等距分布, 即tk+1-tk=常数时,表示均匀B样条函数。 例如节点矢量可取为:
下图是三次均匀B样条基函数 图 5-9 四段三次均匀 样条基函数 t B ( ) 2 1 4 5 (t) k , 3 0,3 1,3 2,3 3,3
均匀B样条的基函数呈周期性,即基函数在定义域内各个节点区间上都具有相同的形状。 可将定义在每个节点区间上用整体参数t表示的B样 条基函数,换成用局部坐标参数表示。作参数变换:
(1)二次均匀B样条曲线 二次B样条曲线的分段表达式为: 其中,t 为参数, 。 为对应的控制顶点。
表示为矩阵形式如下: 其中 i= 0,1,2,…,n,共n-k段分段曲线,式中Pi+k为分段曲线的特征多边形的顶点:Pi,Pi+1,Pi+2连续的三个顶点。
P3 P0 P2 P1 P1,P2,P3 P: P4 i=0 P0,2(t) i=1 P1,2(t) 图5-10: 二次均匀B样条曲线
曲线的起点和终点值: 均匀二次B样条曲线起点和终点处的导数: 曲线的起始点位于头两个控制点之间,终止点位于最后两个控制点之间
对于高次多项式,起点和终点是k-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。 分段二次B样条曲线是一条抛物线;有n个顶点定义的二次B样条曲线,其实质上是n-2段抛物线(相邻三点定义)的连接,并在接点处达到一阶连续。
2.开放均匀B样条曲线 均匀B样条曲线的不足: n次开放均匀B样条的节点矢量中两端节点具有重复度为n+1,所有内节点均匀分布。因此除两端的n-1个节点区间外,n次开放均匀B样条与均匀B样条基函数具有相同的图形。
3.非均匀B样条曲线 均匀B样条曲线不能贴切地反映控制顶点的分布特征,当型值点分布不均匀时,难以获得理想的插值曲线等。
5.3.3 B样条曲线的性质 1.局部支柱性 B样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在tk到tk+m的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。
图 5-11 B 样条曲线的局部支柱性 P 1 2 3 P″4 5 6 7 4 P′4
2.B样条的凸组合性质 B样条的凸组合性和B样条基函数的数值均大于或等于0保证了B样条曲线的凸包性,即B样条曲线必处在控制多边形所形成的凸包之内。
3.连续性 若一节点矢量中节点均不相同,则m次B样条曲线在节点处为m-1阶连续。 B样条曲线基函数的次数与控制顶点个数无关。 重节点问题 :若在连接点的重复度为r,则k次B样条曲线在节点处为k-r次连续的。
4 导数 5.几何不变性 6.变差减少性
5.3.4 非均匀有理B样条曲线 非均匀有理B样条曲线(Nonuniform Rational B-Spline,NURBS)。其节点矢量为T=[t0, t1, … , ti, …, tn+m],节点个数是n+m+1(n为控制项的点数,m为B样条基函数的次数)。对于非周期NURBS曲线,常取两端节点的重复度为i,即
定义 称下列曲线是以P1 P2···Pn为控制多边形,以w1w2···wn为权的m次有理B样条曲线。
下面以二次NURBS曲线如何表示二次曲线为例进行说明:定义二次开放均匀B样条,取三个控制顶点。则均匀节点矢量T=(0,0,0,1,1,1),取权函数为:
则有理B样条的表达式为: NURBS曲线也可用有理基函数的形式表示:
其中 称为有理基函数。 具有m阶B样条基函数类似的性质: (1)普遍性(2)局部支承性(3)权性 (4)可微性
3.NURBS曲线的优点 (1)既为标准解析形状(即前面提到的初等曲线曲面),又为自由型曲线曲面的精确表示与设计提供了一个公共的数学形式。 (2)修改控制顶点和权因子,为各种形状设计提供了充分的灵活性。 (3)具有明显的几何解释和强有力的几何配套技术(包括节点插入、细分、升阶等)。 (4)对几何变换和投影变换具有不变性。 (5)非有理B样条、有理与非有理Bezier方法是其特例。
5.4 Bezier曲面 5.4.1 Bezier曲面的定义 在空间给定(m+1)×(n+1)个点Pi,j (i=0,1,2,…,m; j=0,1,2,…,n)后,所有的控制点构成的空间的一张网格称为控制网格。则Bezier曲面的定义如下:
式中BENi,m(u)、BENj,n(v)分别为m及n次Bernstein 基函数:
下图是双三次Bezier曲面及其控制网格 P 0,0 3,0 0,3 3,3 1,0 2,0 0,1 0,2 1,1 2,1 3,1 1,2 2,2 2,3 1,3
双三次Bezier曲面(m=n=3)
5.4.2 Bezier曲面的性质 (1)端点位置 控制网格的四个角点正好是Bezier曲面的四个角点。
(2)边界线的位置 控制网格最外一圈顶点定义Bezier曲面的四条边界,P(0,v), P(u,0),P(1,v),P(u,1)分别是以P00P01P02…P0n,P00P10P20…Pm0,Pm0Pm1Pm2P…Pmn, P0nP1nP2n…Pmn为控制多边形的Bezier曲线。 (3)端点的切平面 由计算易知三角形P00P10P01,P0nP1nPmn,PmnPm-1,nPm,n-1,Pm0Pm-1,0Pm1所在的平面分别在点P00,P0n,Pmn,Pm0与曲面P(u,v)相切。
(4)端点的法向 由端点的切平面知是P(u,v)在点P00的法向,其余各端点的法向的情况也类似。 (5)几何不变性 (6)凸包性 (7)交互能力
5.4.3 Bezier曲面的拼接 已知两张双三次Bezier曲面片: , 实现G1连续性的条件为: , 实现G1连续性的条件为: (1) P1(1,v)=Q2(0,v), 即有P3,i=Q0,i,i=0,1,2,3 (2) P3,i- P2,i =λ(Q1,i-Q0,i),i=0,1,2,3
5.5 B样条曲面 5.5.1 B样条曲面的定义 设节点向量U={ui},V={vi},分别是对参数uv平面上的u轴和v轴的分割,称下列张量积形式的参数曲面为m1×m2 次B样条曲面。
双三次B样条曲面的表达形式
5.5.2 非均匀有理B样条曲面 NURBS曲面可由下面的有理参数多项式函数表示:
NURBS曲面与非有理B样条曲面也有相类似的几何性质,权因子的几何意义及控制顶点的修改等也与NURBS曲线类似,