《计算机图形学基础》课件第6章_第1页
《计算机图形学基础》课件第6章_第2页
《计算机图形学基础》课件第6章_第3页
《计算机图形学基础》课件第6章_第4页
《计算机图形学基础》课件第6章_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章曲线、曲面的表示6.1基础知识

6.2

Bezier曲线、曲面的表示

6.3

B样条曲线、曲面的表示

习题6 6.1基础知识

6.1.1显式、隐式和参数表示

表示曲线和曲面的基本方法有两种:参数法和非参数法。非参数表示又分为显式表示和隐式表示。对于一个平面曲线,显式表示的一般形式是:y=f(x)。在此方程中,一个x值与一个y值对应,所以显式方程不能表示封闭或多值曲线。如果一个平面曲线方程表示成f(x,y)=0的形式,我们称之为隐式表示。隐式表示的优点是易于判断函数f(x,y)是否大于、小于或等于零,也就易于判断点是否落在所表示曲线上或在曲线的哪一侧。非参数方程的缺点是:与坐标轴相关;会出现斜率为无穷大的情形(如垂线);对于非平面曲线、曲面,难以用常系数的非参数化函数表示;不便于计算机编程。由于参数表示的曲线、曲面具有几何不变性等优点,计算机图形学中通常用参数形式描述曲线、曲面。在几何造型系统中,曲线、曲面方程通常表示成参数的形式,即曲线上

任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线P可表示为

P=[x(t),y(t)]

空间三维曲线P可表示为

P=[x(t),y(t),z(t)]

参数t在一定区间变化,可以求得曲线上不同的坐标点,连接这些坐标点就能在屏幕上画出曲线。t变化的间隔越小,曲线画得越精细。最简单的参数曲线是直线段。端点为P1、P2的直线段参数方程可表示为 x(t)=P1+(P2-P1)t,t∈[0,1]

y(t)=P1+(P2-P1)t,t∈[0,1]

在使用上述公式时,分别将端点P1、P2的x和y值代入进行计算。

圆在计算机图形学中应用得十分广泛,其在第一象限内的单位圆弧的非参数显式表示为其参数形式可表示为

椭圆的参数方程可表示为

在曲线、曲面的表示上,参数方程比显式、隐式方程有更多的优越性,主要表现在:

(1)可以满足几何不变性的要求。

(2)有更大的自由度来控制曲线、曲面的形状。

(3)对非参数方程表示的曲线、曲面进行变换,必须对曲线、曲面上的每个型值点进行几何变换;而对参数表示的曲线、曲面,可对其参数方程直接进行几何变换。

(4)便于处理斜率为无穷大的情形,不会因此而中断计算。

(5)参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中的曲线、曲面扩展到高维空间去。这种变量分离的特点使我们可以用数学公式处理几何分量。

(6)规格化的参数变量t∈[0,1],使其相应的几何分量是有界的,不必用另外的参数去定义边界。

(7)易于用矢量和矩阵表示几何分量,简化了计算。6.1.2插值

给定一组有序的数据点Pi(i=0,1,…,n),构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线,如图6-1所示。图6-1插值曲线

1.线性插值

假设给定函数f(x)在两个不同点x1和x2上的值,用一个线形函数y=φ(x)=ax+b近似代替,则称φ(x)为f(x)的线性插值函数。其中线性函数的系数是a、b。通过条件

可将φ(x)表示为

2.抛物线插值

抛物线插值又称为二次插值。设已知f(x)在三个互异点x1、x2、x3上的函数值为y1、y2、y3,要求构造一个函数y=φ(x)=ax2+bx+c,使φ(x)在节点xi,i=1,2,3处与f(x)在xi处的值相等。由此可构造φ(x)=f(xi)=yi,i=1,2,3的线性方程组,求得a、b、c,即构造了φ(x)的插值函数。6.1.3逼近

当用一组控制点来指定曲线、曲面的形状时,求出的形状不必通过控制点列,这称为曲线的逼近。这时通常选择一个次数较低的函数,构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。插值和逼近统称为拟合。如图6-2所示为曲线的逼近。

