第七章自由曲线曲面_第1页
第七章自由曲线曲面_第2页
第七章自由曲线曲面_第3页
第七章自由曲线曲面_第4页
第七章自由曲线曲面_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

孔令德自由曲线曲面第七章Bezier曲线Bezier曲面B样条曲线B样条曲面本章学习目标7.1基本概念7.2Bezier曲线7.3Bezier曲面7.4B样条曲线7.5B样条曲面本章内容曲线分为规则曲线与不规则曲线两类。一类规则曲线--具有确定描述函数的曲线,如圆锥曲线、正弦曲线、渐开线等。另一类不规则曲线--由离散点构造函数来描述,称为拟合曲线或自由曲线。如最小二乘法拟合曲线、三次参数样条拟合曲线、Bezier曲线、B样条曲线等众多曲线。工业产品的几何形状也大致可以分为两类:一类由规则曲面--用初等解析函数完全清楚地表达全部形状。如平面、圆柱面、圆锥面、球面、圆环面等组成。另一类由不规则曲面--由离散点构造函数来描述形状,称为拟合曲面或自由曲面。如Bezier曲面、B样条曲面等,汽车车身、飞机机翼和轮船船体等曲面。汽车的曲线与曲面如图7-1所示。图7-1汽车的曲线曲面7.1基本概念

7.1.1样条曲线曲面样条曲线不仅通过各有序型值点,并且在各型值点处的一阶和二阶导数连续,也即该曲线具有导数连续、曲率变化均匀的特点。在计算机图形学中,样条曲线是指由三次多项式曲线段连接而成的曲线,在每段的边界处满足特定的连续性条件,而样条曲面可用两组正交样条曲线来描述。7.1.2曲线与曲面的表示形式

曲线曲面有表示有两种形式

1.参数形式

2.非参数形式表示:显式表示与隐式表示。,为曲线的起点;当t=1时,如图7-2所示。设曲线上任一点的位置矢量为p,可以表示为参数t的函数。曲线的矢量参数表示形式为当t=0时,,为曲线的终点。工程中,常用的曲线是三次曲线,高次曲线由于稳定性差很少直接使用。图7-2曲线的矢量参数表示法曲面是一个二元函数,根据线动成面的原理将曲线的矢量参数表示法进行二维拓展得到曲面的矢量参数表示法,即工程中应用最为广泛的曲面片是由两个三次参数(u,v)定义的曲面片,称为双三次曲面片,如图7-3所示。双三次曲面的参数表示法为矩阵表示为式中,使用参数形式表示法来描述曲线、曲面的优势:(1)可以满足几何不变性的要求,变换后仍保持几何形状不变。(2)便于处理斜率为无穷大的情形,不会因此而中断计算。(3)规格化的参数变量,使其相应的几何分量是有界的,而不必用另外的参数去定义其边界。(4)易于用矢量和矩阵表示几何分量,简化了计算。(5)对非参数形式表示的曲线曲面进行变换,必须对曲线曲面上的每个型值点进行几何变换,不能对其方程进行变换;而对参数形式表示的曲线曲面可以对其参数方程直接进行几何变换。7.1.3插值、逼近与拟合插值(Interpolation)当用一组型值点来指定曲线或曲面的形状时,曲线或曲面精确地通过给定的型值点且形成光滑的曲线或曲面时,称为曲线或曲面的插值,插值曲线如图7-4所示。当用一组控制点来指定曲线或曲面的形状时,曲线或曲面被每个控制点所吸引,但实际上并不经过这些控制点,称为曲线或曲面的逼近,逼近曲线如图7-5所示。Bezier曲线和B样条曲线属于逼近曲线,Bezier曲面和B样条曲面属于逼近曲面。逼近(Approximation):图7-4插值曲线图7-5逼近曲线拟合(fitting):插值与逼近统称为拟合。

