第6章曲线和曲面_第1页
第6章曲线和曲面_第2页
第6章曲线和曲面_第3页
第6章曲线和曲面_第4页
第6章曲线和曲面_第5页
已阅读5页,还剩248页未读 继续免费阅读

下载本文档

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

文档简介

第六章曲线和曲面三维图形的基本问题1.在二维屏幕上如何显示三维物体?显示器屏幕、绘图纸等是二维的显示对象是三维的解决方法----投影三维显示设备正在研制中2.如何表示三维物体?二维形体的表示----直线段,折线,曲线段,多边形区域三维形体的表示----空间直线段、折线、曲线段、多边形、曲面片表示形体的两种模型表示形体的两种模型数据模型完全以数据描述例如用以8个顶点表示的立方体以中心点和半径表示的球以数据文件的形式存在包括----特征表示、空间分割表示、推移表示、边界表示、构造实体几何表示等进一步分为线框模型表面模型实体模型线框模型线框模型:将形体表示成一组轮廓线的集合。一般地,画出了形体的棱线与轮廓线就能唯一地表示出来。如图,八个顶点可以定义一个长方体,但还不足以识别它,如果定义了棱线,则无论如何放置长方体都能唯一地表示了。对于多面体由于其轮廓线和棱线通常是一致的,所以多面体的线模型更便于识别,且简单。e12v4v8s3e2e4e6e8e2e7e11e10e9e3e1v2v3v1v7v5v6s2s6s5s1s4线框模型优点:简单、处理速度快缺点:1、对于非平面多面体,如圆柱、球等形体,其轮廓线随观察方向的改变而改变,无法用一组固定的轮廓线来表示它们。2、线框模型与形体之间不存在一一对应关系:它仅仅通过给定的轮廓线约束所表示形体的边界面,而在轮廓线之间的地方,形体的表面可以任意变化。3、没有形体的表面信息,不适于真实感显示,由此导致表示的形体可能产生二义性。表面模型表面模型将形体表示成一组表面的集合如果把线框模型中的棱线包围的部分定义为面,所形成的模型便是表面模型。其数据结构是在线模型的基础上附加一些指针,有序地连接棱线。下图中表面编号表示第几个表面,表面特征表面是平面还是曲面。形体与其表面一一对应,适合于真实感显示4顶点个数1起始指针0表面特征5表面编接指针属性顶点号14232341表面模型缺点:不能有效的用来表示实体原因:1、表面模型中的所有面未必形成一个封闭的边界2、各个面的侧向没有明确定义,即不知道实体位于面的哪一侧实体模型实体模型用来描述实体,主要用于CAD/CAM包含了描述一个实体所需的较多信息,如几何信息、拓扑信息,可以支持多种运算,如欧拉运算等。表示形体的两种模型过程模型以一个过程和相应的控制参数描述例如用一些控制参数和一个生成规则描述的植物以一个数据文件和一段代码的形式存在包括----粒子系统、L系统、迭代函数系统等三维对象两类表示方法数据模型边界表示Boundaryrepresentations空间区分Space-partitioningrepresentations过程模型L系统、分形…..RepresentationMethods边界表示使用一组平面或曲面逼近表示3D对象(描述轮廓)曲面将物体分为内外两部分。典型例子:多边形平面、样条曲面RepresentationMethodsRepresentationMethods空间分区表示用来描述物体内部性质将包含一物体的空间区域划分成一组较小的、非重叠的、邻接的实体。如:八叉树表示RepresentationMethods3DRepresentationmethods多边形表面PolygonSurfaces二次曲面样条表示:Bezier曲线立体构造Solid-Modeling八叉树Octrees分形FractalL系统…边界表示方法(第6章)空间区分表示方法不行还有我们!第7章6.0多边形表面三维图形中运用边界表示的最普遍方式是使用一组包围物体内部的表面多边形。很多图形系统以一组表面多边形来存储物体的描述。由于所有表面以线性方程加以描述,因此会简化并加速物体的表面绘制和显示。某些情况下,多边形表示是惟一可用的,但很多图形包也允许以其它方式对物体加以描述,如样条曲面,它在转换到多边形表示后加以处理6.0多边形表面多边形表数据表分为两组进行组织几何表:顶点坐标和用来标识多边形表面空间方向的参数点表、边表、面表属性表:指明物体透明度及表面反射度的参数和纹理特征多边形表面顶点表序号点坐标1x1,y1,z12x2,y2,z23x3,y3,z34x4,y4,z45x5,y5,z5边表序号顶点号1v1,v22v2,v33v3,v14v3,v45v4,v56v5,v1多边形面表序号边序号1E1,E2,E32E3,E4,E5,E6E1E2E4E5S1v2v1v3v4v5E3E6S2PolygonSurfaces多边形网格图形系统一般使用多边形网格对3D物体进行建模6.1曲线和曲面(第六章内容)曲线曲面的生成方法给定一组数学函数给定的一组数据点一旦给定函数,图形包将指定曲线方程投影到显示平面上,且沿着投影函数路径绘制像素位置。由函数式描述而生成的显示曲面的例子有二次曲面和超二次曲面