在图6-2中,将连接有一定次序控制点的直线序列称为控制多边形或特征多边形。逼近的方法最常用的是最小二乘法。假设给定一组数据点(xi,yi)(i=1,2,…,n),要求构造一个逼近函数y=f(x)。令f(x)是m次多项式:图6-2曲线的逼近

逼近的程度可通过各点偏差的平方和来度量。最小二乘问题就是要求出各系数aj,使偏差的平方和最小,即求解以下函数的极值问题:

如要取到极值,则这里只有m+1个系数aj是未知量,可通过求解m+1个方程得出。将系数aj代入多项式函数f(x),即可得到所求的逼近函数。

6.1.4曲线的连续性

设计一条复杂曲线时,常常通过多段曲线组合而成,这需要解决曲线之间如何实现光滑连接的问题。对曲线间连接的光滑度的度量有两种方法:一种是函数的可微性,即把组合参数曲线构造成在连接处具有直到n阶的连续,即n阶连续可微,这类光滑度称为Cn或n阶参数连续性;另一种称为几何连续性,即组合曲线在连接处满足不同于Cn的某一组约束条件,称为具有n阶几何连续性,简记为Gn。曲线光滑度的两种度量方法并不矛盾,Cn连续包含在Gn连续之中。对于两条曲线P(t)和Q(t),参数t∈[0,1]。若要求在结合处达到G0连续或C0连续,即两曲线在结合处位置连续,则有

P(1)=Q(0)

曲线的0阶连续如图6-3所示。

若要求在结合处达到G1连续,就是说两条曲线在结合处满足G0连续的条件,并有公共的切线矢量,则有

P′(1)=a·Q′(0) (6-1)

当a=1时,G1连续就成为C1连续。曲线的1阶连续如图6-4所示。图6-3曲线的0阶连续图6-4曲线的1阶连续若要求在结合处达到G2连续(如图6-5所示),就是说两条曲线在结合处满足G1连续的条件,并有公共的曲率,则有

将式(6-1)和式(6-2)合并整理得

P′(1)×Q″(0)=a2P′(1)×P″(1)

这个关系为

Q″(0)=a2P″(1)+bP′(1)

其中,b为任意常数。当a=1,b=0时,G2连续就成为C2连续。(6-2)图6-5曲线的2阶连续6.1.5曲线拟合

工程中除了用到前述的规则曲线外,还常常遇到这样的情况:已知一些计算值或测试数据,要构造一条光滑曲线。通过或贴近这些离散点数据构造出来的曲线称为拟合曲线。采用模线样板法表示和传递自由曲线、曲面的形状称为样条。样条曲线是指由多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续条件。样条曲面则可以用两组正交样条曲线来描述。

通常用下面的方程来描述n次样条参数多项式曲线:

将上式写成矩阵乘积的形式为

其中,C为(n+1)×3阶的系数矩阵,T为n+1个幂形式的基函数组成的矢量。6.1.6三次Hermite样条

三次多项式在灵活性和计算速度之间提供了一个合理的折中方案。与更高次的多项式相比,三次样条只需要较少的计算与存储且较稳定;与低次的多项式相比,三次样条又具有更多的灵活性。事实上,大多数的形状表示与设计都是采用三次多项式来实现的。

一条三次曲线的代数形式是此方程组中的12个系数唯一地确定了一条三次参数曲线的位置与形状。上述方程式写成矢量式是

P(t)=a3t3+a2t2+a1t+a0,

t∈[0,1]

其中,a0、a1、a2、a3是代数系数矢量,P(t)是三次参数曲线上任一点的位置矢量。描述参数曲线的条件有端点位置矢量、端点切线矢量、曲率等。对三次参数曲线,用其端点矢量P(0)、P(1)和端点切线矢量P'(0)、P'(1)来描述,并将P(0)、P(1)、P'(0)、P'(1)简记为P0、P1、P'0、P'1,则由上式得 P'(t)=3a3t2+2a2t+a1,

t∈[0,1]则