通常单一的曲线段或曲面片难以表达复杂的形状,必须将一些曲线段连接成组合曲线,或将一些曲面片连接成组合曲面,才能描述复杂的形状。为了保证在连接点处光滑过渡,需要满足连续性条件。7.1.3连续性条件

零阶参数连续性,记作C0。指相邻两段曲线在结合点处具有相同的坐标,如图7-6所示。

一阶参数连续性,记作C1,指相邻两段曲线在结合点处具有相同的一阶导数,如图7-7所示。

二阶参数连续性,记作C2,指相邻两段曲线在结合点处具有相同的一阶导数和二阶导数,如图7-8所示。1.参数连续性:图7-6零阶连续性图7-7一阶连续性图7-8二阶连续性2.几何连续性:

零阶几何连续性,记作G0,相邻两段曲线在结合点处有相同的坐标。

一阶几何连续性,记作G1,指相邻两段曲线在结合点处的一阶导数成比例,但大小不一定相等。

二阶几何连续性,记作G2,指相邻两段曲线在结合点处的一阶导数和二阶导数成比例,即曲率一致,但大小不一定相等。7.2Bezier曲线

BezierDeCasteljau

Bezier曲线由法国雪铁龙(Citroen)汽车公司的deCasteljau于1959年发明,后来又由法国雷诺(Renault)汽车公司的工程师Bezier于1962年独立提出了Bezier曲线曲面。

几种典型的Bezier曲线如图7-9所示。

Bezier曲线由控制多边形惟一定义,Bezier曲线只有第一个顶点和最后一个顶点落在控制多边形上,且多边形的第一条边和最后一条边表示了曲线在起点和终点的切矢量方向,其它顶点则用于定义曲线的导数、阶次和形状,曲线的形状趋近于控制多边形的形状,改变控制多边形的顶点位置就会改变曲线的形状。

图7-9几种典型的Bezier曲线给定n+1个控制点Pi(i=0,1,2……n),称为n次Bezier曲线定义为

t∈[0,1]

(7-1)式中,Pi(i=0,1,2……n)是控制多边形的n+1个控制点,控制多边形是连接n条边构成的多边形。Bi,n(t)是Bernstein基函数,其表达式为:7.2.1Bezier曲线的定义在实际应用中,最常用的是三次Bezier曲线,其次是二次Bezier曲线,高次Bezier曲线一般很少使用。

当n=1时,Bezier曲线的控制多边形有二个控制点P0和P1,Bezier曲线是一次多项式。1.一次Bezier曲线写成矩阵形式为t∈[0,1]一次Bezier曲线是连接起点P0与终点P1的直线段。,t∈[0,1](7-3)其中,Bernstein基函数为2.二次Bezier曲线当n=2时,Bezier曲线的控制多边形有三个控制点P0、P1和P2,Bezier曲线是二次多项式。二次Bezier曲线是一段抛物线。t∈[0,1](7-4)写成矩阵形式为,t∈[0,1](7-5)其中,Bernstein基函数为,,,如图7-10所示,红色曲线为(t),绿色曲线为蓝色曲线为在整个区间[0,1]上都不为0。二次Bezier曲线是一段起点在P0,终点在P2的抛物线,如图7-11所示。(t),(t),这3段曲线都是二次多项式,P1P2图7-10二次Bezier曲线的3段基函数图7-11二次Bezier曲线P0三次Bezier曲线是自由曲线。

3.三次Bezier曲线写成矩阵形式为,t∈〔0,1〕当n=3时,Bezier曲线的控制多边形有四个控制点P0、P1、P2和P3,Bezier曲线是三次多项式。