可以为简单的3D对象提供精确的描述6.2.1节球面三叶玫瑰线、圆柱螺线、圆锥螺线球面、椭球面、环面等6.1曲线和曲面二次曲面和超二次曲面不能表达复杂的曲线和曲面。例如飞机或汽车的流线表面…..使用样条表示6.1曲线和曲面本章内容曲线曲面基础知识曲线和曲面的表示(1)插值和逼近样条(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算6.1曲线和曲面表示方法曲线曲面的表示要求1.唯一性;2.几何不变性;3.易于定界;4.统一性5.易于实现光滑连接;6.几何直观曲线曲面表示方法显式表示:y=f(x)隐式表示:f(x,y)=0参数表示:P(t)=[x(t),y(t),z(t)]显式或隐式表示存在下述问题:(1)与坐标轴相关的,不便于坐标变换;(2)无法解决斜率为无穷大的情况;(3)对于空间复杂曲线曲面很难表示(4)不便于计算和编程参数表示:曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为:

空间曲线上任一三维点P可表示为:参数表示例子:直线圆参数表示的优点:(1)满足几何不变性的要求;(2)有更大的自由度来控制曲线曲面的形状;(3)便于坐标变换;(4)便于处理斜率为无限大的问题,不会因此中断计算;(5)代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,便于向高维空间扩展。(6)t∈[0,1],直接定义了边界。便于曲线和曲面的分段、分片描述。(7)易于用矢量和矩阵表示,从而简化了计算。参数曲线的代数形式和几何形式一条三次参数曲线的代数形式:矢量形式:给定P(0),P(1),以及P’(0),P’(1)解四个方程,求得参数令参数曲线的几何形式矩阵形式表示参数曲线:P=TA其中P=FBP=TMB表示一条参数曲线6.2位置矢量、切矢量、法矢量、曲率和挠率曲线上任一点的位置矢量可表示为:P(t)=[x(t),y(t),z(t)];切向量(切矢量)选择弧长s作为参数,则是单位切矢量。根据弧长微分公式有:于是有,即为单位矢量设曲线的参数方程是P=P(s),其上任一点的单位切矢量为T(s),称矢量方向上的单位矢量N(s)为曲线在s处的主法矢量,称过P(s)以N(s)为方向的直线为主法线。

T(s)为单位矢量,即,故得到:即主法矢量N(s)与切矢量T(s)垂直。

法矢量与平行的法矢量称为曲线在该点的主法矢量N矢量积是第三个单位矢量,它垂直于T和N。把平行于矢量B的法矢称为曲线的副法矢量我们可以推导出:T(切矢量)、N(主法矢量)和B(副法矢量)构成了曲线上的活动坐标架。N、B构成的平面称为法平面,N、T构成的平面称为密切平面,B、T构成的平面称为从切平面。密切面从切面法平面TBN主法线曲线的法矢量

曲率和挠率即称为曲率,其几何意义是曲线的单位切矢量对弧长的转动率。曲率k的倒数称为曲率半径。挠率的绝对值等于副法线方向(或密切平面)对于弧长的转动率..对于一般参数t,我们可以推导出曲率和挠率的计算公式如下:)(ssTD+)(sTTDO曲率和挠率(a)(b)1N1B1T0N0B0T0B1BqDqD本章内容曲线曲面基础知识曲线和曲面的表示(1)插值和逼近样条

(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算样条的历史很早的绘图员利用“ducks”和有柔性的木条(样条)来绘制曲线木质的样条具有二阶连续并且通过所有的控制点ADuck(weight)Duckstraceoutcurve6.3插值和逼近样条样条:通过一组指定点集而生成平滑曲线的柔性带。样条曲线在计算机图形学中的含义由多项式曲线段连接而成的曲线在每段的边界处满足特定的连续性条件样条曲面使用两组正交样条曲线进行描述样条样条在图形学中的应用设计曲线、曲面汽车车身设计、飞机和航天飞机表面的设计、船体设计以及家庭应用。曲线的产生给定一组离散的坐标点,将数据集拟合成指定的曲线函数根据曲线函数得到曲线的图形曲线的类型插值样条曲线:选取的多项式使得曲线通过每个控制点逼近样条曲线:选取的多项式不一定使曲线通过每个控制点给定一组有序的数据点Pi,i=0,1,…,n,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。线性插值:假设给定函数f(x)在两个不同点x1和x2的值,用一个线形函数:y=ax+b,近似代替,称为的线性插值函数。抛物线插值:已知在三个互异点的函数值为,要求构造一个函数使抛物线在结点处与在处的值相等。插值xyo1y2y)(xfy=)(xyj=1x2xxyo1y2y)(xfy=)(xyj=1x2x3x3y(a)(b)线性插值和抛物插值逼近:构造一条曲线使之在某种意义下最接近给定的数据点(但未必通过这些点),所构造的曲线称为逼近曲线。在计算数学中,逼近通常指用一些性质较好的函数近似表示一些性质不好的函数。曲线的逼近逼近求给定型值点之间曲线上的点称为曲线的插值。将连接有一定次序控制点的直线序列称为控制多边形或特征多边形。曲线的逼近凸壳凸壳的定义Convexhull包含一组控制点的凸多边形边界凸壳的作用提供了曲线或曲面与包围控制点的区域之间的偏差的测量以凸壳为界的样条保证了多项式沿控制点的平滑前进凸壳光顺(Firing)指曲线的拐点不能太多。对平面曲线而言,相对光顺的条件是:a.具有二阶几何连续性(G2);b.不存在多余拐点和奇异点;c.曲率变化较小。光顺假定参数曲线段pi以参数形式进行描述:参数连续性几何连续性参数连续性与几何连续性1.参数连续性0阶参数连续性记作C0连续性,是指曲线的几何位置连接,即1阶参数连续性记作C1连续性,指代表两个相邻曲线段的方程在相交点处有相同的一阶导数:2阶参数连续性,记作C2连续性,指两个相邻曲线段的方程在相交点处具有相同的一阶和二阶导数。

2.几何连续性0阶几何连续性,记作G0连续性,与0阶参数连续性的定义相同,满足:1阶几何连续性,记作G1连续性,指一阶导数在相邻段的交点处成比例;2阶几何连续性,记作G2连续性,指相邻曲线段在交点处其一阶和二阶导数均成比例。参数连续性条件两个相邻曲线段在相交处的参数导数相等零阶连续(C0连续):简单地表示曲线连接一阶连续(C1连续):说明代表两个相邻曲线的方程在相交点处有相同的一阶导数(切线)二阶连续(C2连续):两个曲线段在交点处有相同的一阶和二阶导数,交点处的切向量变化率相等参数连续性条件曲线分段构造时参数连续性条件零阶连续一阶连续二阶连续F(u)f(u)F(1)=f(0)F'(1)=f'(0)F''(1)=f''(0)几何连续性条件两个相邻曲线段在相交处的参数导数成比例零阶连续(G0连续):与0阶参数连续性相同,即两个曲线必在公共点处有相同的坐标一阶连续(G1连续):表示一阶导数在两个相邻曲线的交点处成比例二阶连续(G2连续):表示两个曲线段在相交处的一阶和二阶导数均成比例几何连续性条件插值样条曲线三次样条插值自然三次样条插值Hermite样条插值Cardinal样条插值Kochanek_Bartels样条插值逼近样条曲线Bezier曲线B_样条曲线本章内容曲线和曲面表示的基础知识曲线和曲面的表示(1)插值和逼近样条(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算6.4.1样条描述n次样条参数多项式曲线的矩阵:6.4Himerte样条 基矩阵 基函数(blengingfunction),或称混合函数。6.4.2三次样条给定n+1个点,可得到通过每个点的分段三次多项式曲线:6.4.3自然三次样条定义:给定n+1个型值点,现通过这些点列构造一条自然三次参数样条曲线,要求在所有曲线段的公共连接处均具有位置、一阶和二阶导数的连续性,即自然三次样条具有C2连续性。还需要两个附加条件才能解出方程组.

特点:1.只适用于型值点分布比较均匀的场合2.不能“局部控制”6.4.4三次Hermite样条定义:假定型值点Pk和Pk+1之间的曲线段为p(t),t∈[0,1],给定矢量Pk、Pk+1、Rk和Rk+1,则满足下列条件的三次参数曲线为三次Hermite样条曲线:

推导:几何形式对三次参数曲线,若用其端点位矢P(0)、P(1)和切矢P¢(0)、P¢(1)描述。将P(0)、P(1)、P¢(0)和P¢(1)简记为P0、P1、P¢0和P¢1,代入得

Mh是Hermite矩阵。Gh是Hermite几何矢量。三次Hermite样条曲线的方程为:

通常将T•Mk称为Hermite基函数(或混合函数,调和函数):

H(t)t10.20.40.60.80.20.40.60.81`-0.2H0(t)H1(t)H2(t)H3(t)Hermite基函数特点分析:1.可以局部调整,因为每个曲线段仅依赖于端点约束。2.Hermite曲线具有几何不变性本章内容曲线和曲面表示的基础知识曲线和曲面的表示(1)插值和逼近样条(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算6.5Bezier曲线6.5.1Bezier曲线的定义Bezier曲线的例子定义:其中,Pi构成该Bezier曲线的特征多边形Bernstein基函数具有如下形式:注意:当k=0,t=0时,tk=1,k!=1。

6.5.2Betnstein基函数的性质(1)正性

(2)端点性质

(3)权性

由二项式定理可知:(4)对称性

因为

(5)递推性。

即高一次的Bernstein基函数可由两个低一次的Bernstein调和函数线性组合而成。因为,(6)导函数

(7)最大值。在处达到最大值。(8)升阶公式

(9)积分1.一次Bezier曲线(n=1)

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

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

三次Bezier曲线四个Bezier基函数0tB0,3(t)B3,3(t)B1,3(t)B2,3(t)6.5.3Bezier曲线的性质1.端点

2.一阶导数

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

三次Bezier曲线段在起始点和终止点处的二阶导数为:当t=0时,当t=1时,上式表明:2阶导矢只与相邻的3个顶点有关,事实上,r阶导矢只与(r+1)个相邻点有关,与更远点无关。将、及、代入曲率公式,可以得到Bezier曲线在端点的曲率分别为:(4)对称性。由控制顶点构造出的新Bezier曲线,与原Bezier曲线形状相同,走向相反。因为:这个性质说明Bezier曲线在起点处有什么几何性质,在终点处也有相同的性质。(5)凸包性由于,且,这一结果说明当t在[0,1]区间变化时,对某一个t值,P(t)是特征多边形各顶点的加权平均,权因子依次是。在几何图形上,意味着Bezier曲线P(t)在中各点是控制点Pi的凸线性组合,即曲线落在Pi构成的凸包之中,如下图所示。Bezier曲线的凸包性凸包(6)几何不变性。这是指某些几何特性不随坐标变换而变化的特性。Bezier曲线位置与形状与其特征多边形顶点的位置有关,它不依赖坐标系的选择。(7)变差缩减性。若Bezier曲线的特征多边形是一个平面图形,则平面内任意直线与C(t)的交点个数不多于该直线与其特征多边形的交点个数,这一性质叫变差缩减性质。此性质反映了Bezier曲线比其特征多边形的波动还小,也就是说Bezier曲线比特征多边形的折线更光顺。(8)仿射不变性对于任意的仿射变换A:即在仿射变换下,的形式不变。6.5.4Bezier曲线的生成1.绘图一段Bezier曲线①利用定义式Bezier曲线的绘制,可以利用其定义式,对参数t选取足够多的值,计算曲线上的一些点,然后用折线连接来近似画出实际的曲线。随着选取点增多,折线和曲线可以任意接近。假设给定的四个型值点是P0=(1,1),Pl=(2,3),P2=(4,3),P3=(3,1),则计算结果见下表。t(1-t)33t(1-t)23t2(1-t)t3P(t)01000(1,1)0.150.6140.3250.05740.0034(1.5058,1.765)0.350.2750.4440.2390.043(2.248,2.376)0.50.1250.3750.3750.125(2.75,2.5)0.650.0430.2390.4440.275(3.122,2.36)0.850.00340.05740.3250.614(3.248,1.75)10001(3,1)②利用曲线性质(几何作图法和分裂法)a.几何作图法(deCasteljau算法)记点Pk,Pk+l,…,Pl可以生成的Bezier曲线为Pk,l(t),0≤t≤1,则成立下面的递推关系上式改写为:

几何作图法伪代码语言实现:voidbez_to_points(intn,doubleP[],intnpoints,doublepoints[])

//P为控制点坐标

//控制点P的个数为n+1

//points存储Bezier曲线上的离散点序列//离散点序列points的个数为npoints+1

{doublet,delt; delt=1.0/(double)npoints;//将参数tnpoints等分 t=0.0; for(inti=0;i<=npoints;i++) {

points[i]=decas(n,P,t);

//分别求出npoints+1个离散点points的坐标 t+=delt; }}doubledecas(intn,doubleP[],doublet){ intm,i; double*R,*Q,P0; R=newdouble[n+1];Q=newdouble[n+1]; for(i=0;i<=n;i++) R[i]=P[i];//将控制点坐标P保存于R中//n次Bezier曲线在点t的值,可由两条n-1次Bezier曲线在点t的值通过线性组合而求得。for(m=n;m>0;m--)

{for(i=0;i<=m-1;i++)Q[i]=R[i]+t*(R[i+1]-R[i]);for(i=0;i<=m-1;i++)R[i]=Q[i]; }P0=R[0];deleteR;deleteQ;return(P0);}

设给出四点的坐标是(1,1),(2,3),(4,3),(3,1),求所确定三次Bezier曲线在t=1/3时的值P(1/3),算法的计算过程

Bezier几何作图算法计算过程

b.分裂法思想:将原控制点集分为两个点数相同的新控制点集,分别对应原曲线的前半段和后半段,新控制点集比原控制点集更接近直线,分裂过程继续进行,控制点集会迅速向曲线靠近,当满足某个允许的界限时,可依次连接各点的折线来表示曲线

设控制点序列P0,P1,…,Pn确定的n次Bezier曲线是P(t),用如下递归方式计算另一组点集:

如果令Pa(s)和Pb(s)分别是以控制点序列和,确定的Bezier曲线,其中0≤s≤1,那么就有:己知四点P0,P1,P2,P3,确定了一条三次Bezier曲线P(t),可写出下式,

分裂法中的递归计算分裂法的示意图

验证Bezier曲线分成前后两段的正确性,P0的系数为例,验证两端它的系数是相等的。

设己知三次Bezier曲线P(t)的控制顶点是P0,P1,P2,P3,在P()处将曲线分为两段,求出前半段的控制顶点Q0,Ql,Q2,Q3和后半段的控制顶点R0,R1,R2,R3,。有算法如下voidsplit_Bezier(PointP[]){ PointR[4],Q[4]; inti,j; for(i=0;i<=3;i++) R[i]=P[i];

for(i=0;i<=2;i++)

{Q[i]=R[0]; for(j=0;j<=2-i;j++) {R[j].x=(R[j].x+R[j+1].x)/2;//分别对相邻两控制点间的线段进行分裂R[j].y=(R[j].y+R[j+1].y)/2;}} Q[3]=R[0];}分裂算法的计算分裂中止的条件:max(d(P1,P0P3),d(P2,P0P3))<εvoidnew_split_Bezier(PointP[]){PointR[4],Q[4]; inti,j; constdoubleepsilon=0.01; if(maxdistance(P)<epsilon)/*maxdistance(P)为求max(d(P1,P0P3),d(P2,P0P3))的函数*/{MoveTo(P[0].x,P[0].y); LineTo(P[3].x,P[3].y); }else {for(i=0;i<=3;i++)R[i]=P[i]; for(i=0;i<=2;i++) { Q[i]=R[0]; for(j=0;j<=2-i;j++) {R[j].x=(R[j].x+R[j+1].x)/2; R[j].y=(R[j].y+R[j+1].y)/2; }} Q[3]=R[0];new_split_Bezier(Q);new_split_Bezier(R); }}举例:三次Bezier曲线光滑拼接的条件

P0P1P2P3和Q0QlQ2Q3,两个bezier多边形①曲线在连接点处C0连续的条件是P3=Q0②

曲线在连接点处G1连续,Q‘0=aP’3 Q'0=3(Q1—Q0),P'3=3(P3—P2),Q1-Q0=a(P3-P2)

2.Bezier曲线的拼接由此得

③连接点处C2连续的条件对前面的公式求两次导数,可得,

于是知,要求,即注意到Q0=P3,由此得:6.5.5Bezier曲线的递推(deCasteljau)算法

计算Bezier曲线上的点,可用Bezier曲线方程,但使用deCasteljau提出的递推算法则要简单的多。如下图所示,设、、是一条抛物线上顺序三个不同的点。过和点的两切线交于点,在点的切线交和于和,则如下比例成立:

这是所谓抛物线的三切线定理。(示意图见下页)

0P1P2P11P10P20PBezier曲线上的点抛物线三切线定理当P0,P2固定,引入参数t,令上述比值为t:(1-t),有:t从0变到1,第一、二式就分别表示控制二边形的第一、二条边,它们是两条一次Bezier曲线。将一、二式代入第三式得:当t从0变到1时,它表示了由三顶点P0、P1、P2三点定义的一条二次Bezier曲线。并且表明:这二次Bezier曲线P20可以定义为分别由前两个顶点(P0,P1)和后两个顶点(P1,P2)决定的一次Bezier曲线的线性组合。依次类推,由四个控制点定P(t)=p0+(p1-p0)t义的三次Bezier曲线P30可被定义为分别由(P0,P1,P2)和(P1,P2,P3)确定的二条二次Bezier曲线的线性组合,由(n+1)个控制点Pi(i=0,1,...,n)定义的n次Bezier曲线Pn0可被定义为分别由前、后n个控制点定义的两条(n-1)次Bezier曲线P0n-1与P1n-1的线性组合:由此得到Bezier曲线的递推计算公式:这便是著名的deCasteljau算法。用这一递推公式,在给定参数下,求Bezier曲线上一点P(t)非常有效。上式中:是定义Bezier曲线的控制点,即为曲线上具有参数t的点。deCasteljau算法稳定可靠,直观简便,可以编出十分简捷的程序,是计算Bezier曲线的基本算法和标准算法。当n=3时,decasteljau算法递推出的Pki呈直角三角形,对应结果如下图所示。从左向右递推,最右边点P30即为曲线上的点。

0P1P2P3P10P11P12P20P21P30Pn=3时niP的递推关系这一算法可用简单的几何作图来实现。给定参数,就把定义域分成长度为的两段。依次对原始控制多边形每一边执行同样的定比分割,所得分点就是由第一级递推生成的中间顶点,对这些中间顶点构成的控制多边形再执行同样的定比分割,得第二级中间顶点。重复进行下去,直到n级递推得到一个中间顶点即为所求曲线上的点,如下图所示。

)3/1(30PP=011/3几何作图法求Bezier曲线上一点(n=3,t=1/3)0P1P2P3P10P11P12P20P21P6.5.6Bezier曲线的升阶与降阶1.Bezier曲线的升阶所谓升阶是指保持Bezier曲线的形状与定向不变,增加定义它的控制顶点数,也即是提高该Bezier曲线的次数。增加了控制顶点数,不仅能增加了对曲线进行形状控制的灵活性,还在构造曲面方面有着重要的应用。对于一些由曲线生成曲面的算法,要求那些曲线必须是同次的。应用升阶的方法,我们可以把低于最高次数的的曲线提升到最高次数,而获得同一的次数。曲线升阶后,原控制顶点会发生变化。下面,我们来计算曲线提升一阶后的新的控制顶点。设给定原始控制顶点,定义了一条n次Bezier曲线:

增加一个顶点后,仍定义同一条曲线的新控制顶点为,则有:

对上式左边乘以,得到:

比较等式两边项的系数,得到:

化简即得:

其中。此式说明:新的控制顶点是以参数值按分段线性插值从原始特征多边形得出的。升阶后的新的特征多边形在原始特征多边形的凸包内特征多边形更靠近曲线。三次Bezier曲线的升阶实例如下图所示。*00PP=1P2P*43PP=*1P*2P*3P

Bezier曲线升阶2.Bezier曲线的降阶降阶是升阶的逆过程。给定一条由原始控制顶点定义的n次Bezier曲线,要求找到一条由新控制顶点定义的n-1次Bezier曲线来逼近原始曲线。假定是由升阶得到,则由升阶公式有:从这个方程可以导出两个递推公式:

6.6Bezier曲面基于Bezier曲线的讨论,我们可以方便地可以给出Bezier曲面的定义和性质,Bezier曲线的一些算法也可以很容易扩展到Bezier曲面的情况。1.Bezier曲面定义:BENi,m(u)与BENj,n(v)是Bernstein基函数:

依次用线段连接点列中相邻两点所形成的空间网格,称之为特征网格。

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

2.双二次Bezier曲面(m=n=2)3.双三次Bezier曲面(m=n=3)双三次Bezier曲面及其控制网格P0,0P3,0P0,3P3,3P1,0P2,0P0,1P0,2P1,1P2,1P3,1P1,2P2,2P2,3P1,3P2,3Bezier曲面的矩阵表示式是:在一般实际应用中,不大于4。

其中性质:1.控制网格的四个角点正好是Bezier曲面的四个角点,2.控制网格最外一圈顶点定义Bezier曲面的四条边界,这四条边界均为Bezier曲线。3.几何不变性4.移动一个顶点Pi,j,将对曲面上参数为u=i/m,v=j/n的那点p(i/m,j/n)处发生最大的影响5.对称性6.凸包性2.Bezier曲面的拼接0阶连续性只要求相连接的曲面片具有公共的边界曲线。1阶连续性则要求在边界曲线上的任何一点,两个曲面片跨越边界的切线矢量应该共线,而且两切线矢量的长度之比为常数。如右图所示,设两张m×n次Bezier曲面片

分别由控制顶点和定义。),(vuP),(vuQ)0,0(P)1,0(P)0,1(Q)1,1(Q)0,0()0,1(QP=)1,0()1,1(QP=uvBezier曲面片的拼接

Bezier曲面片的拼接边界线P0,0Q3,0P3,3(Q0,3)P0,3Q3,3P3,1(Q0,1)P3,0(Q0,0)P3,2(Q0,2)实现G1连续性的条件为:(1)p1(1,v)=p2(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已知两张双三次Bezier曲面片:递推(deCasteljau)算法Bezier曲线的递推(deCasteljau)算法,可以推广到Bezier曲面的情形。若给定Bezier曲面特征网格的控制顶点和一对参数值,则:

(6.6.1)其中(6.6.2)

或(6.6.3)

(6.6.2)与(6.6.3)中的下标的变化范围已在(6.6.1)式中给出。上面给出了确定曲面上一点的两种方案。当按(6.6.2)式方案执行时,先以u参数值对控制网格u向的n+1个多边形执行曲线deCasteljau算法,m级递推后,得到沿v向由n+1个顶点构成的中间多边形。再以v参数值对它执行曲线的deCasteljau算法,n级递推以后,得到一个,即所求曲面上的点也可以按(6.6.3)式方案执行,先以v参数值对控制网格沿v向的m+1个多边形执行n级递推,得沿u向由m+1个顶点构成的中间多边形。再以u参数值对它执行n级递推,得所求点。

之所以有这样的算法,是因为本章内容曲线和曲面表示的基础知识曲线和曲面的表示(1)插值和逼近样条(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算6.7B样条曲线Bezier曲线和曲面的不足:Bezier曲线或曲面不能作局部修改;Bezier曲线或曲面的拼接比较复杂6.7.1B样条曲线B样条曲线(构造具有局部性的调和函数)给定n+1个控制点P0,P1,…,Pn,它们所确定的k阶B样条曲线是:

其中Ni,k(u)递归定义如下:

这里u0,u1,…,un+k,是一个非递减的序列,称为节点,(u0,u1,…,un+k)称为节点向量。定义中可能出现,这时约定为0。

例一:选取,n=2,k=1,控制顶点是P0,P1,P2,这样应选择参数节点n+k+1=4个,设节点向量是(u0,u1,u2,u3),按式定义,可写出三个基函数:

由公式可知所定义的B样条曲线是任意一阶B样条曲线是控制点本身,可以看作是0次多项式

例二.选取n=3,k=2,于是有四个控制顶点P0,P1,P2,P3,应有参数节点n+k+1=6个,设节点向量是(0,0,1,2,3,3),试画出所确定的2阶B样条曲线。取u=0.5,进行计算。因为0.5∈[0,1]=[u1,u2],因此N1,1(0.5)=1,而其它的Ni,1(0.5)=0,i≠1。再取u其它一些值进行计算,结果如表所示。u00.511.522.53N0,2(u)10.500000N1,2(u)00.510.5000N2,2(u)0000.510.50N3,2(u)000000.51P(u)P00.5(P0+P1)P10.5(P1+P2)P20.5(P2+P3)P3二阶B样条曲线是连接各控制点的线段组成的折线,是一次多项式例三.选取n=3,k=4,平面上四个控制顶点P0,P1,P2,P3的坐标依次是(1,1),(2,3),(4,3),(3,1),这时应取参数节点n+k+1=8个,设选取节点向量为(0,0,0,0,1,1,1,1),求所确定的4阶B样条曲线。计算N1,4(0.5),其中0.5∈[0,1]=[u3,u4]

N3,1(0.5)=1,而对i≠3,Ni,1(0.5)=0。

用类似的过程可计算求出:

曲线上对应参数u=0.5的点是:

证明:四个控制点(n=3)所确定的四阶(K=4)B样条曲线(节点向量为(0,0,0,0,1,1,1,1))就是它们所确定的Bezier曲线B样条曲线的定义B样条曲线的数学表达式为:

在上式中,0≤

t≤1;i=0,1,2,…,m所以可以看出:B样条曲线是分段定义的。如果给定m+n+1个顶点Pi(i=0,1,2,…,m+n),则可定义m+1段n次的参数曲线。在以上表达式中:Fk,n(t)为n次B样条基函数,也称B样条分段混合函数。其表达式为:

式中:0≤t≤1,k=0,1,2,…,n连接全部曲线段所组成的整条曲线称为n次B样条曲线。依次用线段连接点Pi+k(k=0,1,…,n)所组成的多边折线称为B样条曲线在第i段的B特征多边形。3.二次B样条曲线在二次B样条曲线中,n=2,k=0,1,2;故其基函数形式为有了基函数,因此可写出二次B样条曲线的分段表达式为:

(i=0,1,2,…,m)m+1段写成一般的矩阵形式为:

式中,Bk为分段曲线的特征多边形的顶点:B0,B1,B2。对于第i段曲线的Bk即为:Pi,Pi+1,Pi+2连续的三个顶点。(见下图)

n=2,二次B样条曲线m+n+1个顶点,三点一段,共m+1段。i=0P0,2(t)i=1P1,2(t)

二次B样条曲线的性质先对P(t)求导得:

然后分别将t=0,t=0.5,t=1代入P(t)和P’(t),可得:P(0)=1/2(B0+B1),P(1)=1/2(B1+B2);P’(0)=B1-B0,P’(1)=B2-B1;P(1/2)=1/2{1/2[P(0)+P(1)]+B1}P’(1/2)=1/2(B2-B0)=P(1)-P(0)是什么曲线?与Bezier曲线有何差别?与以上这些式子所表达的性质相符的曲线是何种形状:(见下图)结论:分段二次B样条曲线是一条抛物线;有n个顶点定义的二次B样条曲线,其实质上是n-2段抛物线(相邻三点定义)的连接,并在接点处达到一阶连续。(见下图)6.7.2B样条曲线的性质1.局部支柱性

B样条的基函数是一个分段函数,其重要特征是在参数变化范围内,每个基函数在tk到tk+m的子区间内函数值不为零,在其余区间内均为零,通常也将该特征称为局部支柱性。

B样条曲线的局部支柱性P0P1P2P3P″4P5P6P7P4P′42.B样条的凸组合性质

B样条的凸组合性和B样条基函数的数值均大于或等于0保证了B样条曲线的凸包性,即B样条曲线必处在控制多边形所形成的凸包之内。

B样条曲线与Bezier曲线的凸包性比较B样条曲线Bezier曲线Bezier曲线B样条曲线m=3m=4m=5(a)B样条曲线和Bezier曲线的凸包比较(b)B样条曲线和Bezier曲线的比较B样条凸包Bezier凸包B样条凸包B样条凸包Bezier凸包Bezier凸包3.连续性若一节点矢量中节点均不相同,则m阶(m-1次)B样条曲线在节点处为m-2阶连续。B样条曲线基函数的次数与控制顶点个数无关。重节点问题

具有重节点的三次B样条t0t1t2t3t44.导数

5.几何不变性6.变差减少性节点矢量:节点矢量分为三种类型:均匀的,开放均匀(准均匀)的和非均匀的。B样条曲线分为四种:均匀B样条曲线、非均匀B样条曲线、开放均匀B样条曲线和分段Bezier曲线当节点沿参数轴均匀等距分布,即tk+1-tk=常数时,表示均匀B样条曲线。当节点沿参数轴的分布不等距,即(tk+1-tk)≠常数时,表示非均匀B样条曲线。6.7.2B样条曲线类型划分开放均匀B样条(准均匀)与均匀B样条曲线的差别在于两端节点具有重复度k,这样的节点矢量定义了准均匀的B样条基。均匀B样条曲线没有保留Bezier曲线端点的几何性质,即样条曲线的首末端点不再是控制多边形的首末端点。采用准均匀的B样条曲线解决了这个问题准均匀三次B样条曲线分段Bezier曲线节点矢量中两端节点具有重复度k,所有内节点重复度为k-1,这样的节点矢量定义了分段的Bernstein基。三次分段Bezier曲线1.均匀周期性B样条曲线节点取值:T=(-2,-1.5,-1,-0.5,0,0.5,1,1.5,2)T=(0,1,2,3,4,5,6,7)均匀B样条的基函数呈周期性:均匀二次(三阶)B样条曲线 取n=3,m=3,则n+m=6,不妨设节点矢量为:T=(0,1,2,3,4,5,6):基函数由递推转换到直接定义可以把不同段的时间进行移动例如:t在[2,3]设置为t=t-2;依次改为t=t-1;t=t注意顺序颠倒。即t=t-2变为F0,3。以下相同处理。

tBk,3(t)214351

四段二次(三阶)均匀B样条基函数N0,3(t)N1,3(t)N2,3(t)N3,3(t)曲线的起点和终点值:均匀二次B样条曲线起点和终点处的导数:

四个控制点的二次周期性B样条曲线P0P1P2P3局部性。k阶B样条曲线上参数为的一点至多与k个控制顶点有关,与其它控制顶点无关;移动该曲线的第i个控制顶点Pi至多影响到定义在区间上那部分曲线的形状,对曲线的其余部分不发生影响。仿射不变性即在仿射变换下,的表达式具有形式不变性。直线保持性控制多边形退化为一条直线时,曲线也退化为一条直线。造型的灵活性。用B样条曲线可以构造直线段、尖点、切线等特殊情况.对于四阶(三次)B样条曲线.若要在其中得到一条直线段,只要四点位于一条直线上为了使P(t)能过P(i)点,只要使重合尖点也可通过三重节点的方法得到为了使曲线和某一直线L相切,只要取位于L上及的重数不大于2。结论:对于由任意数目的控制点构造的二次周期性B样条曲线来说,曲线的起始点位于头两个控制点之间,终止点位于最后两个控制点之间。对于高次多项式,起点和终点是m-1个控制点的加权平均值点。若某一控制点出现多次,样条曲线会更加接近该点。三次(四阶)周期性B样条取m=4,n=3,节点矢量为:T=(0,1,2,3,4,5,6,7):三次周期性B样条的边界条件为:P0P1P2P3

四个控制点的三次均匀B样条曲线重点讨论均匀B样条曲线:参数节点中参数u的每一区间为等长时所得到的B样条函数称为是等距的,或均匀B样条曲线。可假定ui=i,i=0,1,…,n+k,设tj=u-ui+j,ui+j≤u≤ui+j+1与0≤tj≤1是等价的。

递归式,经过计算,可以写出:

如果固定在ui+3≤u≤ui+4区间,可以写出:

令i=0,可写出四个B样条基函数:设给出n+1个控制点P0,P1,…,Pn,则所确定的4阶3次等距B样条曲线是:4阶3次等距B样条曲线曲线的性质

性质一:曲线在拚接处是连续的,一阶和二阶导数也是连续的。因此4阶3次等距B样条曲线:虽然分段定义,但各段拚接处有直到二阶导数的连续性,整条曲线是光滑的。

性质2:4阶3次等距B样条曲线具有凸包性,这通过验证0≤Nj,4(u)≤1,0≤j≤3及

性质3:B样条曲线具有局部性当移动一个控制点时,只对其中的一段曲线有影响,并不对整条曲线产生影响。如图4.22所示是一条B样条曲线。该图表示控制点P5变化后曲线变化的情况。由图可见P5变化只对其中一段曲线有影响。

性质4:用B样条曲线可构造直线段、尖点、切线等特殊情况。灵活选择控制点的位置和节点ui的重复数,可形成许多特殊情况的B样条曲线

2.开放均匀B样条曲线节点矢量可以这样定义:令L=n-m,从0开始,按ti≤ti+1排列。

开放均匀的二次(三阶)B样条曲线假设m=3,n=4,节点矢量为:T=(t0,t1,,tn+m)=(t0,t1,t2,t3,t4,t5,t6,t7)=(0,0,0,1,2,3,3,3)。

开放均匀的二次B样条基函数Bk,3(t)tB0,3(t)B1,3(t)B3,3(t)B2,3(t)B4,3(t)12313.非均匀B样条曲线

非均匀B样条曲线的基函数Bk,m(t)t12314.反求B样条曲线控制点及其端点性质 问题:所谓反求B样条曲线控制点是指已知一组空间型值点Qi(i=1,2,,n),要找一条m次B样条曲线过Qi点,也即找一组与点列Qi对应的B样条控制顶点Pj(j=0,1,,n+1)。

用分段三次B样条曲线pi来拟合,其上型值点和控制点的位置矢量之间有关系:假定需求首末两点过Q1和Qn的非周期三次B样条曲线,则有P1=Q1,Pn=Qn,于是求解控制点Pj(i=2,3,...,n-1)的线性方程组为:

补充两个边界条件为:P0=P-1=Q1Pn+1=Pn+2=Qn

6.7.3deBoor-Cox递推定义参数说明m是曲线的阶数,(m-1)为B样条曲线的次数,曲线在连接点处具有(m-2)阶连续。tk是节点值:约定:6.8B样条曲面定义:控制顶点、控制网格(特征网格)、B样条基函数。B样条曲面具有与B样条曲线相同的局部支柱性、凸包性、连续性、几何变换不变性等性质。双三次B样条曲面本章内容曲线和曲面表示的基础知识曲线和曲面的表示(1)插值和逼近样条(2)Bezier曲线曲面(3)B样条曲线曲面(4)Hermite样条曲线

(5)有理样条曲线曲面(6)曲线曲面的转换和计算6.9有理样条曲线曲面:NURBSB样条曲线包括其特例的Bezier曲线都不能精确表示出抛物线外的二次曲线,B样条曲面包括其特例的Bezier曲面都不能精确表示出抛物面外的二次曲面,而只能给出近似表示。提出NURBS方法,即非均匀有理B样条方法主要是为了找到与描述自由型曲线曲面的B样条方法既相统一、又能精确表示二次曲线弧与二次曲面的数学方法。NURBS方法:非均匀有理B样条(NonuniformRationalB-Spline)方法8.5.1NURBS曲线曲面的定义定义: 6.9.1NURBS曲线的定义NURBS曲线是由分段有理B样条多项式基函数定义的Ri,k(t)具有k阶B样条基函数类似的性质:局部支承性:Ri,k(t)=0,t[ti,ti+k]权性:可微性:如果分母不为零,在节点区间内是无限次连续可微的,在节点处(k-1-r)次连续可导,r是该节点的重复度。若i=0,则Ri,k(t)=0;若i=+,则Ri,k(t)=1;NURBS曲线与B样条曲线具有类似的几何性质:局部性质。变差减小性质。凸包性。在仿射与透射变换下的不变性。在曲线定义域内有与有理基函数同样的可微性。如果某个权因子为零,那么相应控制顶点对曲线没有影响。若,则当时,Bezier曲线和非有理B样条曲线是NURBS曲线的特殊情况齐次坐标表示齐次坐标系xyw中的控制顶点为k阶非有理B样条曲线可表示为:以坐标原点为投影中心,则得到平面曲线yxw0P1P2P)(tPw0Pw1Pw2P)(tPw1=w平面NURBS曲线齐次坐标表示三维空间的NURBS曲线可以类似地定义。非有理B样条的算法可以推广到NURBS曲线,只不过是在齐次坐标下进行。权因子的几何意义如果固定曲线的参数t,而使变化,则NURBS曲线方程变成以为参数的直线方程,即NURBS曲线上t值相同的点都位于同一直线上。分别是对应曲线上的点,即N,Bi可表示为:(Pi,Bi,N,B)四点的交比(1)若i增大或减小,则也增大或减小,所以曲线被拉向或推离开Pi点;(2)若j增大或减小,曲线被推离或拉向Pj(ji)。B0P1P2P3P4P5PiBNNURBS曲线中的权因子的作用圆锥曲线的NURBS表示取节点向量为则NURBS曲线退化为二次Bezier曲线,且可以证明,这是圆锥曲线弧方程。称为形状因子,

的值确定了圆锥曲线的类型。时,上式是抛物线弧,

时,上式是双曲线弧,时,上式是椭圆弧。时,上式退化为一对直线段P0P1和P1P2,时,上式退化为连接两点P0P2的直线段1P2P0P椭圆抛物线双曲线圆锥曲线的NURBS表示NURBS曲线的修改常用的方法有修改权因子、控制点和反插节点。修改权因子当保持控制顶点和其它权因子不变,减少或增加某权因子时,曲线被推离或拉向相应顶点。N

修改权因子iPSBS*欲将曲线在该点S拉向或推离控制顶点Pi一个距离d,以得到新点S’,可由重新确定相应的权因子使之改变为来达到修改控制顶点修改控制顶点的位置,曲线随之变形。 例:假定用定义在三个控制顶点和开放均匀的节点矢量上的二次(三阶)B样条函数来拟合,于是,T=(0,0,0,1,1,1),取权函数为:则有理B样条的表达式为:然后取不同的r值得到各种二次曲线:

P1P0P2双曲线抛物线直线椭圆由不同有理样条权因子生成的二次曲线段由有理样条函数生成的第一象限上的圆弧xyP1(1,1)P2(1,0)P0(0,1)aNURBS曲面可由下面的有理参数多项式函数表示:6.9.2有理基函数的性质NURBS曲线也可用有理基函数的形式表示:

1.普遍性2.局部性3.凸包性4.可微性5.权因子本章内容曲线和曲面表示的基础知识曲线和曲面的表示(1)插值和逼近样条(2)Hermite样条曲线(3)Bezier曲线曲面(4)B样条曲线曲面

(5)

有理样条曲线曲面(6)曲线曲面的转换和计算6.10曲线曲面的转换和计算6.10.1样条曲线曲面的转换

例:

三次Hermite样条矩阵:三次

温馨提示

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

评论

0/150

提交评论