由上式可以解得将这些系数代回到原曲线方程,则曲线方程可表示为 P(t)=(2t3-3t2+1)P(0)+(-2t3+3t2)P(1)

+(t3-2t2+t)P'(0)+(t3-t2)P'(1),t∈[0,1]

则三次参数曲线为三次Hermite样条曲线:

其中:Mh是Hermite矩阵,为常数,它是边界约束矩阵的逆阵;Gh是Hermite几何矢量。三次Hermite样条曲线的方程为P(t)=T·Mh·Gh,t∈[0,1]上式中只要给定Gh,就可以求出P(t)。对于不同的初始条件,Gh是不同的,但T、Mh都是相同的。将T·Mh称为Hermite基函数(或称混合函数、调和函数)。其表达式为则Hermite基函数的各分量可写为

H0(t)=2t3-3t2+1

H1(t)=-2t3+3t2

H2(t)=t3-2t2+t

H3(t)=t3-t2

利用基函数表达的三次Hermite样条曲线的方程为

P(t)=P0H0(t)+P1H1(t)+P'0H2(t)+P'

1H3(t)其中,H0(t)和H1(t)专门控制端点的函数值对曲线的影响,而与同端点的导数值无关;H2(t)和H3(t)则专门控制端点的一阶导数值对曲线形状的影响,而与同端点的函数值无关。或者

说,H0(t)和H2(t)控制左端点的影响,H1(t)和H3(t)控制右端点的影响。

三次Hermite样条曲线的特点是可以局部调整,因为每个曲线段仅依赖于端点约束。基于Hermite样条的变化形式为Cardinal样条和Kochanek-Bartels样条。Hermite曲线具有几何不变性。

6.2

Bezier曲线、曲面的表示

Hermite曲线需要知道起点、终点的切矢量,这在实际工作中很难确定,如果将切矢量用位置矢量代替,问题就会迎刃而解。1962年,法国雷诺汽车公司的P.E.Bezier构造了一种以逼近为基础的参数曲线和曲面的设计方法,并用该方法完成了一种称为UNISURF的曲线和曲面设计系统。Bezier将函数逼近同几何表示结合起来,使得设计师在计算机上就像使用作图工具一样得心应手。Bezier曲线和它的控制多边形十分逼近,通常认为控制多边形是对Bezier曲线的大致勾画,因此在设计中可以通过调整控制多边形的形状来控制Bezier曲线的形状。6.2.1

Bezier曲线的定义

Bezier曲线是由多项式混合函数推导出来的。给定空间n+1个点的位置矢量Pi,i=0,1,2,…,n,定义一个n次Bezier参数曲线,其各点坐标的插值公式是

其中,Pi构成该Bezier曲线的特征多边形,BENk,n(t)是n次Bernstein基函数。三次Bezier曲线如图6-6所示。图6-6三次Bezier曲线

Bernstein基函数具有如下形式:

这里规定:00=1,0!=1。当t=0时,若k=0,则BENk,n(t)=1;若k≠0,则BENk,n(t)=0。当t=1时,若k=n

,则BENk,n(t)=1;若k≠n,则BENk,n(t)=0。

1.一次Bezier曲线(n=1)

n=1时,有2个控制点P0和P1,Bezier多项式是一次多项式:

一次Bezier曲线是连接起点P0和终点P1的直线段。

2.二次Bezier曲线(n=2)

n=2时,有3个控制点P0、P1和P2,Bezier多项式是二次多项式:显然,它是一条以P0为起点、以P2为终点的抛物线,如图6-7所示。图6-7二次Bezier曲线

3.三次Bezier曲线(n=3)

n=3时,有4个控制点P0、P1、P2和P3,Bezier多项式是三次多项式:其中:

它们是三次Bezier曲线的基函数,它们均为三次曲线。任何三次Bezier曲线都是这4条曲线的线性组合。由于每个基函数的参数t在整个(0,1)的开区间内不为零,使得Bezier

曲线不可能对曲线的形状进行局部控制。如果改变任一控制点的位置,整个曲线将受到影响。将三次Bezier曲线表示为矩阵形式为

