Bézier曲线的细分技术毕业论文(34页).doc
《Bézier曲线的细分技术毕业论文(34页).doc》由会员分享,可在线阅读,更多相关《Bézier曲线的细分技术毕业论文(34页).doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-Bzier曲线的细分技术毕业论文-第 27 页本科毕业设计(2013届)题 目Bzier曲线的细分技术学 院计算机学院专 业计算机科学与技术班 级09052314学 号09051412学生姓名郭佳远指导教师余正生完成日期2013年6月诚 信 承 诺我谨在此承诺:本人所写的毕业论文Bzier曲线的细分技术均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 年 月 日摘 要 本毕业设计主要设计Bzier曲线的细分技术。Bzier曲线在曲线曲面工程设计中是一种比较常用的曲线,它在线面造型及线面重构中发挥着重要作用。Bzier 曲线的
2、显著特性是“刚性”有余,“柔性”不足。为了增加曲线的“柔性”,往往采用升阶的方法,通过增加新控制顶点来加强对曲线修改的灵活性。但是如果一旦移动新生成的控制顶点,曲线次数也随之增加,有时在对曲线进行修改时,不希望改编曲线的整体次数,此时就需要对曲线进行细分。我们希望从一个控制多边形出发,按照我们事先选取的细分规则,在给定的控制多边形中插入新的顶点,再连接这些新的顶点得到新的控制多边形,所得到的新的控制多边形是初始控制多边形的加细。不断的重复上述过程,随着细分的不断进行,控制多边形就被逐渐加细,其极限状态为一条曲线,称为递归细分曲线 。在完成毕业设计的过程中,我们首先在理论上对我们的问题进行数学分
3、析与证明,然后对解决问题的算法进行实现,并在文中通过样例来支持本毕业设计研究结论的有效性。关键词:计算机辅助几何设计; Bzier曲线;deCasteljau算法; 细分曲线ABSTRACT The main aim of this thesis is to devise Bzier curves subdivision techniques. Bzier curve is a relatively common curve in the engineering design of curves and surfaces, It plays an important role at onlin
4、e face shape and line and plane reconstruction. The Bzier curves notable features is the rigid more than flexible. In order to increase the flexible of the curve, we often adopt the method of Ascending Order, By adding new control points to enhance the flexibility of the curve changes. But if mobile
5、 newly generated control vertices, the curve frequency and also increases, sometimes to modify the curve, we do not want the overall frequency and adaptation curve, then we need to curve refinements. We hope that the departure from a control polygon, Selected in advance in accordance with our rules
6、segments, insert a new vertex in the given control polygon, and then connect these new vertices to the new control polygon obtained new control polygon is the refinement of the initial control polygon. Constantly repeat the process, as the breakdown of the ongoing control polygon gradually increase
7、the fine, the ultimate status of a curve, known as recursive subdivision curve. During our working process, we firstly proved our algorithm mathematically, then implemented our algorithm by programs, and supported our method with some real samples.Key words:Computer aided geometric design; Bzier cur
8、ves; deCasteljau algorithm; subdivision curve目录1 引言11.1 课题的背景和研究意义11.2 论文的研究内容及主要工作21.3 论文的结构32 预备知识42.1 Bernstein 多项式42.2 Bzier曲线42.3 实际问题描述53 Bzier曲线的细分73.1 细分曲线的构造思想和发展史73.2 Bzier曲线的细分算法93.3 实例分析124 开发环境配置与调试164.1 OpenGl简介164.2 VS2010上OpenGl开发环境的配置174.3 OpenGl的逻辑组织结构195 程序设计与算法实现235.1 主要算法235.2 使
9、用C+语言实现该算法246 程序调试与维护296.1 程序操作297 结论32致谢33参考文献341 引言1.1 课题的背景和研究意义 随着计算机技术的发展和普及,计算机辅助设计与制造技术(CAD(Computer Aided Design)/CAM(Computer Aided Manufacture)得到了迅猛的发展,他们推动了许多领域的设计革命,CAD/CAM技术的发展和应用水平已经成为衡量一个国家现代化水平的重要标志之一。而计算机辅助几何设计(Computer Aided Geometry Design,简称CADG)是CAD/CAM的理论基础和关键技术,一旦CAGD中有一种新的几何造
10、型出现,往往就能很快地应用到CAD/CAM系统中。早期是由数学放样和外形设计的实际需要,作为样条函数及函数逼近论等在飞机、汽车、船舶制造中的实际应用而发展起来的。现在,它已与许多学科有了紧密联系,成为一门新兴的交叉学科和边缘学科。CAGD主要研究在计算机图像系统的环境下对曲面信息的表示、逼近、分析和综合。现在,越来越多的科研人员从事这方面的研究,并取得了瞩目的成果。其应用的范围已从最初的飞机、汽车以及船舶制造业发展到建筑设计、生物工程、医疗卫生事业、航天材料、电子工程、服装设计、多媒体技术、动画制作等各个技术领域。随着计算机图形显示对于真实性、实时性和交互性的日益增强,图形工业和制造工业迈向一
11、体化、信息化和网络化步伐的日益加快,CAGD得到了飞速的发展。它经历了从离散到连续,再从连续到离散的发展过程。但是,当细分(Subdivision)技术出现以后,这种造型方法得到了很大的改进,人们可以直接从离散到离散,减少了过去的建立连续函数的那个环节。细分算法的由来最早可以追溯到1956年de Rahm.G提出的割角(Cutting Corner)思想。其思想是通过对折线角点进行切割生成光滑曲线。1974年,Chaikin提出了类似的生成曲线的细分方法。1978年,Catmull和Clark提出了著名的Catmull-Clark细分模式,标志着细分方法正式成为曲面建模的手段。80年代末到90
12、年代初期,出现了许多著名的细分方法,如1987年Dyn提出四点法曲线插值模式及六点法曲线插值模式,1991年Dyn又提出Binary细分模式,稳定细分模式Cavaretta 1991,Loop模式Loop 1987,蝶形模式Dyn 1990等。在细分曲线造型方面,引入均差细分、生成多项式、生成函数等概念描述细分过程,关于细分模式的收敛性、连续性分析已有了系统的研究成果。90年代中期至今是细分技术的发展期。这一阶段出现了一些新的细分方法,也有一些方法是对老方法进行改进。在细分曲线造型方面,蔡志杰对非均匀有序控制顶点时的四点法及变参数四点法的收敛性和连续性进行了分析;骆岩林研究了生成曲线的有理稳定
13、细分方法;丁友东提出了非线性四点插值细分法;金建荣提出了非均匀四点插值细分法,生成的曲线达到G连续。2002年,Hassan提出了Ternary四点插值细分法,生成了曲线达到G连续。近些年提出的细分模式还有:Ivrissimtzis等Ivrissimtzis 2004的模式;PetersPeters 2003的4-3模式;JenaJena 2002基于三角样条的细分算法;2001年李桂清提出了细分等。1.2 论文的研究内容及主要工作我们希望从一个控制多边形出发,按照我们事先选取的细分规则,在给定的控制多边形中插入新的顶点,再连接这些新的顶点得到新的控制多边形,所得到的新的控制多边形是初始控制多
14、边形的加细。不断的重复上述过程,随着细分的不断进行,控制多边形就被逐渐加细,其极限状态为一条曲线,称为递归细分曲线 。在完成毕业设计的过程中,我们首先在理论上对我们的问题进行数学分析与证明,然后对解决问题的算法进行实现,并在文中通过样例来支持本毕业设计研究结论的有效性。首先,我们要掌握掌握Bzier曲线的定义式,和控制点的选择,熟悉Bzier曲线的性质。然后,对Bzier曲线的De Casteljau定义进行数学推导,证明由n+1个控制顶点定义的n次Bzier曲线可以被定义为由前后n个控制顶点决定的两个n-1次Bzier曲线和线性组合起来。考虑到实际设计的应用需求,我们将Bzier曲线的形式进
15、行描述,在为造型设计带来方便的同时,统一描述了整张造型曲面的数学形式,便于数学证明的同时也为程序语言表达提供了方便。在具体的实现过程中,我们先编程实现Bzier曲线,并在低次曲线情形产生一些示例。然后编程实现Bzier曲线的细分技术,并能产生直观的可视化效果图。本毕业设计能够显著简化Bzier曲线的设计过程,为现实生产设计带来了方便。1.3 论文的结构全文一共7章,按照整个对Bzier曲线和Bzier曲线细分技术研究过程来安排章节间的逻辑结构。第1章是前言部分,主要介绍课题的背景和研究意义,并介绍了研究过程中需要完成的主要工作。第2章介绍了参数曲线与参数曲面的简单预备知识,为之后的证明引入必要
16、的基本的定理与结论。第3章是本文的核心章节,Bzier曲线细分技术的生成算法,并给出了本算法的若干实例以支持本算法的正确性。 第4章主要介绍了OpenGl开发环境的插件开发与其他功能对本文算法的支持。第5章介绍了Bzier曲线细分技术生成算法以及该算法在OpenGl开发环境下的具体实现过程和详细代码。第6章给出了对本项目的后续开发与维护进行了介绍。第7章为全文的总结。2 预备知识2.1 Bernstein 多项式 定义:设f是0,1上的函数,,约定=1.称0,1上的多项式函数为f的第n个Bernstein 多项式。应当将视为一个映射,它把0,1上的函数映射为0,1上的多项式函数。称为第n个Be
17、rnstein算子。2.2 Bzier曲线2.2.1 Bzier曲线的定义或定义在任意区间a,b,即表示n次Bzier曲线,(i=1,2,.,n)表示控制点,其中表示k次Bernstein基函数,k为控制多边形的顶点的序号, ,且2.2.1 Bzier曲线的性质性质 1 Bzier曲线的递推关系:性质 2 端点性质: (1) Bzier曲线以为起点,以为终点; (2) Bzier曲线与首末边相切,即性质 3 对称性:将Bzier曲线多边形顺序取反,定义同一条曲线,仅曲线方向取反。即性质 4 凸包性质: 一个点集的凸包被定义为由该点集的元素形成的所有的凸组合的集合。可以这样来想象确定平面上点集的
18、凸包:在点集的每一个元素位置上打上钉子,然后用一根封闭的橡皮绳套在所有钉子的外面,橡皮绳因弹性自然收缩形成封闭的多边形区域,略去钉子与橡皮绳的粗面,这个包括边界在内的多边形区域就是该点集的凸包。对于空间分布的点,则可想象一封闭的橡皮膜包住这些点,任其弹性收缩所形成的的空间区域即为其凸包。Bzier曲线的凸包性质是指Bzier曲线恒为于它的控制顶点的凸包内,这一性质确定了Bzier曲线的所在范围,使得设计人员预先就心中有数。它还被用于分割求交:如果用Bzier形式表示的两相交元素的控制顶点的凸包不相交,则可定义它们不相交。性质 5 几何不变性:Bzier曲线的形状仅与控制多边形的各顶点有关,与坐
19、标系 的选取无关性质 6 变差减少性质:任意一平面与Bzier曲线的交点数不会超过它与控制多边形的交点数,但包含等个控制多边形的平面除外。这一性质导致如下的凸性定理:如定义平面Bzier曲线的控制多边形是凸的(指连接首末顶点构成的封闭多边形为凸的,相重边情况除外),则所定义的平面Bzier曲线也是凸的性质 7 Bzier曲线的导矢: n次Bzier曲线的首末端点的k阶导矢分别为(kN):其中高阶向前差分矢量由低阶向前差分矢量递推地定义为:2.3 实际问题描述Bzier曲线就是这样的一条曲线,它是依据四个位置任意的点坐标绘制出的一条光滑曲线。在历史上,研究Bzier曲线的人最初是按照已知曲线参数
20、方程来确定四个点的思路设计出这种矢量曲线绘制法。Bzier曲线的有趣之处更在于它的“皮筋应”,也就是说,随着点有规律地移动,曲线将产生皮筋伸引一样的变换,带来视觉上的冲击。1962年,法国数学家Pierre Bzier第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名是为贝塞尔曲线。“贝赛尔”工具在photoshop中叫“钢笔工具”;在CorelDraw中翻译成“贝赛尔工具”;而在Fireworks中叫“画笔”。它是用来“画线”造型的一种专业工具。当然还有很多工具也可以完成画线的工作,例如大家常用的photoshop里的直线、喷枪、画
21、笔工具,Fireworks里的直线、铅笔和笔刷工具,CorelDraw里的自由笔,手绘工具等等。用“贝塞尔”工具无论是画直线或是曲线,都非常简单,随手可得。其操作特点是通过用鼠标在面板上放置各个锚点,根据锚点的路径和描绘的先后顺序,产生直线或者是曲线的效果。我们都知道路径由一个或多个直线段或曲线段组成。锚点标记路径段的端点。在曲线段上,每个选中的锚点显示一条或两条方向线,方向线以方向点结束。方向线和方向点的位置确定曲线段的大小和形状。移动这些元素将改变路径中曲线的形状,可以看下图。路径可以是闭合的,没有起点或终点(如圆圈),也可以是开放的,有明显的端点(如波浪线)。1关于“贝塞尔”工具,有两个
22、重要的概念需要了解,那就是“平滑点”和“角点”。“平滑点”是指临近的那条线段是平滑曲线,它位于线段中央。平滑曲线由称为平滑点的锚点连接,当移动平滑点的一条方向线时,将同时调整该点两侧的曲线段。“角点”是指它临近的那条线段至少一边是直的,尖锐的曲线路径由角点连接,当移动角点的一条方向线时,只调整与方向线同侧的曲线段。在CAD/CAM中,常采用Bzier曲线曲面,这样便于理解曲线/曲面。但采用Bzier形式的曲线曲面不能精确的表示二次曲线和二次曲面,如球体和圆。将多项式改为有理形式,不仅能精确表示二次曲线和二次曲面,且增加了设计的自由度。重复的进行两点线性插值,可以构造Bzier 曲线。重复的进行
23、两点有理插值,可以构造有理Bzier 曲线。 与控制顶点类似,有理Bzier曲线上的点可映射为Bzier曲线上的点或对应的控制多边形上的点。在透视投影使用理形式与非有理形式产生相同投影时,有理Bzier曲线曲面和有理B样条曲线曲面继承了Bzier曲线曲面和B样条曲线曲面的简单、优美的特性。这种形式,数学上的分析及几何特性的掌握了解都比其他4D空间(wx、wy、wz、w)方法和单纯的3D空间有理形式要简单和容易。 现在,有理曲线曲面不仅仅用于表示和构造二次曲线曲面。对有理曲线曲面的权因子该如何选取往往不很清楚,而且有理形式的计算比非有理形式复杂,但是,由于其构造特性,现在人们已经开始考虑有理Bz
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- zier 曲线 细分 技术 毕业论文 34
限制150内