t∈〔0,1〕(7-7)其中Bernstein基函数为如图7-12所示,红色曲线为B0,3(t),绿色曲线为B1,3(t),青色曲线为B2,3(t),蓝色曲线为B3,3(t)。这4段曲线都是三次多项式,在整个区间[0,1]上都不为0。这说明不能使用控制多边形对曲线的形状进行局部调整,如改变某一控制点位置,整段曲线都将受到影响。一般将函数值不为0的区间叫做曲线的支撑。如图7-13所示。图7-12三次Bezier曲线的4段基函数图7-13三次Bezier曲线7.2.2Bezier曲线的性质1.端点性质在闭区间〔0,1〕内,将t=0和t=1代入式(7-1),得到p(0)=P0;p(1)=Pn。说明Bezier曲线的起点与终点分别位于控制多边形的起点P0与终点Pn上。2.一阶导数将式(7-1)求导,有在闭区间[0,1]内,将t=0和t=1代入上式,得说明Bezier曲线的起点与终点的切线方向位于控制多边形的起始边与终止边的切线方向上。(7-8)3.凸包性质由公式(7-2)可以看出,在闭区间[0,1]内,,而且说明Bezier曲线位于控制多边形构成的凸包之内。。4.对称性

由控制点,(i=0,1,2……n),构造出的新Bezier曲线与原Bezier曲线形状相同,但走向相反。t∈[0,1](7-9)说明Bezier曲线在控制多边形的起点和终点具有相同的性质。

5.几何不变性Bezier曲线的位置和形状与控制多边形的顶点Pi(i=0,1,2……n)的位置有关,而不依赖于坐标系的选择。

6.仿射不变性对Bezier曲线所做的任意仿射变换(包括平移、比例、旋转、反射和错切变换),相当于先对控制多边形顶点做变换,再根据变换后的控制多边形顶点绘制Bezier曲线。对于仿射变换A,有

Bezier曲线是一条逼近曲线,在控制多边形的第一个顶点与最后一个顶点处进行插值,其形状直接受其余控制点的影响。7.2.3deCasteljau算法

使用公式(7-1)可以直接编程绘制Bezier曲线,但使用deCasteljau递推算法则要简单的多。给定空间n+1个控制点Pi(i=0,1,2n)及参数t,deCasteljau递推算法表述为(7-11)当n=3时,有1.递推公式其中,是Bezier曲线上参数为t的点。三次Bezier曲线递推如下其中:规定:定义Bezier曲线的控制点编号为deCasteljau已经证明,当r=n时,根据式(7-11)可以绘制n次Bezier曲线。,其中,r为递推次数。表示曲线上的点。第1级递推第2级递推第3级递推2.几何作图法deCasteljau算法的基础是在线段P0P1上选择一个点P(t),使得P(t)点划分P0P1为t:(1-t)两段,如图7-14所示。给定点P0

、P1的坐标以及t的值,点P(t)的坐标为,t∈[0,1](7-12)图7-14deCasteljau算法基础依次对原始控制多边形的每一边执行同样的定比分割,所得的分点就是第一级递推生成的中间顶点(i=0,1,…,n-1),重复下去,直到r=n,得到一中间顶点该点的轨迹即为Bezier曲线上的点P(t)。以n=3的三次Bezier曲线为例,讲解deCasteljau算法的几何作图分法。取t=0,t=1/3,t=2/3,t=1四点作图绘制,图7-15(a)绘制的是t=1/3的点。图7-15(a)

绘制t=1/3的点图7-15(b)绘制t=2/3的点图7-15(b)绘制的是t=2/3的点。图7-15(c)点的运动轨迹当t在[0,1]区间内连续变化时,使用直线段连接控制多边形凸包内的所有红色的点,可以绘制出三次Bezier曲线,如图7-15(c)所示。当n=3,t=1/2时,deCasteljau递推算法绘制Bezier曲线的过程如图7-16(a)所示。deCasteljau算法递推出的呈直角三角形,如图7-16(b)所示。该三角形垂直边上的点、、、是Bezier曲线(0≤t≤1)的控制多边形(黑色线条)的控制点,斜边上的点、、、是Bezier曲线(0≤t≤1/2)的左半子分控制多边形(红色线条)的控制点。水平直角边上的点、、、是Bezier曲线的右半子分控制多边形(蓝色线条)的控制点。可以看出,