其中,Mbe是三次Bezier曲线的系数矩阵,为常数,Gbe是4个控制点的位置矢量。三次Bezier曲线是一条以P0为起点、以P3为终点的自由曲线。6.2.2

Bezier曲线的性质

1.端点位置

由Bernstein基函数的端点性质可以推得

P(0)=P0,P(1)=Pn

由此可见,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。

2.端点切线

Bezier曲线的起点和终点处的切线方向和特征多边形的第一条边及最后一条边的走向一致,即

P'(0)=n(P1-P0),P'(1)=n(Pn-Pn-1)

则三次Bezier曲线段在起始点和终止点处的一阶导数为

P'(0)=3(P1-P0)

P'(1)=3(P3-P2)

3.端点曲率

Bezier曲线在起点和终点处的曲率是该点的二阶导数: P''(0)=n(n-1)((P2-P1)-(P1-P0))

P''(1)=n(n-1)((Pn-2-Pn-1)-(Pn-1-Pn))

上式表明,二阶导数只与相邻的三个顶点有关。事实上,r阶导数只与r+1个相邻点有关,与更远点无关。三次Bezier曲线段在起始点和终止点处的二阶导数为

P''(0)=6(P0-2P1+P2),P''(1)=6(P1-2P2+P3)

曲率公式为

则Bezier曲线在端点的曲率分别为

4.对称性

保持n次Bezier曲线控制顶点的位置不变,而把次序颠倒过来构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反。这个性质说明Bezier曲线在起点处有什么几何性

质,在终点处也有相同的性质。

5.凸包性

这一结果说明当t在[0,1]区间变化时,对某一个t值,P(t)是特征多边形各顶点的加权平均。在几何图形上,意味着Bezier曲线P(t)在t∈[0,1]中的各点是控制点Pi的凸线性组合,即曲线落在Pi构成的凸包之中,如图6-8所示。图6-8

Bezier曲线的凸包性

6.几何不变性

这是指某些几何特性不随坐标变换而变化的特性。Bezier曲线的位置与形状与其特征多边形顶点的位置有关,它不依赖坐标系的选择。

7.交互能力

P(t)的控制多边形{Pi}可作为曲线的输入和人机交互的良好手段。

8.变差缩减性

