




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文)Bezier曲线曲面的绘制及性质研究学院名称 理学院 专业班级信息与计算科学(试点10) 学生姓名 导师姓名 年 月 日目 录摘 要2第一章 绪论31.1发展历程31.2开发工具Visual C+ 6.0简介4第二章 曲线基础42.1 曲线的参数表示42.2 插值与逼近62.2.1 插值62.2.1 逼近72.3.1 函数的可微性82.3.2 几何连续性82.4 样条描述82.5 三次样条9第三章 Bezier曲线与Bezier曲面113.1 Bezier曲线113.1.1 Bezier曲线的定义123.1.2 Bezier曲线的性质143.1.3 Bezier曲线的拼接163.1.4 Bezier曲线的绘制173.1.5 Bezier曲线的几个不足183.2 Bezier曲面193.2.1 Bezier曲面的定义193.2.2 Bezier曲面的性质203.2.3 Bezier曲面的绘制213.2.4 Bezier曲面的拼接223.3 自由曲线是自由曲面的基础23参考文献24附录25致谢29摘 要计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。它的重要性体现在人们越来越强烈地需要和谐的人机交互环境:图形用户界面已经成为一个软件的重要组成部分,可视化已经成为信息领域的一个重要发展趋势。样条曲线发展迅速。在基于PC系统的Photoshop、3D Max、AutoCAD、Maya等建模工具中,“样条曲线”以“基本图形对象”的存在形式,实现平面绘图、立体绘图基本功能,是“三维动画”的重要组成元素;样条曲线也是几何造型技术的重要内容。“Bezier和B样条曲线”在样条曲线的发展史中举足轻重,诸多其他曲线都是由它们发展而来的。本文主要的工作是系统的研究和整理Bezier曲线曲面的算法、性质、作用以及样条曲线的其他相关基础知识,并基于VC+6.0对曲线进行绘制。结合在VC+6.0上实现的Bezier曲线,对其性质进行直观的分析和比较。最后点明样条曲线是自由曲面的基础。关键词:计算机图形学 样条曲线 Bezier曲线。ABSTRACTComputer graphics a scientific that use mathematical algorithms makes two-dimensional or three-dimensional graphics into the grid in the form of a computer monitor . Simply put, The main content of computer graphics is to study how to represent,calculate,and display graphics in the computer, the importance of it was reflected in the growing strong need for a harmonious human-computer interaction environment: Graphical user interface has become an important part of the software, Visualization has become an important development trend of information fields.Spline curve is developing rapidly. Among PC-based system,Photoshop, 3D Max, AutoCAD, Maya and other modeling tools, spline curve have basic function of dimensional drawings and three-dimensional drawing for its “basic graphic object form, spline curve is a vital component of three-dimensional animation, it is also an important content of geometric modeling techniques. Bezier and B-spline curve is important in the development of spline curve, many other curves are evolved based on them. This paper has a comprehensive, systematic and deep research on Bezier curve algorithm.and other basic knowledge. And based on VC + +6.0 draw the curve. Combined with Bezier curves on VC + +6.0 achieve, intuitive analysis and comparison of their properties. Finally highlighted spline is the foundation of freedom surfaces.Key words:ComputerGraphics spline curve Bezier curves.第一章 绪论曲面造型(Surface Modeling)是计算机辅助几何设计 (Computer Aided Geometric Design,CAGD)和计算机图形学的一项重要内容,主要研究在计算机图象系统的环境下对曲面的表示、设计、显示和分析。它起源于汽车、飞机、船舶、叶轮等的外形放样工艺,由Coons、Bezier等大师于二十世纪六十年代奠定其理论基础。经过三十多年的发展,曲面造型现在已形成了以有理B样条曲面(Rational B-spline Surface)参数化特征设计和隐式代数曲面(Implicit Algebraic Surface)表示这两类方法为主体,以插值(Interpolation)、逼近(Approximation)这二种手段为骨架的几何理论体系。1.1发展历程形状信息的核心问题是计算机表示,既要适合计算机处理,且有效地满足形状表示与设计要求,又便于信息传递和数据交换的数学方法。像飞机、汽车、轮船等具有复杂外形产品的表面是工程中必须解决的问题。曲面造型的目的就在如此。1963年美国波音(Boeing)飞机公司的佛格森(Ferguson)最早引入参数三次曲线(三次Hermite插值曲线),将曲线曲面表示成参数矢量函数形式,构造了组合曲线和由四角点的位置矢量、两个方向的切矢定义的佛格森双三次曲面片,从此曲线曲面的参数化形式成为形状数学描述的标准形式。仅用端点的位置和切矢控制曲线形状是不够的,中间的形状不易控制,且切矢控制形状不直接。1964年,美国麻省理工学院(MIT)的孔斯(Coons)用四条边界曲线围成的封闭曲线来定义一张曲面,Ferguson曲线曲面只是Coons曲线曲面的特例。而孔斯曲面的特点是插值,即构造出来的曲面满足给定的边界条件,例如经过给定边界,具有给定跨界导矢等等。但这种方法存在形状控制与连接问题。1964年,舍恩伯格(Schoenberg)提出了参数样条曲线、曲面的形式。1971年,法国雷诺(Renault)汽车公司的贝塞尔(Bezier)发表了一种用控制多边形定义曲线和曲面的方法。这种方法不仅简单易用,而且漂亮地解决了整体形状控制问题,把曲线曲面的设计向前推进了一大步,为曲面造型的进一步发展奠定了坚实的基础。但当构造复杂曲面时,Bezier方法仍存在连接问题和局部修改问题。同期,法国雪铁龙(Citroen)汽车公司的德卡斯特里奥(de Castelijau)也独立地研究出与Bezier类似的方法。1972年,德布尔(de Boor)给出了B样条的标准计算方法。1974年,美国通用汽车公司的戈登(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方法成为曲面造型技术发展趋势中最重要的基础。1.2开发工具Visual C+ 6.0简介Visual C+ 6.0,简称VC或者VC6.0,是微软推出的一款C+编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0不仅是一个C+ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c+类库,主要封装了大部分的windows API函数,vc+是微软公司开发的c/c+的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说VC呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC+其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,你应该试过,在vc+里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了MFC内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大,灵活性还可以,虽然也有很多缺陷,但还是一个比较好的东西。第二章 曲线基础2.1 曲线的参数表示曲线的表示可以分为参数表示和非参数表示两种,其中非参数表示又可分为显式表示和隐式表示两种。对于一个平面曲线,显式表示一般形式是y=f(x)。在此方程中,一个x值与一个y值对应,所以显式方程不能表示封闭或多值曲线,例如,不能用显式方程表示一个圆。如果一个平面曲线方程,表示成f(x,y)=0的形式,则称之为隐式表示。隐式表示的优点是易于判断函数f(x,y)是否大于、小于或等于零,也就易于判断点是落在所表示曲线上或曲线的哪一侧。非参数方程的缺点是:与坐标轴相关;会出现斜率为无穷大的情形(如垂线);对于非平面曲线,难以用常数系数的非参数化函数表示;不便于计算机编程。由于参数表示的曲线具有几何不变性等优点,计算机图形学中通常用参数形式描述曲线。在几何造型系统中,曲线方程通常表示成参数的形式,即曲线上任一点的坐标均表示成给定参数的函数。假定用t表示参数,平面曲线上任一点P可表示为 (2-1)空间曲线上任一三维点P可表示为 (2-2)最简单的参数曲线是直线段,端点为、的直线段参数方程可表示为 (2-3)圆在计算机图形学中应用十分广泛,其在第一象限内的单位圆弧的非参数显式表示为其参数形式可表示为 (2-4)在曲线的表示上,参数方程比显式、隐式方程有更多的优越性,主要表现在一下几点。(1) 可以满足几何不变性的要求。(2) 有更大的自由度来控制曲线的形状。(3) 对非参数方程表示的曲线进行变换,必须对曲线上的每个型值点进行几何变换;而对参数表示的曲线可对其参数方程直接进行几何变换。(4) 便于处理斜率为无穷大的情形,不会因此而中断计算。(5) 参数方程中,代数、几何相关和无关的变量是完全分离的,而且对变量个数不限,从而便于用户把低维空间中曲线扩展到高维空间去。这种变量分离的特点使人们可以用数学公式处理几何分量。(6) 规格化的参数变量t,使其相应的几何分量是有界的,而不必用另外的参数去定义边界。(7) 易于用向量和矩阵表示几何分量,简化了计算。2.2 插值与逼近2.2.1 插值给定一组有序的数据点(i=0,1,2,n),构造一条曲线顺序通过这些数据点,称为对这些数据点进行插值,所构造的曲线称为插值曲线。(1) 线性插值假设给定函数f(x)在两个不同点和的值,用一个线形函数,近似代替f(x),称为f(x)的线性插值函数。其中线性函数的系数是a,b,通过条件:可表示为: (2-5)(2) 抛物线插值抛物线插值又称为二次插值。设已知f(x)在3个互异点,的函数值为,要求构造一个函数:,使在结点处与在处的值相等。由此可构造的线性方程组,求得a,b,c,即构造了的插值函数。图2-1 曲线的插值2.2.1 逼近当型值点较多时,构造插值函数通过所有型值点是相当困难的。而测量所得的数据点本身比较粗糙,使得构造精确的插值函数也是没有意义的。这时通常选择一个次数较低的函数,构造一条曲线使之在某种意义下最接近给定的数据点,称为对这些数据点进行逼近,所构造的曲线为逼近曲线。插值和逼近则统称为拟合。逼近的方法最常用的是最小二乘法,假设给定一组数据点,要求构造一个逼近函数。令是m次多项式,即逼近的程度可以通过各点偏差的平方和来度量。最小二乘问题就是要求出各系数,使偏差的平方和最小,即求解式(5.6)所示函数的极值问题: (2-6)如要取到极值,则 (2-7)这里只有m+1个系数是未知量,可通过求解m+1个方程得出。将系数带入多项式函数即可得到所求的逼近函数。图2-2 曲线的逼近2.3 连续性设计一条复杂曲线时,常常通过多段曲线组合而成,这需要解决曲线段之间如何实现光滑连接的问题。曲线间连接的光滑度的度量有以下两种。2.3.1 函数的可微性把组合参数曲线构造成在连接处具有直到n阶连续,即n阶连续可微,这类光滑度称之为或n阶参数连续性。2.3.2 几何连续性组合曲线在连接处满足不同于的某一组约束条件,称为具有n阶几何连续性,简记为。曲线光滑度的这两种度量方法并不矛盾,连续包含在连续之中。对于曲线P(t)和Q(t),参数。若要求在接合处达到连续或连续,即两曲线在结合处位置连续,有 (2-8)若要求在结合处达到连续,就是说两条曲线在结合处在满足连续的条件下,并有公共的切线向量: (2-9)当时,连续就称为连续。若要求在结合处达到连续,就是说两条曲线在结合处在满足连续的条件下,并有公共的曲率:(2-10)将式(2.9)及式(2.10)合并整理,得 (2-11)这个关系为(2-12)为任意函数。当时,连续就称为连续。2.4 样条描述样条(Spline)一词来源于工程绘图人员为了将一些指定点连接成一条光顺曲线所使用的工具,即富有弹性的细木条或薄钢条。最初,样条曲线都是借助于物理样条得到的,放样员把富有弹性的细木条(或有机玻璃条),用压铁固定在曲线应该通过的给定型值点处,样条做自然弯曲所绘制出来的曲线就是样条曲线。样条曲线不仅通过各有序型值点,并且在各型值点处的一阶和二阶导数连续,也即该曲线具有连续的、曲率变化均匀的特点。在计算机图形学中,样条曲线是指由多项式曲线段连接而成的曲线,在每段边界处满足特定的连续性条件。通常用式(2.9)来描述n次样条参数多项式曲线: (2-13)将式(2.9)写成矩阵乘积的形式,得 (2-14)其中C为(n+1)3阶的系数矩阵,T为n+1个幂形式的基函数组成的向量。022.5 三次样条多项式是一种基本的数学研究对象,在计算机图形学中经常使用多项式,这时因为多项式定义简介,并且计算起来效率很高。虽然Sederberg已经证明了对给定的多项式函数x(t)和y(t),总能找到其隐式形式,但是一般来说,只有对一次或二次的隐式形式才总能找到其参数方程形式。用一次和二次多项式参数化的曲线很容易理解。当使用更高次的多项式时,情况就要复杂得多。三次多项式为曲线设计提供了一条功能强大的途径。但是这些方法不是从隐式形式出发寻找其参数化形式,而是从设计者选定的一组“控制点”出发,应用某个特定的算法生成曲线上的点,如果满意就接受这条曲线而不去管它的隐式形式。与单纯采用数学手段相比,这种方法在许多方面都是一种更自然的曲线设计方法。01三次多项式在灵活性和计算速度之间提供了一个合理的这种方案。与更高次的多项式相比,三次样条只需要较少的计算与存储且较稳定;与低次的多项式相比,三次样条又具有更多的灵活性,事实上,大多数形状表示与设计都是采用三次多项式来实现的。给定n+1个点,可得到通过每个点的分段三次多项式曲线:(2-15)方程组中12个系数唯一地确定了一条3次参数曲线的位置与形状。将式(2.11)写成向量式,得(2-16)其中a,b,c,d是代数系数向量,p(t)是三次参数曲线上任一点的位置向量。描述参数曲线的条件有端点位置向量、端点切线向量及曲率等。对三次参数曲线,可用其端点向量和端点切线向量描述,将简记为,则由式(2.13)可得 (2-17)将这些系数代回到原曲线方程,则曲线方程可表示为 (2-18)这时三次参数曲线为三次Hermite样条曲线,即 (2-19) (2-20)其中,是Hermite矩阵,它是边界约束矩阵的逆阵,通常为为常数。是Hermite几何向量。式(2.17)为三次Hermite样条曲线的方程:(2-21)在上式中只要给定,就可以求出p(t)。对于不同的初始条件是不同的,但T和都是相同的,将T称为Hermite基函数(也可以称为混合函数或调和函数)。其表达式为 (2-22)则Hermite基函数的各分量可写为(2-23)利用基函数表达的三次Hermite样条曲线的方程为 (2-24)其中和专门控制端点的函数值对曲线的影响,而同端点的导数值无关;和则专门控制端点的一阶导数值对曲线形状的影响,而同端点的函数值无关。或者说,和控制左端点的影响,和控制右端点的影响。三次Hermite样条曲线特点是可以局部调整,因为每个曲线段仅依赖于端点约束。基于Hermite样条的变化形式为Cardinal样条和Kochanek-Bartels样条。Hermite曲线具有几何不变性。02第三章 Bezier曲线与Bezier曲面3.1 Bezier曲线1971年,法国雷诺(Renault)汽车公司的贝济埃(Bezier)发表了一种用控制多边形定义曲线和曲面的方法Bezier曲线。这中方法能够较直观地表示给定的条件与曲线形状的关系,使用户可以方便地通过修改参数来改变曲线的形状及阶次,而且算法较为简单,易于被用户接受。Bezier曲线是通过一组多边形的顶点来定义的。如果多边形的顶点固定不变,则由其定义的Bezier曲线是唯一的。在多边形的各顶点中,只有第一点和最后一点在曲线上且作为曲线的起点和中点,其他的点用于控制曲线的形状及阶次。曲线的形状趋向于多边形的形状,要修改曲线,只要修改多边形的各顶点就可以了。因此,该多边形又称Bezier曲线的控制多边形,其顶点称为控制点。常用的三次Bezier曲线如图3-1所示。03P2P2P0P1P3P1P0P3图3-1 三次Bezier曲线3.1.1 Bezier曲线的定义Bezier曲线在本质上是由调和函数根据控制点插值生成的,其数学表达式为如下的参数方程: (3-1)其中构成该Bezier曲线的特征多边形,是n次Bernstein基函数。Bernstein基函数具有如下形式: (3-2)这里规定,因此当t0且i0时,;当t0且i0时,;当t=1且i=n时,;当t=1且in时,。(1) 一次Bezier曲线(n=1)一次多项式,有两个控制点,其数学表示及矩阵表示为 (3-3)显然,这是一条连接P0、P1的直线段,如图3-2所示。图3-2 线性内插法获得线性Bezier曲线的过程 (2) 二次Bezier曲线(n=2)二次多项式,有三个控制点,其数学表示如下: (3-4)由上式的结果可知,二次Bezier曲线为抛物线,图形如图3-3。将上式改写为矩阵形式: (3-5)图3-3 de Casteljau算法获得二次Bezier曲线的过程(3) 三次Bezier曲线(n=3)三次多项式,有四个控制点,其数学表示如下: (3-6)其矩阵形式为 (3-7)上面式中的Bernstein多项式构成了三次Bezier曲线的一组基,或称三次Beizer曲线的调和函数,即: (3-8)它们是图3-4中所示的4条曲线。03类似可以得出四次及更高次的Bezier曲线函数。通过以上定义可以看出Bezier曲线的特点:Bezier曲线基函数的次数等于控制点的数目减1;Bezier曲线的基函数在整个定义区间内都不为0。02 图3-5 de Casteljau算法获得三次Bezier曲线的过程3.1.2 Bezier曲线的性质Bezier曲线具有一些重要的性质,这些性质使其特别适合于CAGD。(开放B样条曲线也具有这些性质)(1) 端点插值当t=0时,故P(t=0)决定曲线的起点;当t=1时,故P(t=1)决定曲线的终点。因此,Bezier曲线的起点、终点与相应的特征多边形的起点、终点重合。02(2) 对称性只要保持特征多边形的顶点位置不变,但顺序颠倒,所得新的Bezier曲线形状不变,只是参数变化的方向相反。03(3) 仿射不变性(几何不变性)常常为了缩放一条Bezier曲线,或者改变其方向和位置以备后用,需要对其进行仿射变化。只须对控制点施加变换(变换一次),然后对这些新的控制点用同样的Bernstein式重新生成任意t值处的变换后的Bezier曲线。01(4) 参数的仿射变换不变性通常,我们定义的参数区间为。但是有时使用别的区间更方便。比方参数u在ab的区间上变化。为此只须把每个t替换为: (3-9)随着 从a变化到b,每个Bernstein多项式的变量从0变化到1,这正如。(5) 凸包性(线性精度:曲线上一部分是直线。)由于当t0,1时,Bernstein多项式之和为(3-10)且(3-11)图3-6 凸包性这说明构成了Beizer曲线的一组权函数,所以Bezier曲线一定落在其控制多边形的凸包之中。(6) 波动减小性粗略地说,Bezier曲线的“波动”程度不能超过其控制多边形的“波动”。更精确地说,任何直线与Bezier曲线的交点个数不超过其与这条曲线的控制多边形的交点个数。01图3-7 波动减小性3.1.3 Bezier曲线的拼接几何设计中,一条Bezier曲线往往难以描述复杂的曲线形状。这是由于增加特征多边形的顶点数,会引起Bezier曲线次数的提高,而高次多项式又会带来计算上的困难。所以有时采用分段设计,然后将各段曲线相互连接起来,并在接合处保持一定的连续条件。下面讨论两条Bezier曲线达到不同阶几何连续的条件。假设给定两条Bezier曲线和,相应控制点为和,如图3-8所示。图3-8 两段三次Bezier曲线的连接P0P1P2P3(Q0)Q1Q2Q3(1) 要使和达到连续的充分必要条件是:(3-12)(2) 要使和达到连续的充分必要条件是:这3点共线,即(3-13)(3) 要使和达到连续的充分必要条件如下: 在连续的条件下,与均不为零且同向,还要求在处曲率相等且主法线的方向一致。如对于三次Bezier曲线,要使它达到连续即要满足式(3.13),即 (3-14) 这5点共面,且和或者同在直线上或者位于直线的同侧,即 (3-15)其中和分别表示和到直线的距离。通常达到二阶几何连续即可满足要求。023.1.4 Bezier曲线的绘制前面讨论的Bezier曲线绘制算法完全是按照调和函数的方式写出的,其运算量较大。下面研究的de Casteljau算法的效率则要高得多。de Casteljau算法是用下面的迭代公式计算型值点:(3-16)可以用数学归纳法证明型值点就是。对于三次Bezier曲线,有 (3-17)图3-9 de Casteljau算法的计算过程这个计算过程如图3-9所示。其中横向箭头表示权重为,斜向下的箭头表示权重为t。根据该算法的原理,以三次Bezier曲线为例,求取参数t处的型值点。步骤如下:(1) 按照特征多边形各顶点的排列顺序,将特征多边形的三条边依次按比值t:1-t分为两段,取得分点。(2) 对边分别再按比值t:(1-t)分为两段,取得分点。(3) 对边按比值t:(1-t)分为两段,取得分点,即为t处的型值点。图3-10 使用de Casteljau算法绘制Bezier曲线上的点033.1.5 Bezier曲线的几个不足(1)Bernstein多项式的次数与控制点的个数有关。基于n+1个控制点的Bezier曲线是若干个n次多项式的组合,这就导致高次多项式计算起来代价很高,并且由于对数字取整也给结果带来误差。(2)没有局部控制能力。在Bezier曲线中,对任何一个控制点的改变都会导致整条曲线的改变。这是因为每个Bernstein多项式都在整个0,1区间上有支持,而最后得到的曲线是这些函数的混合,所以每一个控制点对01之间所有t值处的曲线都有影响。我们要寻找一组控制点具有一定局部控制能力的调和函数。 (3)虽然可以通过在点集中插入一些点来满足多段Bezier曲线的光滑连接条件,但这种方法显然很不方便。为了克服上述缺点,1972年,de Boor和Cox分别提出了B样条的计算方法。1974年,美国通用汽车公司的Gorden和Riesenfeld提出了B样条曲线和曲面。B样条曲线除保持了Bezier曲线的直观性和凸包性等优点之外,还可以局部修改,曲线形状更趋近于特征多边形。B样条曲线可以连续光滑拼接,曲线的阶次与顶点数无关。由于这些原因,B样条曲线和曲面得到越来越广泛的应用。3.2 Bezier曲面基于Bezier曲线的讨论,我们可以方便地可以给出Bezier曲面的定义和性质,Bezier曲线的一些算法也可以很容易扩展到Bezier曲面的情况。3.2.1 Bezier曲面的定义若在空间给定 个控制点 , ,令 (3-18)式(3-18)所表示的曲面为 次的Bezier曲面,其中 和 分别是m次和n次的Bernstein基函数: (3-19)矩阵表示式是:如果用一系列直线段将相邻点 和 一一连接起来组成一张空间网格,则称这张网格为 次曲面控制网格。图3-11所示为 次曲面控制网格。控制网络框定了的大致形状,是对曲面的逼近。图3-11 Bezier曲面控制网格3.2.2 Bezier曲面的性质(1) 端点位置由于: (3-20)说明 是曲面的四个端点,如图3-12所示图3-12双三次Bezier曲面及边界信息(2) 边界线位置Bezier曲面的四条边界线 分别是以 和 为控制多边形的Bezier曲线,如图3-12所示。(3) 端点的切平面由计算可知,三角形 和 (图3-12有斜影线的三角形)所在的平面分别在点 和 处与曲面 相切。(4) 凸包性曲面 位于其控制点 ,的凸包内。(5) 几何不变性曲面的形状和位置与坐标的选择无关,仅和点 ,的相对位置有关。3.2.3 Bezier曲面的绘制(1)双一次(线性)Bezier曲面当 时,得双一次Bezier曲面。给定 个控制点: 则式(3-18)成为: (3-21)设点依次是(0,0,0)、(1,0,0)、(0,1,0)、(0,0,1),则可得 坐标形式的参数方程为 (3-22)消去参数,就可得到双曲抛物面方程 。在上式中,当 时得到的两条边界为直线段。同样的当 时得到的也是两条直线段。所以双一次Bezier曲面是由四条直线段围成的。若四个点是共面的,则不难看出 是该平面的一部分。(2)双一次(线性)Bezier曲面当 时,得到双二次Bezier曲面,给定个控制点,即 则 (3-23)当 取定值时,上式退化为关于 的二次参数曲线-抛物线;同样,当取定值时,上式退化为关于 的二次参数曲线。当 时,另外两条边界也是抛物线段,所以双二次Bezier曲面由四条抛物线围成。显然中间的点对边界曲线不产生影响。这意味着周边8个点不变的情况下,适当选择中心点的位置能控制曲面的凹凸,这种控制方式是极其简单的,而且是极其直观的。(3)双三次Bezier曲面当 时,得到双二次Bezier曲面,给定个控制点,即 ,式(3-18)成为 (3-24)式(3-24)是关于 的双三次多项式,它由矩阵中的16个顶点的位置所确定。显而易见,这16个顶点有四个位于Bezier曲面上,矩阵周围的12个顶点控制定义了4条三次Bezier曲线,即边界线。其余四点与边界曲线无关,但是影响曲面的形状。3.2.4 Bezier曲面的拼接设两张mn次Bezier曲面片: 分别由控制顶点 和 定义。如果要求两曲面片达到 连续,则它们有公共的边界,即: 于是有: 如果又要求沿该公共边界达到 连续,则两曲面片在该边界上有公共的切平面,因此曲面的法向应当是跨界连续的,即:图3-13 Bezier曲面片的拼接3.3 自由曲线是自由曲面的基础自由曲线是由一系列曲线段如Hermite曲线段、Bezier曲线段、B样条曲线段连接而成的。与此类似,空间自由曲面可以由一系列曲面片拼合而成。也就是说,曲面片是曲面的基本单元。每个曲面片都需要采取双参数的函数表示,即(3-25)可以用三次参数方程表示曲面片,即(3-26)这样的曲面片称为双三次曲面片。当参数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图3-14 双三次Bezier曲面及其控制网格参考文献1(美)希尔(HILL,F.S.)著.计算机图形学用OpenGL实现(第2版) M.罗霄等译.北京清华大学出版社,2006:601-675.2张曦煌,杜俊俐.计算机图形学M.北京:北京邮电大学出版社,2006:146-175.3徐文鹏.计算机图形学M.北京:机械工业出版社,2009:58-84.4高晶.Bezier曲线的算法研究N.辽宁师专学报,2008-06(第2期第10卷).5孔令德.计算机图形学实践教程:Visual C+版M.北京:清华大学出版社,2008:164-171,184-192.6(美)安杰尔(Angel E.)著.OpenGL程序设计指南:第2版M=OpenGL:A Primer,Second EditionM.李桂琼,张文祥译.北京:清华大学出版社,2005:148-159.7孙立镌.计算机图形学.哈尔滨:哈尔滨工业大学出版社M,2000:123-168.8孙家广等编著.计算机图形学(第三版) M.北京:清华大学出版社,1998:286-357.9(美) 彼得舍利(Peter Shirley)著.计算机图形学(第2版)M.高春晓,赵清杰,张文耀译.北京:人民邮电出版社,2007:205-234.10何援军.计算机图形学M.北京:机械工业出版社,2006:208-228.11李伟波,何发智主编;赵卿松,蔡波副主编.武汉:武汉大学出版社,2007:231-251.12潘云鹤,董金祥,陈德人编著.计算机图形学:原理、方法及应用(修订版).北京:高等教育出版社,2003:188-220.13陈元琰等编著.计算机图形学实用技术(第2版)EB/OL./book/Showbook.asp?CPBH=022432-01&DJ=30,2009-05-26.14杨钦.计算机图形学EB/OL./book/Showbook.asp?CPBH=009636-01&DJ=22,2009-01-0615陆润民.计算机图形学教程EB/OL./book/Showbook.asp?CPBH=006242-01&DJ=19,2006-04-06.16孙家广、胡事民.计算机图形学基础教程(第2版)EB/OL. /book/Showbook.asp?CPBH=033740-01&DJ=23,2009-10-14.附录Bezier曲线绘制的部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容院设备维护合同
- 航空服务居间协议
- 股权质押担保合同
- 建材产品审查合作协议
- 外租物业协议
- 2025年注册会计师考试《会计》合并财务报表重点难点模拟试题
- 劳务合同样本提供
- 小学生篮球比赛课件图片
- 上海五金仓储托管合同样本
- 乡村路灯采购合同范例
- 苏州市公安局招聘警务辅助人员笔试真题2024
- 出版专业中级实务复习笔记
- 血液科疾病常见症状护理
- (完整版)自考00600高级英语重点上册
- 基于AI的网络安全威胁分析-全面剖析
- 2025中国铁路郑州局集团招聘614人(河南)笔试参考题库附带答案详解
- 2024年泗洪县事业单位招聘笔试真题
- 物业服务情景培训
- 2025年保安证考试答题技巧与试题解析
- GA/T 1433-2017法庭科学语音同一认定技术规范
- 测试端盖铝合金铸件压铸模设计
评论
0/150
提交评论