(1/2≤t≤1)多边形与多边形比多边形、、、、、、、、、更加逼近Bezier曲线。

(a)t=1/2递归分割过程图7-16deCasteljau算法递推三角形deCasteljau算法递推出的呈直角三角形。当n=3时,如图7-16(b)所示。图7-16deCasteljau算法递推三角形(b)递推三角形7.2.4Bezier曲线的拼接

Bezier曲线的阶次随着控制多边形顶点数目的增加而增加。使用高次Bezier曲线计算起来代价很高且容易有数值舍入误差,工程中经常使用的是二次或三次Bezier曲线。为了描述复杂的物体的线框模型,经常需要将各段曲线拼接起来,并在结合处满足一定的连续性条件。。假设两段三次Bezier曲线分别为其控制多边形的顶点分别为P0、P1、P2、P3和Q0、Q1、Q2、Q3,如图7-17所示。图7-17两段三次Bezier曲线的拼接G0连续性的条件是:P3=Q0。G1连续性的条件是:P2、P3(Q0)和Q1三点共线,且P2和Q1位于P3(Q0)的两侧。达到G1连续性,有由于:P3=Q0,有(7-14)两段三次Bezier曲线在拼接点处连续条件由式(7-8)有即(7-13)对P3(Q0)位置的影响如图7-18所示。

(a)=0.5(b)=1(c)=2图7-18对拼接位置的影响对三次Bezier曲线的拼接一般不要求满足G2连续性。因为每段三次Bezier曲线仅有4个控制点,若二阶连续,则只能留下一个控制点调整曲线的形状。7.3.1Bezier曲面的定义

Bezier曲面是由Bezier曲线拓广而来,以两组正交的Bezier曲线控制点构造空间网格来生成曲面。m×n次Bezier曲面的定义为:(u,v)∈〔0,1〕×〔0,1〕

依次用线段连接点列Pi,j(i=0,1,…,m;j=0,1,…,n)中相邻两点所形成的空间网格称为控制网格,当m=3,n=3时由4×4=16个控制点构成控制网格,如图7-20所示,其相应的曲面称为双三次Bezier曲面。(7-15)7.3Bezier曲面图7-20双三次Bezier曲面及其控制网格7.3.2双三次Bezier曲面的定义

双三次Bezier曲面定义如下:(u,v)∈〔0,1〕×〔0,1〕(7-16)展开式(7-16),有(7-17)(7-18)将式(7-18)代入式(7-17)得到(7-19)令则有,(7-20)生成曲面时可以通过先固定u,变化v得到一簇Bezier曲线;然后固定v,变化u得到另一簇Bezier曲线,两簇曲线交织生成Bezier曲面。式中,Mbe为对称矩阵,即。几种不同形状的双三次Bezier曲面如图7-21所示。

图7-21不同形状的Bezier曲面

7.3.3双三次Bezier曲面的拼接

与Bezier拼接类似,两张双三次Bezier曲面片也可以拼接在一起。其Beizer曲面片表述如下图7-22所示为两片Bezier曲面的控制多边形。达到G0连续性的条件是:(i=0,1,2,3)图7-22Bezier曲面的拼接达到G1连续性的条件是:(i=0,1,2,3)。一般情况下,在连接处保持一阶导数连续较为困难,要求两个控制多边形中位于交点处的两条边必须共线,但设计中很难做到这一点。图7-23所示为满足G1连续性的条件的两片Bezier曲面的控制多边形。图7-23在连接处保持切线方向连续图7-24是使用MFC绘制的Utah茶壶光照模型的透视投影图。

(a)状态1(b)状态2图7-24双三次Bezier曲面片拼接的茶壶光照模型7.4B样条曲线