若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与P(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质。此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。6.2.3

Bezier曲线的拼接

几何设计中,一条Bezier曲线往往难以描述复杂的曲线形状,这是由于增加特征多边形的顶点数,会引起Bezier曲线次数的提高,而高次多项式又会带来计算上的困难。所以有时采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的连续条件。下面讨论两段Bezier曲线达到不同阶几何连续的条件。

给定两条Bezier曲线P(t)和Q(t),相应控制点为Pi(i=0,1,…,n)和Qj(j=0,1,…,m),如图6-9所示。图6-9两段三次Bezier曲线的连接

(1)要使它们达到G0连续的充要条件是

Pn=Q0

(2)要使它们达到G1连续的充要条件是Pn-1、Pn(Q0)、Q1三点共线,即可表示为

Q'(0)=a·P'(1)

Q1-Q0=a·(P3-P2)

(3)要使它们达到G2连续的充要条件是:在G1连续的条件下,Pn-Pn-1与Q1-Q0均不为零且同向,还要求在Pn处的曲率相等且主法线的方向一致。对于三次Bezier曲线,即要求满足方程

Q''(0)=b·P''(1)

Q0-2Q1+Q2=b·(P1-2P2+P3)

且Pn-2、Pn-1、Pn(Q0)、Q1、Q2五点共面。Pn-2和Q2或者同在直线Pn-1Q1上,或者位于直线Pn-1Q1的同侧,并且

其中,d(Q2,Pn-1Pn)和d(Pn-2,Pn-1Pn)分别表示点Q2和Pn-2到直线Pn-1Pn的距离。通常要求达到二阶几何连续即可满足要求。6.2.4

Bezier曲线的离散生成

要计算Bezier曲线上的点,可用Bezier曲线方程,但使用deCasteljau提出的递推算法则要简单得多。该算法把一个复杂的几何计算问题转化为一系列的线性运算,所以计算

稳定可靠,具有通用性,易于在计算机上实现。

下面用几何作图的过程来对该算法进行说明,如图6-10所示。图6-10用几何作图法求Bezier曲线已知控制点Pi,称为

,构成n条边的控制多边形。首先依次对控制多边形进行定比分割,分割比例为t∶(1-t),得到第一级递推的中间顶点

。然后再对这些中间顶点构成的控制多边形进行同样的定比分割,得到第二级递推的中间顶点

。如此继续,直到n次分割得到中间顶点

,即为所求的Bezier曲线P(t)。以上的递推过程可以用公式表示为

deCasteljau算法递推出的

呈直角三角形,对应结果如图6-11所示。从左向右递推,最右边点

即为曲线上的点。图6-11

Bezier曲线的递推过程6.2.5

Bezier曲面的定义

Bezier曲线的一些算法也可以很容易地扩展到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基函数:

在实际应用中,次数m和n均不宜超过5,否则网格对于曲面的控制力将会减弱,这同Bezier曲线的情况是相似的。图6-12是双三次Bezier曲面及其控制网格。

类似于Bezier曲线,下面分别给出一次、二次及三次Bezier曲面的表达方式。图6-12双三次Bezier曲面及其控制网格

1.双线性Bezier曲面(m=n=1)

2.双二次Bezier曲面(m=n=2)

双二次Bezier曲面的边界曲线及参数坐标曲线均为抛物线。

3.双三次Bezier曲面(m=n=3)

其中,P是该曲面的控制网格16个控制顶点的几何位置矩阵,其中4个角点在Bezier曲面上。P矩阵四周的12个控制点定义了4条Bezier曲线,是曲面的边界曲线。P矩阵中央的4个控制点与边界曲线无关,但控制着边界内部的Bezier曲面形状。

例6-1茶壶的壶嘴要用两个Bezier曲面片来表示,其中一片控制点的坐标如下所示:则采用MATLAB描述的壶嘴绘制程序如下:一片壶嘴的绘制结果如图6-13。图6-13茶壶的一片壶嘴6.2.6

Bezier曲面的性质

1.端点位置

控制网格的四个角点正好是Bezier曲面的四个角点:

P(0,0)=P0,0,

P(1,0)=Pm,0

P(0,1)=P0,n,

P(1,1)=Pm,n

2.边界线的位置

控制网格最外一圈的顶点定义Bezier曲面的四条边界,P(u,v)的四条边界线P(0,v),P(u,0),P(1,v),P(u,1)分别是以P0,0P0,1P0,2…P0,n、P0,0P1,0P2,0…Pm,0、Pm,0Pm,1Pm,2…Pm,n、P0,nP1,nP2,n…Pm,n为控制多边形的Bezier曲线。

3.端点的切平面

由计算易知三角形P0,0P1,0P0,1、P0,nP1,nPm,n、Pm,nPm-1,nPm,n-1、Pm,0Pm-1,0Pm,1所在的平面分别在点P0,0、P0,n、Pm,n、Pm,0处与曲面P(u,v)相切。

4.端点的法向

由端点的切平面知P0,0P0,1×P0,0P1,0是P(u,v)在点P0,0的法向,其余各端点法向的情况也与此类似。

5.几何不变性

这是指某些几何特性不随坐标变换而变化的特性。Bezier曲面P(u,v)的位置和形状与其特征多边形顶点的位置有关,它不依赖坐标系的选择。

6.凸包性

曲面P(u,v)位于其控制顶点Pi,j(i=0,1,2,…,n,j=0,1,2,…,m)的凸包内。

7.交互能力

P(u,v)的控制网格{Pi,j}可作为曲面的输入和人机交互的良好手段。6.2.7

Bezier曲面的拼接

两块曲面相连接时,若要达到GC0阶连续,则要求相连接的曲面片具有公共的边界曲线。若要达到GC1阶连续,则要求对于边界曲线上的任何一点,两个曲面片跨越边界的切线矢量应该共线,而且两切线矢量的长度之比为常数。

已知两张双三次Bezier曲面片(两个曲面片的公式几乎完全相同,区别仅在于控制点的坐标不同,故只给出了一个曲面片的公式):

实现G1连续性的条件为(如图6-14所示):

(1)P1(1,v)=Q2(0,v),即有P3,i=Q0,i,i=0,1,2,3。

(2)P3,i-P2,i=l(Q1,i-Q0,i),i=0,1,2,3。图6-14双三次Bezier曲面的拼接

6.3

B样条曲线、曲面的表示

Bezier曲线是一段n次多项式曲线,它有两点不足:一是控制多边形的顶点个数决定了Bezier曲线的次数;二是不能作局部修改。因此,采用分段的多项式曲线(又称为多项式样条曲线)是它的自然推广。为了克服Bezier曲线存在的问题,Gordon等人拓展了Bezier曲线,从外形设计的需求出发,希望新的曲线要易于进行局部修改,更逼近特征多边形,是低阶次曲线。当用n次B样条基函数替换了Bernstein基函数后,就构造出了称为B样条曲线的新型曲线。B样条方法在保留Bezier方法全部优点的同时,克服了Bezier方法的缺点。6.3.1

B样条曲线的定义

B样条曲线的方程定义为

式中,顶点Pi(i=0,1,2,…,n)为控制顶点,又称为德布尔点(deBoor)。称折线P1P2…Pn为P(t)的控制多边形,k为B样条曲线的次数。Bi,k(t)为k次B样条基函数,该函数的计算可采用如下方法:

在上式中规定0/0=0。该递推公式表明,欲确定第i个k次B样条基函数Bi,k(t),需要用到ti,ti+1,…,ti+k+1共k+2个节点,称区间[ti,ti+k+1]为Bi,k(t)的支撑区间。B样条曲线方程中,n+1个控制顶点Pi(i=0,1,…,n)要用到n+1个k次B样条基函数Bi,k(t)。它们的支撑区间的并集定义了这一组B样条基函数的节点矢量T,T=[t0,…,tn+k+1]。

1.一次B样条基函数

一次B样条基函数Bi,1(t)是由两个零次基函数Bi,0(t)和Bi+1,0(t)递推得到的,即一次B样条基函数是两个零次基函数的凸线性组合:其中可表示为分段函数:

2.二次B样条基函数

二次B样条基函数Bi,2(t)是相邻两个一次B样条基函数Bi,1(t)的凸线性组合:类似地可以递推出三次及更高次的B样条基函数Bi,k(t)。通过以上的递推定义可以看出,B样条曲线基函数的次数与控制点的个数无关,而Bezier曲线基函数的次数等于控制点的数目减1。Bezier曲线的基函数在整个定义区间内都不为0,而B样条曲线的基函数具有局部支撑性,即只在其支撑区间内非零。6.3.2

B样条曲线的分类

按照节点矢量中的节点分布情况的不同,可以将B样条曲线分为三类:均匀B样条曲线、开放均匀B样条曲线和非均匀B样条曲线。

1.均匀B样条曲线

当节点沿参数轴均匀等距分布,即tk+1-tk=常数时,表示均匀B样条函数。例如节点矢量可取为:T=[-2,-1.5,-1,-0.5,0,0.5,1,1.5,2],T=[0,1,2,3,4,5,6,7]等。图6-15是三次均匀B样条基函数。图6-15四段三次均匀B样条基函数从图6-15可以看出,均匀B样条的基函数呈周期性,即基函数在定义域内各个节点区间上都具有相同的形状:

Bi,k(t)=Bi+1,k(t+Δt)=Bi+2,k(t+2Δt)

Bi,k(t)=B0,k(t-iΔt)

因此,可将定义在每个节点区间上用整体参数t表示的B样条基函数,换成用局部坐标参数u∈[0,1]表示。作参数变换:

t=t(u)=ti+u

或者

u=u(t)=t-ti,

t∈[ti,ti+1],i=k,k+1,…,n

这样变换后使得所有区间上的B样条基函数都具有相同的数学表达形式。

1)二次均匀B样条曲线

