bezier曲线曲面的性质及其应用_第1页
bezier曲线曲面的性质及其应用_第2页
bezier曲线曲面的性质及其应用_第3页
bezier曲线曲面的性质及其应用_第4页
bezier曲线曲面的性质及其应用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计论文BEZIER曲线曲面的绘制及性质研究学院名称理学院专业班级信息与计算科学(试点10)学生姓名导师姓名年月日1目录摘要2第一章绪论311发展历程312开发工具VISUALC60简介4第二章曲线基础521曲线的参数表示522插值与逼近6221插值6221逼近7231函数的可微性8232几何连续性824样条描述925三次样条9第三章BEZIER曲线与BEZIER曲面1231BEZIER曲线12311BEZIER曲线的定义12312BEZIER曲线的性质15313BEZIER曲线的拼接16314BEZIER曲线的绘制18315BEZIER曲线的几个不足1932BEZIER曲面19321BEZIER曲面的定义20322BEZIER曲面的性质20323BEZIER曲面的绘制21324BEZIER曲面的拼接2333自由曲线是自由曲面的基础24参考文献25附录25致谢302摘要计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。它的重要性体现在人们越来越强烈地需要和谐的人机交互环境图形用户界面已经成为一个软件的重要组成部分,可视化已经成为信息领域的一个重要发展趋势。样条曲线发展迅速。在基于PC系统的PHOTOSHOP、3DMAX、AUTOCAD、MAYA等建模工具中,“样条曲线”以“基本图形对象”的存在形式,实现平面绘图、立体绘图基本功能,是“三维动画”的重要组成元素;样条曲线也是几何造型技术的重要内容。“BEZIER和B样条曲线”在样条曲线的发展史中举足轻重,诸多其他曲线都是由它们发展而来的。本文主要的工作是系统的研究和整理BEZIER曲线曲面的算法、性质、作用以及样条曲线的其他相关基础知识,并基于VC60对曲线进行绘制。结合在VC60上实现的BEZIER曲线,对其性质进行直观的分析和比较。最后点明样条曲线是自由曲面的基础。关键词计算机图形学样条曲线BEZIER曲线。ABSTRACTCOMPUTERGRAPHICSASCIENTIFICTHATUSEMATHEMATICALALGORITHMSMAKESTWODIMENSIONALORTHREEDIMENSIONALGRAPHICSINTOTHEGRIDINTHEFORMOFACOMPUTERMONITORSIMPLYPUT,THEMAINCONTENTOFCOMPUTERGRAPHICSISTOSTUDYHOWTOREPRESENT,CALCULATE,ANDDISPLAYGRAPHICSINTHECOMPUTER,THEIMPORTANCEOFITWASREFLECTEDINTHEGROWINGSTRONGNEEDFORAHARMONIOUSHUMANCOMPUTERINTERACTIONENVIRONMENTGRAPHICALUSERINTERFACEHASBECOMEANIMPORTANTPARTOFTHESOFTWARE,VISUALIZATIONHASBECOMEANIMPORTANTDEVELOPMENTTRENDOFINFORMATIONFIELDSSPLINECURVEISDEVELOPINGRAPIDLYAMONGPCBASEDSYSTEM,PHOTOSHOP,3DMAX,AUTOCAD,MAYAANDOTHERMODELINGTOOLS,SPLINECURVEHAVEBASICFUNCTIONOFDIMENSIONALDRAWINGSANDTHREEDIMENSIONALDRAWINGFORITS“BASICGRAPHICOBJECT“FORM,SPLINECURVEISAVITALCOMPONENTOF“THREEDIMENSIONALANIMATION,“ITISALSOANIMPORTANTCONTENTOFGEOMETRICMODELINGTECHNIQUES“BEZIERANDBSPLINECURVE“ISIMPORTANTINTHEDEVELOPMENTOFSPLINECURVE,MANYOTHERCURVESAREEVOLVEDBASEDONTHEMTHISPAPERHASACOMPREHENSIVE,SYSTEMATICANDDEEPRESEARCHONBEZIERCURVEALGORITHMANDOTHERBASICKNOWLEDGEANDBASEDONVC60DRAWTHECURVECOMBINEDWITHBEZIERCURVESONVC60ACHIEVE,INTUITIVEANALYSISANDCOMPARISONOFTHEIR3PROPERTIESFINALLYHIGHLIGHTEDSPLINEISTHEFOUNDATIONOFFREEDOMSURFACESKEYWORDSCOMPUTERGRAPHICSSPLINECURVEBEZIERCURVES第一章绪论曲面造型SURFACEMODELING是计算机辅助几何设计COMPUTERAIDEDGEOMETRICDESIGN,CAGD和计算机图形学的一项重要内容,主要研究在计算机图象系统的环境下对曲面的表示、设计、显示和分析。它起源于汽车、飞机、船舶、叶轮等的外形放样工艺,由COONS、BEZIER等大师于二十世纪六十年代奠定其理论基础。经过三十多年的发展,曲面造型现在已形成了以有理B样条曲面RATIONALBSPLINESURFACE参数化特征设计和隐式代数曲面IMPLICITALGEBRAICSURFACE表示这两类方法为主体,以插值INTERPOLATION、逼近APPROXIMATION这二种手段为骨架的几何理论体系。11发展历程形状信息的核心问题是计算机表示,既要适合计算机处理,且有效地满足形状表示与设计要求,又便于信息传递和数据交换的数学方法。像飞机、汽车、轮船等具有复杂外形产品的表面是工程中必须解决的问题。曲面造型的目的就在如此。1963年美国波音(BOEING)飞机公司的佛格森(FERGUSON)最早引入参数三次曲线(三次HERMITE插值曲线),将曲线曲面表示成参数矢量函数形式,构造了组合曲线和由四角点的位置矢量、两个方向的切矢定义的佛格森双三次曲面片,从此曲线曲面的参数化形式成为形状数学描述的标准形式。仅用端点的位置和切矢控制曲线形状是不够的,中间的形状不易控制,且切矢控制形状不直接。1964年,美国麻省理工学院(MIT)的孔斯(COONS)用四条边界曲线围成的封闭曲线来定义一张曲面,FERGUSON曲线曲面只是COONS曲线曲面的特例。而孔斯曲面的特点是插值,即构造出来的曲面满足给定的边界条件,例如经过给定边界,具有给定跨界导矢等等。但这种方法存在形状控制与连接问题。1964年,舍恩伯格(SCHOENBERG)提出了参数样条曲线、曲面的形式。1971年,法国雷诺(RENAULT)汽车公司的贝塞尔(BEZIER)发表了一种用控制多边形定义曲线和曲面的方法。这种方法不仅简单易用,而且漂亮地解决了整体形状控制问题,把曲线曲面的设计向前推进了一大步,为曲面造型的进一步发展奠定了坚实的基础。但当构造复杂曲面时,BEZIER方法仍存在连接问题和局部修改问题。同期,法国雪铁龙(CITROEN)汽车公司的德卡斯特里奥(DECASTELIJAU)也独立地研究出与BEZIER类似的方法。1972年,德布尔(DEBOOR)给出了B样条的标准计算方法。41974年,美国通用汽车公司的戈登(GORDEN)和里森费尔德(RIESENFELD)将B样条理论用于形状描述,提出了B样条曲线和曲面。这种方法继承了BEZIER方法的一切优点,克服了BEZIER方法存在的缺点,较成功地解决了局部控制问题,又轻而易举地在参数连续性基础上解决了连接问题,从而使自由型曲线曲面形状的描述问题得到较好解决。但随着生产的发展,B样条方法显示出明显不足,不能精确表示圆锥截线及初等解析曲面,这就造成了产品几何定义的不唯一,使曲线曲面没有统一的数学描述形式,容易造成生产管理混乱。1975年,美国锡拉丘兹(SYRACUSE)大学的佛斯普里尔(VERSPRILL)提出了有理B样条方法。80年代后期皮格尔(PIEGL)和蒂勒(TILLER)将有理B样条发展成非均匀有理B样条方法(即NURBS),并已成为当前自由曲线和曲面描述的最广为流行的技术。NURBS方法的突出优点是可以精确地表示二次规则曲线曲面,从而能用统一的数学形式表示规则曲面与自由曲面,而其它非有理方法无法做到这一点;具有可影响曲线曲面形状的权因子,使形状更宜于控制和实现;NURBS方法是非有理B样条方法在四维空间的直接推广,多数非有理B样条曲线曲面的性质及其相应算法也适用于NURBS曲线曲面,便于继承和发展。由于NURBS方法的这些突出优点,国际标准化组织ISO于1991年颁布了关于工业产品数据交换的STEP国际标准,将NURBS方法作为定义工业产品几何形状的唯一数学描述方法,从而使NURBS方法成为曲面造型技术发展趋势中最重要的基础。12开发工具VISUALC60简介VISUALC60,简称VC或者VC60,是微软推出的一款C编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。VISUALC是一个功能强大的可视化软件开发工具。自1993年MICROSOFT公司推出VISUALC10后,随着其新版本的不断问世,VISUALC已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VISUALCNETVISUALC70,但它的应用的很大的局限性,只适用于WINDOWS2000、WINDOWSXP和WINDOWSNT40。所以实际中,更多的是以VISUALC60为平台。VISUALC60不仅是一个C编译器,而且是一个基于WINDOWS操作系统的可视化集成开发环境(INTEGRATEDDEVELOPMENTENVIRONMENT,IDE)。VISUALC60由许多组件组成,包括编辑器、调试器以及程序向导APPWIZARD、类向导CLASSWIZARD等开发工具。这些组件通过一个名为DEVELOPERSTUDIO的组件集成为和谐的开发环境。MFCMICROSOFTFOUNDATIONCLASSES是微软基础类库的简称,是微软公司实现的一个C类库,主要封装了大部分的WINDOWSAPI函数,VC是微软公司开发的C/C的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说VC呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DEVC其中一个编译器内核就5是GCC。MFC除了是一个类库以外,还是一个框架,你应该试过,在VC里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了MFCXXDLL。XX是版本,它封装了MFC内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。第二章曲线基础21曲线的参数表示曲线的表示可以分为参数表示和非参数表示两种,其中非参数表示又可分为显式表示和隐式表示两种。对于一个平面曲线,显式表示一般形式是YFX。在此方程中,一个X值与一个Y值对应,所以显式方程不能表示封闭或多值曲线,例如,不能用显式方程表示一个圆。如果一个平面曲线方程,表示成FX,Y0的形式,则称之为隐式表示。隐式表示的优点是易于判断函数FX,Y是否大于、小于或等于零,也就易于判断点是落在所表示曲线上或曲线的哪一侧。非参数方程的缺点是与坐标轴相关;会出现斜率为无穷大的情形(如垂线);对于非平面曲线,难以用常数系数的非参数化函数表示;不便于计算机编程。由于参数表示的曲线具有几何不变性等优点,计算机图形学中通常用参数形式描述曲线。在几何造型系统中,曲线方程通常表示成参数的形式,即曲线上任一点的坐标均表示成给定参数的函数。假定用T表示参数,平面曲线上任一点P可表示为,PTXTYT21空间曲线上任一三维点P可表示为,PTXTYTZT22最简单的参数曲线是直线段,端点为1P、2P的直线段参数方程可表示为1210,1PTPPPTT23圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数显式表示为210X1YX6其参数形式可表示为22212,T0,111TTPTTT24在曲线的表示上,参数方程比显式、隐式方程有更多的优越性,主要表现在一下几点。(1)可以满足几何不变性的要求。(2)有更大的自由度来控制曲线的形状。(3)对非参数方程表示的曲线进行变换,必须对曲线上的每个型值点进行几何变换;而对参数表示的曲线可对其参数方程直接进行几何变换。(4)便于处理斜率为无穷大的情形,不会因此而中断计算。(5)参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中曲线扩展到高维空间去。这种变量分离的特点使人们可以用数学公式处理几何分量。(6)规格化的参数变量T,使其相应的几何分量是有界的,而不必用另外的参数去定义边界。(7)易于用向量和矩阵表示几何分量,简化了计算。22插值与逼近221插值给定一组有序的数据点IPI0,1,2,N,构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。1线性插值假设给定函数FX在两个不同点1X和2X的值,用一个线形函数YXAXB,近似代替FX,称X为FX的线性插值函数。其中线性函数的系数是A,B,通过条件1122XYXYX可表示为1211112211221YYXXYYXYXXYYXXXXYY2572抛物线插值抛物线插值又称为二次插值。设已知FX在3个互异点1X,2X,3X的函数值为1Y,2Y,3Y,要求构造一个函数2YXAXBXC,使X在结点1,2,3IXI处与FX在IX处的值相等。由此可构造1,2,3IIXFXYI的线性方程组,求得A,B,C,即构造了X的插值函数。图21曲线的插值221逼近当型值点较多时,构造插值函数通过所有型值点是相当困难的。而测量所得的数据点本身比较粗糙,使得构造精确的插值函数也是没有意义的。这时通常选择一个次数较低的函数,构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。插值和逼近则统称为拟合。逼近的方法最常用的是最小二乘法,假设给定一组数据点,1,2,IIXYIN,要求构造一个逼近函数YFX。令FX是M次多项式,即0MJJJFXAX逼近的程度可以通过各点偏差的平方和来度量。最小二乘问题就是要求出各系数JA,使偏差的平方和最小,即求解式56所示函数的极值问题22110NNMJJIIJIIIIJAFXYAXY26如要取到极值,则10200,1,NMJJJKKKKJIAXYXIMA278这里只有M1个系数JA是未知量,可通过求解M1个方程得出。将系数JA带入多项式函数FX即可得到所求的逼近函数。图22曲线的逼近23连续性设计一条复杂曲线时,常常通过多段曲线组合而成,这需要解决曲线段之间如何实现光滑连接的问题。曲线间连接的光滑度的度量有以下两种。231函数的可微性把组合参数曲线构造成在连接处具有直到N阶连续,即N阶连续可微,这类光滑度称之为NC或N阶参数连续性。232几何连续性组合曲线在连接处满足不同于NC的某一组约束条件,称为具有N阶几何连续性,简记为NG。曲线光滑度的这两种度量方法并不矛盾,NC连续包含在NG连续之中。对于曲线PT和QT,参数0,1T。若要求在接合处达到0G连续或0C连续,即两曲线在结合处位置连续,有10PQ28若要求在结合处达到1G连续,就是说两条曲线在结合处在满足0G连续的条件下,并有公共的切线向量10PQ29当1时,1G连续就称为1C连续。若要求在结合处达到2G连续,就是说两条曲线在结合处在满足1G连续的条件下,并有公共的曲率911003310PPQQPQ210将式29及式210合并整理,得2110PQ211这个关系为2011QPP212为任意函数。当1,0时,2G连续就称为2C连续。24样条描述样条(SPLINE)一词来源于工程绘图人员为了将一些指定点连接成一条光顺曲线所使用的工具,即富有弹性的细木条或薄钢条。最初,样条曲线都是借助于物理样条得到的,放样员把富有弹性的细木条(或有机玻璃条),用压铁固定在曲线应该通过的给定型值点处,样条做自然弯曲所绘制出来的曲线就是样条曲线。样条曲线不仅通过各有序型值点,并且在各型值点处的一阶和二阶导数连续,也即该曲线具有连续的、曲率变化均匀的特点。在计算机图形学中,样条曲线是指由多项式曲线段连接而成的曲线,在每段边界处满足特定的连续性条件。通常用式29来描述N次样条参数多项式曲线212102121021210T0,1NNNNNNXTATATATAYTBTBTBTBZTCTCTCTC213将式29写成矩阵乘积的形式,得1110001T0,1NNNNABCXTPTYTTTTCABCZTABC214其中C为N13阶的系数矩阵,T为N1个幂形式的基函数组成的向量。0225三次样条多项式是一种基本的数学研究对象,在计算机图形学中经常使用多项式,这时因为多项式定义简介,并且计算起来效率很高。虽然SEDERBERG已经证明了对给定的多项式函数XT和YT,总能找到其隐式形式,但是一般来说,只有对一次或二次的隐式形式才总能找到其参数方程形式。用一次和二次多项式参数化的曲线很容易理解。当使用更高次的多项式时,情况就要复杂得多。10三次多项式为曲线设计提供了一条功能强大的途径。但是这些方法不是从隐式形式出发寻找其参数化形式,而是从设计者选定的一组“控制点”出发,应用某个特定的算法生成曲线上的点,如果满意就接受这条曲线而不去管它的隐式形式。与单纯采用数学手段相比,这种方法在许多方面都是一种更自然的曲线设计方法。01三次多项式在灵活性和计算速度之间提供了一个合理的这种方案。与更高次的多项式相比,三次样条只需要较少的计算与存储且较稳定;与低次的多项式相比,三次样条又具有更多的灵活性,事实上,大多数形状表示与设计都是采用三次多项式来实现的。给定N1个点,可得到通过每个点的分段三次多项式曲线323232T0,1XXXXYYYYZZZZXTATBTCTDYTATBTCTDZTATBTCTD215方程组中12个系数唯一地确定了一条3次参数曲线的位置与形状。将式211写成向量式,得32T0,1PTATBTCTD216其中A,B,C,D是代数系数向量,PT是三次参数曲线上任一点的位置向量。描述参数曲线的条件有端点位置向量、端点切线向量及曲率等。对三次参数曲线,可用其端点向量0,1PP和端点切线向量0,1PP描述,将0,1,0,1PPPP简记为0101,PPPP,则由式213可得010101010022332APPPPBPPPPCPDP217将这些系数代回到原曲线方程,则曲线方程可表示为323232320101231232T0,1PTTTPTTPTTTPTTP218这时三次参数曲线为三次HERMITE样条曲线,即323211XYZXYZXYZXYZAAAABBBBPTTTTTTTTCCCCCDDDD2191110011001100012211111133210010001032101000HHPPAPPBCMGPPCPPD220其中,HM是HERMITE矩阵,它是边界约束矩阵的逆阵,通常为为常数。HG是HERMITE几何向量。式(217)为三次HERMITE样条曲线的方程T0,1HHPTTMG221在上式中只要给定HG,就可以求出PT。对于不同的初始条件HG是不同的,但T和HM都是相同的,将THM称为HERMITE基函数(也可以称为混合函数或调和函数)。其表达式为3222113321100101000HTMTTT222则HERMITE基函数的各分量可写为320321322323231232HTTTHTTTHTTTTHTTT223利用基函数表达的三次HERMITE样条曲线的方程为00110213PTPHPHPHTPHT224其中0HT和1HT专门控制端点的函数值对曲线的影响,而同端点的导数值无关;2HT和3HT则专门控制端点的一阶导数值对曲线形状的影响,而同端点的函数值无关。或者说,0HT和2HT控制左端点的影响,1HT和3HT控制右端点的影响。三次HERMITE样条曲线特点是可以局部调整,因为每个曲线段仅依赖于端点约束。基于HERMITE样条的变化形式为CARDINAL样条和KOCHANEKBARTELS样条。HERMITE曲线具有几何不变性。0212第三章BEZIER曲线与BEZIER曲面31BEZIER曲线1971年,法国雷诺(RENAULT)汽车公司的贝济埃(BEZIER)发表了一种用控制多边形定义曲线和曲面的方法BEZIER曲线。这中方法能够较直观地表示给定的条件与曲线形状的关系,使用户可以方便地通过修改参数来改变曲线的形状及阶次,而且算法较为简单,易于被用户接受。BEZIER曲线是通过一组多边形的顶点来定义的。如果多边形的顶点固定不变,则由其定义的BEZIER曲线是唯一的。在多边形的各顶点中,只有第一点和最后一点在曲线上且作为曲线的起点和中点,其他的点用于控制曲线的形状及阶次。曲线的形状趋向于多边形的形状,要修改曲线,只要修改多边形的各顶点就可以了。因此,该多边形又称BEZIER曲线的控制多边形,其顶点称为控制点。常用的三次BEZIER曲线如图31所示。03P2P2P0P1P3P1P0P3图31三次BEZIER曲线311BEZIER曲线的定义BEZIER曲线在本质上是由调和函数根据控制点插值生成的,其数学表达式为如下的参数方程,00,1NIINIPTPBENTT31其中KP构成该BEZIER曲线的特征多边形,,KNBENT是N次BERNSTEIN基函数。BERNSTEIN基函数具有如下形式,110,1,INIIINIINNNBENTTTCTTININI32这里规定001,01,因此当T0且I0时,,1INBENT;当T0且I0时,,0INBENT;当T1且IN时,,1INBENT;当T1且IN时,,0INBENT。131一次BEZIER曲线N1一次多项式,有两个控制点,其数学表示及矩阵表示为1,100,111,10101111110IIIPTPBTPBTPBTTPTPPTP0,1T33显然,这是一条连接P0、P1的直线段,如图32所示。图32线性内插法获得线性BEZIER曲线的过程2二次BEZIER曲线N2二次多项式,有三个控制点,其数学表示如下2,200,211,222,222012221010012122IIIPTPBTPBTPBTPBTTPTTPTPPPPTPPTP0,1T34由上式的结果可知,二次BEZIER曲线为抛物线,图形如图33。将上式改写为矩阵形式02121211220100PPTTTPP0,1T3514图33DECASTELJAU算法获得二次BEZIER曲线的过程3三次BEZIER曲线N3三次多项式,有四个控制点,其数学表示如下3,300,311,322,333,33223012313131IIIPTPBTPBTPBTPBTPBTTPTTPTTPTP0,1T36其矩阵形式为01322313313630133001000PPPTTTTPP37上面式中的BERNSTEIN多项式构成了三次BEZIER曲线的一组基,或称三次BEIZER曲线的调和函数,即30,321,322,333,313131BTTBTTTBTTTBTT38它们是图34中所示的4条曲线。03类似可以得出四次及更高次的BEZIER曲线函数。通过以上定义可以看出BEZIER曲线的特点BEZIER曲线基函数的次数等于控制点的数目减1;BEZIER曲线的基函数在整个定义区间内都不为0。0215图35DECASTELJAU算法获得三次BEZIER曲线的过程312BEZIER曲线的性质BEZIER曲线具有一些重要的性质,这些性质使其特别适合于CAGD。(开放B样条曲线也具有这些性质)(1)端点插值当T0时,00PP,故PT0决定曲线的起点;当T1时,1NPP,故PT1决定曲线的终点。因此,BEZIER曲线的起点、终点与相应的特征多边形的起点、终点重合。02(2)对称性只要保持特征多边形的顶点位置不变,但顺序颠倒,所得新的BEZIER曲线形状不变,只是参数变化的方向相反。03(3)仿射不变性(几何不变性)常常为了缩放一条BEZIER曲线,或者改变其方向和位置以备后用,需要对其进行仿射变化。只须对控制点施加变换(变换一次),然后对这些新的控制点用同样的BERNSTEIN式重新生成任意T值处的变换后的BEZIER曲线。01(4)参数的仿射变换不变性通常,我们定义的参数区间为0,1T。但是有时使用别的区间更方便。比方参数U在AB的区间上变化。为此只须把每个T替换为UABA39随着U从A变化到B,每个BERNSTEIN多项式的变量从0变化到1,这正如0,1T。(5)凸包性(线性精度曲线上一部分是直线。)由于当T0,1时,BERNSTEIN多项式之和为16,00111NNINIINIINNBTTTINITT310且,10INIINNBTTTINI311图36凸包性这说明,INBT构成了BEIZER曲线的一组权函数,所以BEZIER曲线一定落在其控制多边形的凸包之中。(6)波动减小性粗略地说,BEZIER曲线的“波动”程度不能超过其控制多边形的“波动”。更精确地说,任何直线与BEZIER曲线的交点个数不超过其与这条曲线的控制多边形的交点个数。01图37波动减小性313BEZIER曲线的拼接几何设计中,一条BEZIER曲线往往难以描述复杂的曲线形状。这是由于增加特征多边形的顶点数,会引起BEZIER曲线次数的提高,而高次多项式又会带来计算上的困难。所以有时采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的17连续条件。下面讨论两条BEZIER曲线达到不同阶几何连续的条件。假设给定两条BEZIER曲线PT和QT,相应控制点为0,1,IPIN和0,1,JQJM,如图38所示。图38两段三次BEZIER曲线的连P0P1P2P3Q0Q1Q2Q31要使PT和QT达到0G连续的充分必要条件是0NPQ3122要使PT和QT达到1G连续的充分必要条件是101,NNPPQQ这3点共线,即103201QPQQPP3133要使PT和QT达到2G连续的充分必要条件如下在1G连续的条件下,1NNPP与10QQ均不为零且同向,还要求在NP处曲率相等且主法线的方向一致。如对于三次BEZIER曲线,要使它达到2G连续即要满足式313,即0121230122QPQQQPPP31421012,NNNPPPQQQ这5点共面,且2NP和2Q或者同在直线11NPQ上或者位于直线11NPQ的同侧,即221012211,|,|NNNNNNNDQPPQQDPPPPP315其中21,NNDQPP和21,NNNDPPP分别表示2Q和2NP到直线1NNPP的距离。通常达到二阶几何连续即可满足要求。0218314BEZIER曲线的绘制前面讨论的BEZIER曲线绘制算法完全是按照调和函数的方式写出的,其运算量较大。下面研究的DECASTELJAU算法的效率则要高得多。DECASTELJAU算法是用下面的迭代公式计算型值点PT1110I0,1,NR11,2,IRIRRIIPRPTPTPRN316可以用数学归纳法证明型值点PT就是N0P。对于三次BEZIER曲线,有000011022033100001100112100223211001211112322001111111PPPPPPPPPTPTPPTPTPPTPTPPTPTPPTPTPPTPTP317图39DECASTELJAU算法的计算过程这个计算过程如图39所示。其中横向箭头表示权重为1T,斜向下的箭头表示权重为T。根据该算法的原理,以三次BEZIER曲线为例,求取参数T处的型值点。步骤如下191按照特征多边形各顶点0123PPPP的排列顺序,将特征多边形的三条边依次按比值T1T分为两段,取得分点111012PPP、。2对边11110112PPPP、分别再按比值T1T分为两段,取得分点2201PP、。3对边2201PP按比值T1T分为两段,取得分点30P,即为T处的型值点。图310使用DECASTELJAU算法绘制BEZIER曲线上的点03315BEZIER曲线的几个不足1BERNSTEIN多项式的次数与控制点的个数有关。基于N1个控制点的BEZIER曲线是若干个N次多项式的组合,这就导致高次多项式计算起来代价很高,并且由于对数字取整也给结果带来误差。2没有局部控制能力。在BEZIER曲线中,对任何一个控制点的改变都会导致整条曲线的改变。这是因为每个BERNSTEIN多项式都在整个0,1区间上有支持,而最后得到的曲线是这些函数的混合,所以每一个控制点对01之间所有T值处的曲线都有影响。我们要寻找一组控制点具有一定局部控制能力的调和函数。3虽然可以通过在点集中插入一些点来满足多段BEZIER曲线的光滑连接条件,但这种方法显然很不方便。为了克服上述缺点,1972年,DEBOOR和COX分别提出了B样条的计算方法。1974年,美国通用汽车公司的GORDEN和RIESENFELD提出了B样条曲线和曲面。B样条曲线除保持了BEZIER曲线的直观性和凸包性等优点之外,还可以局部修改,曲线形状更趋近于特征多边形。B样条曲线可以连续光滑拼接,曲线的阶次与顶点数无关。由于这些原因,B样条曲线和曲面得到越来越广泛的应用。32BEZIER曲面基于BEZIER曲线的讨论,我们可以方便地可以给出BEZIER曲面的定义和性质,BEZIER曲线的一些算法也可以很容易扩展到BEZIER曲面的情况。20321BEZIER曲面的定义若在空间给定M1个控制点IJV,I0,1,MJN,0,1,令,J,NI,J00,BVMNMNIMIJPUWBUW318式(318)所表示的曲面为MN次的BEZIER曲面,其中,IMB和,JNB分别是M次和N次的BERNSTEIN基函数,C1,C1IIMIJJNJIMMJNNBWUUBWWW319矩阵表示式是0,000101,101110,1,01,MMMMNNMNNMNNNMBVPPPBVPPPPUVBUBUBUBVPPP如果用一系列直线段将相邻点,0,1,NIMIIIVVV,(0,1,)和0JJMJJNVVV,1,(0,1,2,)一一连接起来组成一张空间网格,则称这张网格为MN次曲面控制网格。图311所示为33次曲面控制网格。控制网络框定了,MNPUW的大致形状,是对曲面的逼近。图311BEZIER曲面控制网格322BEZIER曲面的性质(1)端点位置由于,0,0,0,N,0,0,0,0,1,1,0,1,1MNMNMNMMNMNPVPVPVPV32021说明0,00,NM,0M,N,VVVV是曲面,MNPUW的四个端点,如图312所示图312双三次BEZIER曲面及边界信息(2)边界线位置BEZIER曲面的四条边界线,0,0,1,1MNMNMNMNPWPUPWPU分别是以0,00,10,20,N0,0102,0M0M,0,1,2M,N,MMVVVVVVVVVVVV,、,、,和0,N1,2,NNMNVVVV,为控制多边形的BEZIER曲线,如图312所示。(3)端点的切平面由计算可知,三角形0,01,00,10,N0,N11NM0M,1M1,0VVVVVVVV,、V和M,11,NMNMNVVV(图312有斜影线的三角形)所在的平面分别在点0,00N,0MVVV,、和,MNV处与曲面,MNPUW相切。(4)凸包性曲面,MNPUW位于其控制点IJV,I0,1,MJN,0,1,的凸包内。(5)几何不变性曲面,MNPUW的形状和位置与坐标的选择无关,仅和点IJV,I0,1,MJN,0,1,的相对位置有关。323BEZIER曲面的绘制(1)双一次(线性)BEZIER曲面22当1MN时,得双一次BEZIER曲面。给定M1N1224个控制点0,00,11,01,1,VVVV则式(318)成为0,00,11,11,01,11,1VVWPUWUUVVW0,00,11,01,11111UWVUWVUWVUWV321设点00011011,VVVV依次是(0,0,0)、(1,0,0)、(0,1,0)、(0,0,1),则可得1,1,PUW坐标形式的参数方程为XWUWYUUWZUW322消去参数,就可得到双曲抛物面方程XZYZZ。在上式中,当0U1U和时得到的两条边界为直线段。同样的当01WW和时得到的也是两条直线段。所以双一次BEZIER曲面是由四条直线段围成的。若四个点是共面的,则不难看出1,1,PUW是该平面的一部分。(2)双一次(线性)BEZIER曲面当2MN时,得到双二次BEZIER曲面,给定M1N1339个控制点,即0,00,10,21,01,11,22,02,12,2,VVVVVVVVV则20,00,10,222,21,01,11,22,02,12,2121,12201001VVVWPUWUUVVVWVVV323当U取定值时,上式退化为关于W的二次参数曲线抛物线;同样,当W取定值时,上式退化为关于U的二次参数曲线。当01UU和时,另外两条边界也是抛物线段,所以双二次BEZIER曲面由四条抛物线围成。显然中间的点对边界曲线不产生影响。这意味着周边8个点不变的情况下,适当选择中心点的位置能控制曲面的凹凸,这种控制方式是极其简单的,而且是极其直观的。(3)双三次BEZIER曲面当3MN时,得到双二次BEZIER曲面,给定M1N14416个控制点,即23IJV,I0,1,2,3J0,1,2,3式(318)成为330,31,32,33,3,PUWBUBUBUBU,0,00,10,20,30,31,01,11,21,31,32,02,12,22,32,33,03,13,23,33,3VVVVBWVVVVBWVVVVBWVVVVBW)()()(3213313630133001000UUU0,00,10,20,31,01,11,21,32,02,12,22,33,03,13,23,3VVVVVVVVVVVVVVVV321WWW323211TTUUUBVBWWW324式324是关于UV、的双三次多项式,它由矩阵中的16个顶点的位置所确定。显而易见,这16个顶点有四个位于BEZIER曲面上,矩阵周围的12个顶点控制定义了4条三次BEZIER曲线,即边界线。其余四点与边界曲线无关,但是影响曲面的形状。324BEZIER曲面的拼接设两张MN次BEZIER曲面片,00,00,MNIJIMJNIJMNIJIMJNIJPUVPBUBVQUVQBUBV,0,1UV分别由控制顶点IJP和,IJQ定义。如果要求两曲面片达到0G连续,则它们有公共的边界,即1,0,PVQV于是有,0,I0,1,MNIIPQ,如果又要求沿该公共边界达到1G连续,则两曲面片在该边界上有公共的切平面,因此曲面的法向应当是跨界连续的,即0,0,1,1,UVUVQVQVVPVPV24图313BEZIER曲面片的拼接33自由曲线是自由曲面的基础自由曲线是由一系列曲线段如HERMITE曲线段、BEZIER曲线段、B样条曲线段连接而成的。与此类似,空间自由曲面可以由一系列曲面片拼合而成。也就是说,曲面片是曲面的基本单元。每个曲面片都需要采取双参数的函数表示,即,QUVXUVYUVZUV325可以用三次参数方程表示曲面片,即3300,0,1IJIJIJQUVAUVUV326这样的曲面片称为双三次曲面片。当参数U固定时,参数V从0到1变化会得到一组互不相交的曲线;同理,若参数V固定,二参数U从0到1变化会得到另一组互不相交的曲线。这两组曲线相交构成空间网格,所有交点的几何构成曲面片。03P0,0P3,0P0,3P3,3P1,0P2,0P0,1P0,2P1,1P2,1P3,1P1,2P2,2P3,2P1,3P2,302图314双三次BEZIER曲面及其控制网格25参考文献1美希尔HILL,FS

温馨提示

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

评论

0/150

提交评论