vc和opengl的综合应用

vc和opengl的综合应用

ID:34523466

大小:352.60 KB

页数:8页

时间:2019-03-07

vc和opengl的综合应用_第1页
vc和opengl的综合应用_第2页
vc和opengl的综合应用_第3页
vc和opengl的综合应用_第4页
vc和opengl的综合应用_第5页
资源描述:

《vc和opengl的综合应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据VC和OpenGL的综合应用胡晓丹卢习林北京服装学院工业没汁与信息工程系,北京100029摘要:奉文介绍了视图、文档的基奉概念,以及用文件菜单的保存选项保存视图数据的编程思路.通过实例详细叙述丁如何在vc中利用加载菜单项加载原始数据点,利用文档类处理数据,利用视图类调用OpcnGL函数显示曲线,以及利用保存菜单项保存文档类处理过的重要的曲线参数.关键词:文档;视图;Nurbs曲线;openGL中图分类号:TP3llll文献标识码:A文章编号:100l一05“(2002)02-0029-061引言众所周知,vc是被广泛使用的优秀的《

2、向对象的编程工具;丽OpenGL已经成为开发可移植交互式2D和3D图形的最佳选择,其功能强火的函数加速了应用程序的开发过程,并且提供NuRBs(Non.uniformRationalB.splme:非均匀有理B样条)接口.由于NuRBs方法具有许多优良性能,在复杂曲线和曲面造型中被广泛应用””1.在利用vc调用O口enGL函数编写曲线曲面程序时,会涉及到一些复杂算法,比如:参数的确定,节点向量的求法,以及控制点反算等.然后以这些算法计算出的值作为OpenGL函数的参数、利用ODenGL函数绘制出高质量的图形.有时,用户对一些中间结果数据感

3、兴趣,或者程序员为了调试程序方便,需要输出某些中间结果数据,这就使得保存重要参数非常必要.本文将介绍在vc6.O环境下,调用0口eⅡGL函数显示NuRBs曲线的一般方法.2编程思路2.1几个概念在复杂的MFc应用程序中,典型的情况是包含应用程序和框架类,以及两个代表“文档”和“视图”的其他类,这个文档一视图体系是应用程序框架的核心.利用文档一视图结构,可以把数据与数据的用户视图分开;从用户的角度来看,视图是用户可以改变大小、位置和关闭的普通窗口.同其他基于windows应用程序的窗口一样;从程序员的角度来看,视图是从MFc库cview类派

4、生的类的C对象“1.收稿日期2002_07_15第一作者:女.1977年生.2000级研究生万方数据30北京服装学院学报(自然科学版)2002年2.2程序思想首先,给文件菜单的加载选项添加消息映射,从原始数据点(曲线型值点)文件中得到型值点的空间坐标值;然后,在文档类中添加方法,计算出重要参数;接着在视图类中添加消息映射和方法,蛙示曲线;最后,给文件菜单的保存选项添加消息映射,把一些鼋要参数保存到文件.3程序实现3.1程序实现的步骤利用MFcAppwizard建立一个名为saveData的工程,把菜单资源中文件的打开选项改为加载,Ids为

5、IDFILELOAD.这里规定数据点文件的格式为:点编号x轴坐标v轴坐标z轴坐标.并且建立一个这样的文件,利用记事本即可,文件扩展名为dat.在消息映射voidcsaveDataDoc::onFilesav《)qt添加代码,不仅得到型值点的坐标,还要进行参数的计算,所以要进一步添加方法:voidcsaveDataDoc::computeParas()计算传递给OpenGL函数的参数以及其他一些重要参数、voidcsaveDataDoc:computeParaT()计算参数T、voidcsaveDataDoc::computeKnotvec

6、tor()if‘算节点向量、voidcsaveDataDoc::computecontrolPoints()计算控制点、intcsaveDataDoc::Findspan(intI)查找某个参数f在节点向量中的位置、voidcsaveDataDoc::BasisFuns(intspan,intI,noat+N)计算基函数、voidcsaveDataDoc::LEGauseRoad(noat+B)利用高斯约当法解方程.同时在MyD眦IType.h文件中建立了点的两种数据结构,因为不知道点的个数,所以开始的数据点用链表结构,而得到型值点坐标的

7、同时,也知道了点的个数,所以在进一步计算出来的控制点就采用了数组的形式.计算出参数后,在视图类中添加消息映射和方法:BooLcsaveDataView::setIlpPixelFormat()设置点的格式、voidcsaveDataView::OnDraw(cDc’pDC)调用OpenGL函数画出曲线和控制点等.最后.在voidcsaveDataDoc::onFilesave0中添加代码,把参数、节点向量、控制点保存到用户指定的文件中.注意:因为曲线的绘制需要文档类计算出来的参数,所以添加了全局变量BOOLIsLoad,只有当参数计算出来

8、后才为真,绘制曲线前首先判断IsLoad的值.在saveDataDoc.cpp文件的头部添加:#血clude”MyD8taType.h”extemB00LIsLoad:在s吖eD乱aviewc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。