1、确定了控制多边形的顶点个数为n+1个,也就确定了曲线的次数为n次;2、控制多边形与曲线的逼近程度较差,次数越高,逼进程度越差;3、曲线不能局部修改,调整任何控制点的位置,将会引起整条曲线的改变;4、Bezier曲线的拼接比较复杂。Bezier曲线虽然有许多优点,但也存在不足之处:为了解决上述问题,Gordon和Riesenfeld于1972年用B样条基函数代替了Bernstein基函数,构造了B样条曲线。1、比Bezier曲线更贴近控制多边形,曲线更光滑(很容易达到C2连续性)。2、多项式的次数可根据需要指定,而不像Bezier曲线多项式的次数是由控制点的个数来确定。3、增加了对曲线的局部修改功能,控制多边形的顶点对曲线的控制灵活而直观。4、广泛应用于交互式自由曲线曲面设计。B样条曲线优点7.4.1B样条曲线的定义

给定m+n+1个控制点Ph(h=0,1,2,…,m+n)

,n次B样条曲线段的参数表达式为

i=0,1,2,…,m;k=0,1,2,…,n

为B样条基函数,其形式为(7-21)(7-22)其中,(7-23)式(7-21)为n次B样条曲线的第i段曲线(i=0,1,2,…,m)。连接全部曲线段(m+1段)所组成的整条曲线称为n次B样条曲线。依次用线段连接控制点Pi+k(k=0,1,2,…,n)组成的多边形称为B样条曲线在第i段的控制多边形从式(7-21)可以看出,B样条曲线是分段构成的,所以控制多边形对曲线的控制灵活直观。若给定m+n+1个控制点,可以构造一条n次B样条曲线,它是由m+1段n次曲线首尾相接而成,而每段曲线则由n+1个顶点所构造。7.4.2二次B样条曲线

二次B样条曲线的n=2,k=0,1,2。控制多边形有3个控制点P0、P1和P2。二次B样条曲线是二次多项式。1.矩阵表示二次B样条曲线的分段参数表达式为(i=0,1,2,…,m)对于i=0段曲线,写成矩阵形式为

t∈〔0,1〕(7-24)式中Pk为分段曲线的控制多边形的三个顶点:P0、P1和P2。2.几何性质由式(7-29)可以得出一阶导数

t∈〔0,1〕

(7-25)将t=0、t=1和t=1/2分别代入式(7-24)和(7-25)图7-30第i段二次B样条曲线段及其控制多边形

从图7-25可以看出二次B样条曲线的几何性质

1.

起点p(0)位于P0P1边的中点处,切矢量沿P0P1边的走向;终点p(1)位于P1P2边的中点处,切矢量沿P1P2边的走向;

2.p(1/2)正是p(0)、P1、p(1)三点所构成的三角形的中线P1Pm的中点,且p(1/2)处的切线平行于两个端点的连线p(0)p(1)。

3.

三个顶点P0P1P2确定的一段二次B样条曲线是一段抛物线。n个顶点定义的二次B样条,实际上是n-2段抛物线的连接。

4.

一般情况下,B样条曲线不经过控制点,曲线起点与前两个控制点有关,曲线终点与后两个控制点有关。

5.

由于二次B样条曲线在连接点处具有相同的切线方向,所以达到一阶连续性。7.4.3三次B样条曲线

1.矩阵表示三次B样条曲线的n=3,k=0,1,2,3。控制多边形有4个控制点P0、P1、P2

和P3。三次B样条曲线是三次多项式。三次B样条曲线的分段参数表达式为(i=0,1,2,…,m)对于i=0段曲线,写成矩阵形式为(7-26)t∈〔0,1〕Pk为分段曲线的控制多边形的四个顶点:P0、P1、P2

和P3。2.几何性质由(7-26)可以得出一阶导数和二阶导数(7-27)

t∈〔0,1〕

t∈〔0,1〕(7-28)令以t=0和t=1代入式(7-26)、(7-27)和(7-28),可得4个顶点P0P1P2P3确定一段三次B样条曲线。图7-26第i段三次B样条曲线控制多边形