二次B样条曲线的分段表达式为

Pi(t)=B0,2(t)·Pi+B1,2(t)·Pi+1+B2,2(t)·Pi+2

其中,t为参数,t∈[0,1];Pi、Pi+1、Pi+2为对应的控制顶点;B0,2(t)、B1,2(t)和B2,2(t)分别为将二次B样条曲线的分段表达式表示为矩阵形式,即

其中,i=0,1,2,…,n,即共有n-k段分段曲线,Pi+k为分段曲线的特征多边形的顶点,Pi、Pi+1、Pi+2为连续的三个顶点,如图6-16所示。图6-16二次均匀B样条曲线曲线的起点和终点值分别为

均匀二次B样条曲线起点和终点处的导数分别为对于由任意数目的控制点构造的二次周期性B样条曲线来说,曲线的起始点位于头两个控制点之间,终止点位于最后两个控制点之间。对于高次多项式,起点和终点是k-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。

分段二次B样条曲线是一条抛物线;由n个顶点定义的二次B样条曲线,其实质上是n-2段抛物线(相邻三点定义)的连接,并在接点处达到一阶连续。

2)三次均匀B样条曲线

分段三次B样条曲线由相邻四个顶点定义,其表达式为

Pi(t)=B0,3(t)·Pi+B1,3(t)·Pi+1+B2,3(t)·Pi+2+B3,3(t)·Pi+3可见,由n个顶点定义的完整的三次B样条曲线是由n-3段分段曲线连接而成的。很容易证明,三次B样条曲线在连接处达到二阶连续。其中

