基于mfc和opengl三维图形的开发

基于mfc和opengl三维图形的开发

ID:14122693

大小:46.00 KB

页数:8页

时间:2018-07-26

基于mfc和opengl三维图形的开发_第1页
基于mfc和opengl三维图形的开发_第2页
基于mfc和opengl三维图形的开发_第3页
基于mfc和opengl三维图形的开发_第4页
基于mfc和opengl三维图形的开发_第5页
资源描述:

《基于mfc和opengl三维图形的开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于MFC和OpenGL三维图形的开发匡天君滕远道王乘徐明毅(华中科技大学数字化工程中心,湖北武汉430074)摘要:本文介绍了OpenGL的基本概念,通过对三维动态球体模型的具体分析,详细讨论了如何利用OpenGL函数库在MFC中实现三维绘图。关键词:OpenGL;MFC;三维;设备描述表(DC);绘制描述表(RC)中国分类号:TP391.41文献标识码:A3DGraphicsBasedonMFCandOpenGLKUANGTian-jun,TENGYuan-dao,WANGCheng,XUMing-yi(D

2、igitalEngineeringResearchCenter,HUST,HuBeiWuHan430074,China)Abstract:ThispaperdescriblesthebasicconceptsofOpenGL。Andhowtoimplementthree-dimentsionsimagesinMFCusedOpenGLisalsoparticulararguedthroughanthree-dimentsionsdynamicalspherespecificanalyzed。Keywords:O

3、penGL;MFC;3D;DC;RC引言随着三维图形的应用愈来愈广泛,计算机图形学的发展也越来越迅速。那么如何快速实现三维图形的计算可视化,仿真可视化呢?OpenGL即可作为主要途径之一。OpenGL作为一种硬件图形的软件接口,其优点是作为一个独立的工作平台,独立于硬件设备、窗口系统和操作系统,用它编写的软件可以在Unix、Windows98/NT等系统间移植。但是现在很多有关OpenGL的书中的程序都是使用标准C调用OpenGL函数实现的,这样做使得它缺乏面向对象能力,不符合当前流行的软件设计思想。因此我们需

4、要借助一个“窗口”系统来完成OpenGL三维图形的制作。众所周知,VisualC++中MFC包含了强大的基于Windows的应用框架,提供了丰富的窗口和事件管理函数,已经成为当前一种比较流行的工作平台。于是我们可以选用MFC调用OpenGL函数来进行三维图形的开发。现在以三维动态球体模型来讲述MFC中的OpenGL编程1.基本思想在Windows98/NT平台下,GDI是原始窗口的图形接口。而GDI实现这些是通过一个设备描述表DC来实现的。现在通过OpenGL绘图需要创建绘图描述表RC。但是RC并不能直接完成绘

5、图,只能与特定的DC联系起来,从而完成具体的绘图工作。最后要注意释放RC和DC。2.编程步骤第一步,设置开发环境现在以Windows2000为例,首先将glu.dll,glu32.dll,glut.dll,glut32.dll,opengl32.dll文件拷贝到操作系统WINNT/System32目录下,将gl.h,glaux.h,glu.h,glut.h拷贝到MicrosoftVisualStudio/VC98/Include/GL目录中中,将glaux.lib,glu32.lib,glut32.lib,op

6、engl32.lib拷贝到MicrosoftVisualStudio/VC98/Lib目录中;然后在编译程序的时候选择Project

7、Setting菜单,在Link标签中的Object/librarymodules编辑框中输入“opengl32.lib,glut32.lib,glu32.lib,glaux.lib”。到这时候环境就建立好了,可以进行下面的具体编程工作。第二步,具体编程本实例采用基于对话框的工程。至于用单文档方式和多文档方式其编程原理是一样的,这里不再作单独介绍。2.1创建项目文件。选择File

8、

9、New菜单项,新建一个基于对话框的项目文件MyDlgOpenGL;2.2修改对话框模板。删除对话框中的静态文本,调整控件的位置。2.3创建新类,添加消息映射。选择View

10、ClassWizard菜单项,打开MFC对话框,在AddClass之中选择New,以便添加一个新类COpenGL,且该类的基类选择genericCWnd;最后利用MFCClassWizard为COpenGL类添加消息WM_CREATE,WM_PAINT的映射。2.4添加代码。2.4.1定义像素格式,创建OpenGL显示。在OpenGL能够在一

11、个绘图对象中绘图之前,该绘图对象必须初始化。为此引入像素格式的概念。像素格式能告诉OpenGL是否使用双缓存,颜色模式,颜色位数,深度位数等等重要信息。它由一个被称作PIXELFORMATDESCRIPTOR的所描述。于是定义在OpenGL.h中定义函数intMySetPixelFormat(HDChdc)。然后在OpenGL.cpp文件中加入如下代码:intCOpenGL::MySe

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

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

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