2.

曲线终点p(1)位于△P1P2P3底边P1P3的中线P2Pn上,距P2点1/3处。切矢量p’(1)平行于△P1P2P3的底边P1P3,且长度为其1/2。二阶导数p”(1)沿中线矢量方向,长度等于的两倍。从图7-26可以看出三次B样条曲线的几何性质

1.

曲线的起点p(0)位于△P0P1P2底边P0P2的中线P1Pm上,且距P1点1/3处。其切矢量p’(0)平行于△P0P1P2的底边P0P2,且长度为其1/2。二阶导数p”(0)

沿中线矢量方向,长度等于的两倍。

3.

顶点P0P1P2P3确定一段三次B样条曲线不经过控制点,曲线起点与前三个控制点有关,终点与后三个控制点有关。4.

三次B样条曲线可以达到二阶连续性。

7.4.4B样条曲线的性质

1.连续性控制点PiPi+1Pi+2确定第i段二次B样条曲线,Pi+1Pi+2Pi+3确定第i+1段二次B样条曲线,第i+1段曲线的起点切矢量Pi+2-Pi+1沿Pi+1Pi+2边的走向,和第i段二次B样条曲线的终点切矢量相等,两段B样条曲线实现自然连接,但二次B样条曲线只能达到C1连续性。图7-27二次B样条曲线的连续性图7-28三次B样条曲线的连续性控制点PiPi+1Pi+2Pi+3确定第i段三次B样条曲线,如再添加一个顶点Pi+4,则Pi+1Pi+2Pi+3Pi+4可以确定第i+1段三次B样条曲线,且第i+1段三次B样条曲线的起点切矢量、二阶导数和第i段三次B样条曲线的终点切矢量和二阶导数相等,两段B样条曲线实现自然连接,三次B样条曲线可达到C2连续性。一般地,n次B样条曲线具有n-1阶导数的连续性。图7-29(a)所示的二次(n=2)B样条曲线,由7段曲线组成,共需要9个控制点;图7-29(b)所示的三次(n=3)B样条曲线,由6段曲线组成,共需要9个控制点。(a)二次B样条曲线(b)三次B样条曲线图7-29连续性示例2.局部性质在B样条曲线中,n次每段B样条曲线受n+1个控制点影响,改变一个控制点的位置,最多影响n+1个曲线段,其它部分曲线形状保持不变,如图7-30和图7-31所示。图7-30二次B样条曲线局部顶点修改图7-31三次B样条曲线局部顶点修改7.4.5构造特殊的三次B样条曲线的技巧

1.二重顶点2.三重顶点若要使B样条曲线与控制多边形的边相切,可使用二重点方法,如图7-32所示。图7-32二重点要想在曲线中出现尖点,可使用三重点方法,如图7-33所示。图7-33三重点3.三顶点共线4.四顶点共线当3个顶点共线时,△P1P2P3退化为一段直线。可用于处理两段弧的相接,如图7-34所示。图7-34三顶点共线用于处理两段曲线之间植入一段直线的问题,如图7-35所示

图7-35四顶点共线图7-36是使用多段三次B样条曲线绘制的“枫叶”一笔画的效果图。(a)控制多边形和三次B样条曲线(b)三次B样条曲线图7-36三次B样条曲线绘制的“枫叶”一笔画7.5B样条曲面

B样条曲面是B样条曲线的二维推广,给定(m+1)×(n+1)个控制点Pi,j(i=0,1,…,m;j=0,1,…,n),m×n次B样条曲面的定义为(u,v)∈〔0,1〕×〔0,1〕(7-29)式中,Pi,j(i=0,1,…,m;j=0,1,…,n)是(m+1)×(n+1)个控制点。是B样条基函数。7.5.1B样条曲面的定义

和7.5.2双三次B样条曲面的定义

(u,v)∈〔0,1〕×〔0,1〕(7-30

温馨提示

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

评论

0/150

提交评论