其中, 。表示为矩阵形式如下:有四个控制点的三次周期性B样条的边界条件为

四个控制点的三次均匀B样条曲线如图6-17所示。

由图6-17可知,三次均匀B样条曲线从靠近P1处开始,在靠近P2处结束,且每个曲线段的两个端点处的导数平行于相邻控制点的连线。图6-17四个控制点的三次均匀B样条曲线

2.开放均匀B样条曲线

均匀B样条没有保留Bezier曲线端点的几何性质,它的首末端点不与控制顶点的首末点重合。当均匀B样条的次数高于二次时,在端点处也不再与控制多边形相切。开放均匀B样条保留了Bezier曲线的端点几何性质,可以更好地控制曲线的端点。

开放均匀B样条与均匀B样条的节点矢量的差别在于两端节点。n次开放均匀B样条的节点矢量中,两端节点的重复度为n+1,所有内节点均匀分布。因此除两端的n-1个节

点区间外,n次开放均匀B样条与均匀B样条的基函数具有相同的图形。以二次开放均匀B样条曲线为例,设有五个控制点Pi(i=0,1,…,4),则节点数为7,且端节点的重复度为3,取T=[0,0,0,1,2,3,3,3]。每连续三个点定义一段B样条曲线,则五个控制点共定义了三段B样条曲线。控制点和三段B样条曲线可表示为

二次开放均匀B样条曲线的三个系数矩阵都各不相同,因而在计算和处理上就比均匀二次B样条要复杂得多。

3.非均匀B样条曲线

由均匀B样条可以得到满意的效果,且算法的效率高。但均匀B样条曲线仍存在一些不足,如不能贴切地反映控制顶点的分布特征,当型值点分布不均匀时,难以获得理想的插值曲线等。而应用非均匀B样条曲线可以克服上述不足。但由于节点的分布不均匀,因此非均匀B样条曲线的基函数不再具有平移性,且各不相同。因此,在生成曲线时,每个基函数都要单独计算,其计算量比均匀B样条曲线大得多。6.3.3

B样条曲线的性质

1.局部支撑性

B样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在ti到ti+k+1的子区间内函数值不为零,在其余区间内均为零。通常也将该特征称为局部支撑性,如图6-18所示。

因此,k次B样条曲线在参数t∈[ti,ti+1]的一段至多与k+1个控制点有关,与其他控制点无关。图6-18

B样条的局部支撑性

