基于OpenGL的立体模型库设计说明书_第1页
基于OpenGL的立体模型库设计说明书_第2页
基于OpenGL的立体模型库设计说明书_第3页
基于OpenGL的立体模型库设计说明书_第4页
基于OpenGL的立体模型库设计说明书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

- 1 -1 前言1.1 选题背景OpenGL(全称 Open Graphics Library)是一个定义了跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)的处理 1。OpenGL 是个专业的三维图形程序接口,是一个功能强大,并且调用方便的底层图形库。目前,OpenGL 仍然是仅有的能够取代微软对 3D 图形技术的完全控制的接口。它仍然具有很强的生命力,但是 Silicon Graphics 公司已经不再用任何让微软不悦的方式推广 Open GL 了,因而它存在较高的风险性。图形程序开发人员是一个有着独立思想的人群,很多开发人员目前仍然在使用 OpenGL 图形库。因此,硬件开发商正在设法加强对它的支持。Direct3D 目前还不能支持高端的图形设备和某些专业应用; 所以 OpenGL 在这些领域任然占据着统治地位。目前,国内的三维开发技术正处于追赶国外技术的关键时期,从三维程序的创意、策划、研究开发与实现,到软件的运营与维护,都有大量的地方值得我们学习和探究。由于 Linux 操作系统平台的广泛推广,基于 Linux 的各种应用软件也在不断壮大,因此基于跨平台的三维图形处理软件开发也越来越受重视。OpenGL 是一种独立且与平台无关的三维图形开发库,在各种语言下都能进行主框架开发并结合应用 OpenGL 函数都可以开发出三维软件。但是由于框架开发的平台相关性从而使编成的三维图形处理软件无法跨平台编译运行,因此 glut + OpenGL 的方式成了一种很好的选择。但是在对复杂框架和各种媒体的支持方面,glut 并不理想。在Linux 下可以采用 FLTK 等框架平台技术实现包括按钮在内的比较复杂的框架功能,但是需要专门的 Linux 开发环境,众多的 Window 环境下的 KDE 开发者明显对此无法适从。相反,SDL(Simple DirectMedia Layer)作为免费的跨平台多媒体应用编程接口,已经被人们广泛用于开发二维软件,其优秀的消息框架支持、文件支持和声音支持等都使得它成为能与微软 DirectX 匹敌的最为成熟的技术之一。1.2 选题意义目前,基于 OpenGL 的三维立体图形软件都是一些有关绘制三维立体图,或者处理三维立体图的软件,对于有些常用的立体图形一到用时就得从新加载到三维立体软件中,没有进行系统的管理。这样一来就给学习和工作带来诸多的时间浪费。为了解决上面的问题,从而更高效的实现对立体模型的管理应用,我选择了这个软件(基于 OpenGL 的立体模型库软件开发)作为毕业设计。软件通过 OpenGL 与ACCESS 数据库相结合,提高对三维立体模型的高效、交互式的管理。- 2 -1.3 设计思路针对上面提到的,该软件要通过 OpenGL 与 ACCESS 相结合实现高效的、交互式的管理,我想到了下面的的软件设计方案。首先,该软件分为两大模块。第一个模块就是 OpenGL 的框架模块。这个模块是通过 Visual C+,利用 OpenGL 的库函数系统编程一个基于 OpenGL 的三维模型处理窗口框架。在该窗口里面能实现对三维模型的浏览、旋转和缩放。这一部分是该软件的基础部分,也是最底层的框架结构。第二个模块就是 ACCESS 的数据库管理模块。这个模块是通过 ACCESS 建立三维立体图形的数据库,并对数据库实现查看、添加和删除。然后,通过 Visual C+编程将 OpenGL 的三维模型处理窗口模块与 ACCESS 的数据库管理模块结合起来。这样这个软件就成型了。通过这个软件可以在数据库里面调用三维模型的数据来在 OpenGL 窗口里面查看三维立体图形,这样就更形象的理解与操作三维立体模型。也可以在窗口上实现智能化、形象化的三维立体模型数据库管理。从而实现更高效、交互式的三维立体模型库的管理。- 3 -2 设计中所用的软件及接口技术简介在该软件程序设计共用了三个软件及接口技术:Visual C+、OpenGL、Access。 2.1 Visual C+简介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 等开发组件工具包。2.1.1 Visual C+组成部分Visual C+由三个部分组成:Developer Studio、MFC、Platform SDK。(1)Developer Studio,它是 Visual C+的一个集成开发环境,我们日常工作的 99%都是在它上面完成程序开发的,加上它的标题赫然写着“Microsoft Visual C+”,所以很多人都理所当然的认为,那就是 Visual C+了。其实不是这样的,虽然 Developer Studio 提供了一个很好的编辑器和很多 Wizard,但实际上它没有任何编译和链接程序的功能。其实 Developer Studio 并不是只用于 VC 的,它也同样用于 VB,VID 等 Visual Studio 家族的其他同胞兄弟。所以不要把Developer Studio 当成 Visual C+, 它仅仅只是 Visual C+的一个壳子。(2)MFC,如果从理论上来讲,MFC 也不是仅仅专用于 Visual C+,Borland C+,C+Builder 和 Symantec C+同样可以处理 MFC。同时,用 Visual C+编写代码也并不意味着一定要用 MFC,如果可以,用 Visual C+中的 STL,ATL 编写程序也是一样没有限制的。但是,Visual C+很多功能本来就是为 MFC 打造的,Visual C+中的许多特征和语言扩展也是为 MFC 而设计的,所以用 Visual C+而不用 MFC就相当于抛弃了 Visual C+中很大的一部分功能。(3)Platform SDK,这才真正是 Visual C+和整个 Visual Studio 的主要部- 4 -分,即使我们很少直接的接触到它。大致说来,Platform SDK 是以 Microsoft C/C+编译器为核心,辅以其他一些工具和文档资料。上面说到 Developer Studio没有编译程序的功能,所以这项工作是由 CL、NMAKE 和其他许许多多命令行程序来完成的。这些我们所看不到的程序才是构成 Visual Studio 的基础。2.1.2 Visual C+ 6.0 的使用方法启动 Microsoft Visual C+ 6.0(其启动界面如图下图 2.1) 图 2.1选择:“文件”下的“新建”选项,在打开的对话框中选择“工程”选项 再选择你所需要的工程类型-填写“工程名称”-选择工程存储“位置”-点击“确定”. 然后再选择:“文件”下的“新建”选项,在打开的对话框中选择“文件” 再选择“C+Source file”-填写“文件名称”-点击“确定”. 这样就建好了一个.cpp 的工程文件。 然后你在.cpp 文件中写入你的 c 语言代码就可以了。 代码写好以后你看一下工具里有这样一个图标 依次点,编译,运行就可以了。 - 5 -2.2 OpenGL 简介OpenGL 是一个开放式的三维图形软件包,它是独立于窗口系统和操作系统的,以它为基础开发的应用程序可以十分方便地在各种平台之间移植;OpenGL 可以与Visual C+紧密结合.OpenGL 具有七大功能:1.建模:OpenGL 图形库不仅提供了基本的点、线、多边形的绘制函数,此外还提供了复杂的三维物体以及复杂曲线及曲面的绘制函数。 2.变换:OpenGL 图形库的变换包括一些基本变换和投影变换。基本变换也即平移、旋转、缩放变换,投影变换包括平行投影(又称正射投影)和透视投影两种。这些变换有利于减少算法的运行时间,提高三维立体图形的显示速度。 3.颜色模式设置:OpenGL 颜色模式有两种,即 RGBA 模式和颜色索引(Color Index) 。 4.光照和材质设置:OpenGL 光有辐射光(Emitted Light) 、环境光(Ambient Light) 、漫反射光(Diffuse Light)和镜面光( Specular Light) 。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。 5纹理映射(Texture Mapping):利用 OpenGL 纹理映射功能可以十分逼真地表达物体表面细节。从而感受到其三维立体图形的效果。 6位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending) 、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。 7.双缓存动画(Double Buffering):双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。图 2.2 是 OpenGL 的运行平台和结构 3。- 6 -图 2.2 2.2.1 Visual C+中 OpenGL 编程的环境配置要在 Visual C+中编写 OpenGL 的程序需要做如下配置:首先,将 OpenGL 开发库的 Glu.dll、Glut32.dll、Glut.dll 三个文件拷贝到操作系统的 system32 文件夹中。然后,将 OpenGL 开发库中的Gl.h、Glaux.h、Glext.h、Glu.h、Glut.h、Wglext.h 这六个文件拷贝到 Visual C+的“includegl”文件夹下。最后,将 OpenGL 开发库中的Glaux.lib、Glu32.lib、Glut32.lib、OpenGL.lib 四个文件拷贝到 Visual C+的静态函数库文件“VClib”文件夹下。至此在 Visual C+中 OpenGL 的编程环境就配置好了,这样就可以进行 OpenGL的编程了。2.3 Access 数据库的简介Access 是微软公司推出的基于 Windows 的桌面关系数据库管理系统(RDBMS,即 Relational Database Management System) ,是 Office 系列应用软件之一 2。它提供了表、查询、窗体、报表、页、宏、模块 7 种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编- 7 -写代码,就可以完成大部分数据管理的任务。 Access 能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。熟练的软件设计师和资料分析师利用它来开发应用软件,而一些不熟练的程序员和非程序员则能使用它来开发简单的应用软件。虽然它支持部分面向对象(OO)技术,但是未能成为一种完整的面向对象开发工具。2.3.1 Access 与 SQL 的区别Access 是一种桌面数据库,只适用于数据量少的数据库。在处理少量的数据和单机访问的数据库是具有很高的效率。但是它的同时访问客户端不能多于四个。Access 数据库有一定的极限,当数据达到 100M 左右时,很轻易造成服务器的 iis假死,或者消耗掉服务器的内存导致服务器崩溃。SQL 是基于服务器的中型的数据库,可以适合大容量的数据的应用,在功能上治理也比 Access 要强得多。在处理大量数据的效率上,后台开发的灵活性,的扩展性等方面要强大得多。如下表 2.2 是 Access 与 SQL 的区别:SQL 数据库与 Access 数据库的特征区别内容 Access 特征 SQL 特征版本 桌面版 网络版,可支持跨界的集团公司异地 使用节点 一人工作,要锁定,其他人无法使 用 节点多,支持多重路由器管理权限 否 管理权限划分细致,对内安全性高防黑客能力 否 数据库划分细致,对外防黑客能力高并发处理能力 100 人或稍多 同时支持万人在线提交到处 XML 格式 可以,需要单做程序 可导出成为 XML 格式,与 Oracle 通用数据处理能力 一般 快是否被优化过 否 是表 2.2由于本设计中数据量比较少,所以选择了适合少量数据的 Access 数据库。- 8 -3 系统分析3.1 需求分析在 OpenGL 的基础上还有 Open Inventor、Cosmo3D、Optimizer 等多种高级图形库,适应不同应用。其中,Open Inventor 应用最为广泛。该软件是基于 OpenGL面向对象的工具包,提供创建交互式 3D 图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑 3D 场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。设计这个软件(基于 OpenGL 的立体模型库软件)主要是目前基于 OpenGL 的有关软件都是一些绘制或处理三维图形,并没有将日常处理或常用的三维立体图形进行有效的管理,以方便在以后使用相关的三维立体图性。这个软件能通过 Visual C+编程把 OpenGL 窗口框架(OpenGL 窗口框架期望效果如图 3.1)与三维立体模型数据库结合,达到高效、交互式的管理三维立体模型。方便在三维立体图形中的绘制与教学中三维立体模型的查看与管理。- 9 -图 3.13.2 可行性分析要实现该软件主要解决两个问题,怎么实现 OpenGL 框架与怎么实现数据库?针对这两问题,首先解决 OpenGL 的框架问题。通过 OpenGL 的库函数,再通过 Visual C+编程,这个问题是可以解决的。在查阅了大量文献后利用 OpenGL 处理或绘制三维立体模型已经大量的应用了。然后要建立三维立体模型的数据库。做这个软件我选择了 Microsoft Access 数据库软件,它是用来处理小型数据库的,所以在这个软件中用 Access 是比较适合这个程序的,因为这个数据库的数据量比较少,也是做的一个比较简单的数据库。解决这两个问题的流程图如下(图 3.2):图 3.2- 10 -4 软件总体设计4.1 软件原理分析该软件所处理的三维立体模型是用 Autodesk 公司的 3D Studio Max 绘制的立体模型,它所生成的图形文件格式是 3DS 文件格式。3DS 文件由许多块组成,每个块首先描述其信息类别,即该块是如何组成的。3DS 格式文件的读入大致可以分为两大部分:文件内容的读入和 3D 对象的绘制。其中文件内容的读入定义了两个类:CTriObject 和 CTriList。CTriObject 主要用于处理 3DS 文件中的各种对象,而CTriList 主要用于处理对象序列。3D 对象的绘制主要是在 CTriObject 中完成的,其外部形状主要是采用三角形来近似的。该软件是通过软件的数据库管理部分把三维立体模型的数据传送到软件的OpenGL 框架窗口中,以达到对三维立体模型的查看、旋转、缩放等处理。然后,通过该软件也能在其数据库管理界面实现对三维立体模型的查看、删除、添加等管理操作,从而来实现软件对三维立体模型的高效、交互式管理。其软件原理流程图如下图 4.1 所示:图 4.14.2 软件的实现软件的实现我也是根据前面的模块进行分模块实现的,主要有两大模块:- 11 -OpenGL 窗口框架和三维立体模型的数据库。下面就进行分块实现。4.2.1 OpenGL 窗口框架的实现首先设计的是该软件的基础部分OpenGL 窗口框架。该程序编辑的 OpenGL窗口框架是用 Visual C+ 编辑的一个单文档程序。编程步骤如下:(1)先启动 Visual C+,选择“新建”菜单,在新建对话框中选择“Project”标签,选择“MFC AppWizard(exe) ”,这就新建了一个单文档的工程,取名叫:基于 OpenGL 的立体模型库如图 4.2:如图 4.2(2)利用 MFC ClassWizard 为 OpenGLView 类添加消息WM_CREATE、WM_DESTROY、WM_SIZE 的响应函数。这些函数是对这个窗口实现创建、销毁、控制尺寸的。(3)然后再 OpenGLView.h 中编辑代码(该程序的详细的代码都不再叙述) 。这段代码主要是添加成员函数和成员变量。(4)然后在 OpenGLView.cpp 中编辑代码。主要是窗口的初始化。(5)在 StdAfx.h 中编辑代码。主要是包含有关 OpenGL 函数的头文件。- 12 -至此,基于单文档的 OpenGL 窗口的大体框架就做好了(如图 4.3) 。但这是还不能读入三维立体模型。下一步就是要编辑其读入 3DS 文件的程序。图 4.33DS 文件的读入首先要通过 glStructures.h 函数来插入基本的数据结构定义文件。它主要是定义 3DS 文件的读入结构。然后通过 basicRead.h 来定义数据输入函数。然后在工程程序中插入一个新的类 C3dsReader,该类主要用于处理 3DS 文件中的各种块的读入。再在工程中插入一个用于处理 3DS 文件中各种类对象的类CTriObject。再在工程中插入一个用于处理 3DS 文件显示中的各种列表的类 CTriList。然后再为 3DSLoaderView 类添加消息函数如:WM_LBUTONDOWN、WM_LBUTTONUP、WM_RBUTTONDOWN 等鼠标消息响应函数。这些函数的功能是使我们能通过鼠标来控制三维立体模型,从而来达到对三维立体模型的旋转、缩放等。最后编译、运行,并通过该 OpenGL 窗口框架打开一个三维立体模型如图 4.4 所示- 13 -图 三维立体模型数据库实现三维立体模型数据文件的格式是 3DS。3DS 文件都是分模块的(其块的基本结构如表 4.5) ,最开始的出现的主块是基本块,它包含了整个文件。还有两种主块:3D编辑程序块和关键帧块,前者的 ID 是 3D3D,后者的 ID 是 B000.3D 编辑程序块表明编辑程序数据开始,也就是说物体的形状数据定义从此处开始。关键帧块表明下面开始定义关键帧信息。块内相对偏移量 长度 名称0 2 块的 ID2 4 块的长度6 n 数据6+n m 子块信息表 4.5 3DS 文件块的基本结构软件所用的数据库系统是 Microsoft Access 数据库。Access 有很多的优点,如下:(1)存储方式简单,易于维护管理。Access 管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb 或.accdb)的数据库文件中,- 14 -便于用户的操作和管理。 (2)面向对象 Access 是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用户的开发工作。同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。 (3)界面友好(其操作界面如图 4.6) 、易操作 。Access 是一个可视化工具,是风格与 Windows 完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。图 4.6(4)集成环境、处理多种数据信。Access 基于 Windows 操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极大地提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 (5)Access 支持 ODBC(开发数据库互连,Open Data Base Connectivity) ,- 15 -利用 Access 强大的 DDE(动态数据交换)和 OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel 表格、Word 文档,还可以建立动态的数据库报表和窗体等。Access 还可以将程序应用于网络,并与网络上的动态数据相联接。(6)支持广泛,易于扩展,弹性较大。能够将通过链接表的方式来打开 EXCEL文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以 Access 作为前台客户端,以 SQL Server 作为后台数据库的方式(如 ADP)开发大型数据库应用系统。 总之,Access 是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发;即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。但 ACCESS 也有缺点,ACCESS 是小型数据库,既然是小型就有它的局限性:(1)数据库过大,一般百 M 以上(纯数据,不包括窗体、报表等客户端对象)性能会变差。 (2)虽然理论上支持 255 个并发用户,但实际上根本支持不了那么多,如果以只读方式访问大概在 100 个用户左右,而如果是并发编辑,则大概在 10-20 个用户。(3)记录数过多,单表记录数过百万性能就会变得较差,如果加上设计不良,这个限度还要降低。 (4)不能编译成可执行文件(.exe) ,必须要安装 Access 运行环境才能使用。下面就开始对三维立体模型建立数据库。首先打开 Microsoft Access,然后建立三个表格:贯穿体表格、柱体表格、组合体表格(如图 4.7) 。见这三个表格的原因是我把三维立体模型分成了这三种类型,以便在以后方便数据处理。这三个三维立体模型库表格的属性有 ID、类型、备注。ID 是用来唯一标识一个三维立体模型的码,然后我设置 ID 为主键。类型是用来分组三维立体模型的,为了方便以后的三维立体模型数据的管理。备注是用来填写三维立体模型的存储路径,为了在使用打开时它能把三维立体模型的存储路径传递给 OpenGL 窗口,以达到在 OpenGL 窗口中打开三维立体模型。- 16 -图 4.7建立好模型的数据库以后就是数据库在软件中的链接了。我们的数据库管理层是创建的一个对话框窗口管理。它通过类型的下拉菜单来调用我们的数据库,让他在下面的列表框中显示我们的数据表。然后在数据列表中选中一项数据记录时,再点击“查看模型”按钮时,它就把选中数据记录的“备注”列中的三维立体模型的存储路径值返回给我们的“查看模型”中,然后 OpenGL 窗口就会调出三维立体模型把它显示在窗口里面。从而实现了三维立体模型的查看。至于实现三维立体模型的添加删除,主要是通过对数据表的操作完成的。具体就是先调出你要添加的三维立体模型的对应表,然后添加一项新纪录,再把三维立体模型拷贝到该程序专门存放三维立体模型库的文件夹里,它就会自动保存这个数据了。4.3 软件的运行启动软件打开“文件” ,再选择“打开” ,通过这个方式能打开没有存进数据库的三维立体模型如图 4.8:- 17 -图 4.8在启动软件时,选择“模型库管理”菜单,就会进入三维立体模型库管理层界面(如图 4.9) 。在这里面才是通过数据库来对三维立体模型实现查看、添加、删除。在用软件显示出三维立体模型到 OpenGL 窗口后,通过鼠标就能控制三维立体模型的旋转、缩放功能。按住鼠标左键不放,在窗口上移动就能实现三维立体模型的旋转;同样,按住鼠标右键不放,在窗口上移动就能实现三维立体模型的缩放功能。- 18 -图 4.94.4 软件的维护软件维护主要是指根据需求变化或硬件环境的变化对应用程序进行部分或全部的修改,修改时应充分利用源程序。维护的内容主要包括:(1)改正性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。(2)适应性维护是指使用软件适应信息技术变化和管理需求变化而进行的修改。(3)完善性维护这是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。这些功能对完善系统功能足非常必要的。(4)预防性维护为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。- 19 -针对这个软件,在编程过程中也遇到了一些测试运行不成功的,然后在设计中又引用了其他的一些方法,必定会导致软件的存在一些合理性问题。在软件的移植性上也不是很好因为软件是基于 OpenGL 的,运行它要调用 OpenGL 的库函数。当软件在没有 OpenGL 库函数的微机上运行时,可能会遇到一些意料之外的问题。软件的数据库部分安全问题也是隐患。由于数据部分没有用到加密技术,那么数据很容易就被更改。在数据的管理过程中,由于数据没有设定限制,也可能添加一些不是软件要求格式的三维立体模型数据在里面。- 20 -5 结 论做这个软件在最初的设计 OpenGL 窗口框架是出现了背景颜色不是单一的黑色,而是出现了一种“色彩斑斓”的情况。经过反复的检查程序,发现出现这个问题的原因是初始化程序时没有清空屏幕,从而导致它在进行 OpenGL 窗口初始化时,它会随机的读取内存中的一些颜色参数致使 OpenGL 窗口不能初始化为单一的黑色背景。另外在软件除做成时,第一次打开三维立体模型时没有出现任何三维立体模型在 OpenGL 创库中。后面通过排查了数据库建立了、数据传递等处时,发现了是在点击“立体模型”时,他并没有调动“Open file“函数,因为在变编程时在这少添加了一个函数。在对数据库进行添加、删除时,软件让这些操作就在数据库列表中进行操作了,致使软件看起来过于缺乏安全性。所以期望在以后的软件改进过程中能对数据库部分实现一个更安全的操作。在软件的立体模型管理这个对话框界面显得有点单调,也希望在以后的改进中能把这个界面添加一些元素,从而是这个界面能做的更生动,更友好,更充满活力一些。- 21 -参 考 文 献1 汪池,陈一民,方明伦.VC环境下OpenGL的开发应用J.自然科学报,1999,5:1912 王宇虹,朱亦文,陈格.Access数据库系统开发M.北京:电子工业出版社, 2006.3:1-33 和平鸽.OpenGL 高级编程与可视化系统开发M.北京;中国水利水电出版社,2002:5-74 僧 德 文 , 李 仲 学 , 李 春 民 .基 于 OpenGL的 真 实 感 图 形 绘 制 技 术 及 应 用 J.计 算 机 应 用 ,2005, 3:173-1755 阳 富 民 , 赵 宁 , 张 杰 .基 于 OpenGL 的 三 维 窗 口 裁 剪 、 拾 取 算 法 研 究 J.自 然 科 学 报 ,2005, 33(4):23-296 王 兰 美 , 赵 继 成 , 泰 华 东 .OpenGL 及 其 在 VC+下 的 开 发 应 用 J.武 汉 大 学 学 报 ,2006,39( 4) : 62-657 解 祥 荣 , 徐 海 黎 .三 维 模 型 的 读 取 与 体 素 华 J.南 通 大 学 学 报 , 2011,1

温馨提示

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

评论

0/150

提交评论