2.B样条的凸组合性质

B样条的凸组合性和B样条基函数的数值均大于或等于0,保证了B样条曲线的凸包性,即B样条曲线必处在控制多边形所形成的凸包之内。B样条曲线的凸包区域比同一组控制顶点定义的Bezier曲线的凸包区域要小,即B样条曲线可以更加逼近特征多边形。

3.连续性

若一节点矢量中各节点均不相同,则k次B样条曲线在节点处为k-1次连续。B样条曲线基函数的次数与控制顶点个数无关。若在连接点的重复度为r,则k次B样条曲线在节点处为k-r次连续的。

B样条曲线的导数曲线为

B样条基函数的微分公式如下(它是一条k-1次的B样条曲线):

4.几何不变性

B样条曲线的形状和位置与坐标系的选择无关。

5.变差缩减性

设平面内n+1个控制顶点P0P1…Pn构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数。6.3.4非均匀有理B样条曲线

B样条方法在表示与设计自由型曲线、曲面形状时显示了强大的威力,然而在表示与设计由二次曲面构成的初等曲面时却遇到了困难。B样条曲线包括其特例的Bezier曲线都不能精确表示除抛物线和抛物面之外的二次曲线和曲面,而只能给出近似表示。因此,有必要将它们的表示方法进行推广。有理形式是它们很自然的推广。推广后的形式保留了原来形式的许多特点,又将二次曲面、旋转面等包含在其中。

1.有理B样条曲线

有理B样条曲线是对B样条曲线的推广。称下列曲线是以P1P2…Pn为控制多边形,以w1,w2,…,wn为权的m次有理B样条曲线。

wk是与Pk对应的权因子。一个特定控制点Pk的权因子wk越大,曲线越靠近该控制点。首末权因子w0,wn>0,其余wk≥0,使得P(t)的分母不为0。上式中,Bk,m(t)是m次B样条基函数。由于B样条曲线是分段多项式,因此经过加权后,有理B样条曲线是分段有理多项式。它具有与B样条曲线相同的局部支撑性、几何不变性、保凸性、变差缩减性、局部调整性、造型灵活性等性质。而B样条曲线是有理B样条曲线的特例,即各权wk全相等的有理B样条曲线。有理B样条曲线可以表示圆、椭圆等曲线和更复杂的曲线。

2.非均匀有理B样条曲线

在有理B样条曲线中应用最广泛的是非均匀有理B样条(NonUniformRationalB-Spline,NURBS)曲线。其节点矢量T=[t0,t1,…,ti,…,tn+m],节点个数是n+m+1(n为控制项的点数,m为B样条基函数的次数)。对于非周期NURBS曲线,常取两端节点的重复度为i,即下面说明如何以二次NURBS曲线表示二次曲线。定义二次开放均匀B样条,取三个控制顶点,则均匀节点矢量T=(0,0,0,1,1,1),取权因子为

则有理B样条的表达式为

然后取不同的r值得到各种二次曲线,如图6-19所示。图6-19取不同权因子生成的二次曲线段从图6-19中可以看出:当r>1/2时,w1>1得到双曲线;当r=1/2时,w1=1得到抛物线;当r<1/2时,w1<1得到椭圆弧;当r=0时,w1=0得到直线段。

NURBS曲线也可用有理基函数的形式表示:

其中,Rk,m(t)称为有理基函数。Rk,m(t)具有与m阶B样条基函数类似的性质,即:

(1)普遍性。若令全部权因子均为1,则Rk,m(t)退化为Bk,m(t)。而若节点矢量仅由两端的m重节点构成,则Rk,m(t)退化为Bernstein基函数。

(2)局部支撑性。Rk,m(t)在其支撑区间内取正值,在其他区间内为零。

(3)权性。如果某个权因子wk等于零,则Rk,m(t)=0,相应的控制点对曲线根本没有影响。若wk=+∞,则Rk,m(t)=1,说明权因子越大,曲线越靠近相应的控制顶点。

(4)可微性。如果分母不为零,则在节点区间内是无限次连续可微的,在节点处m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论