文档详情

利用OpenGL实现三维绘图.doc

发布:2019-05-01约8.1千字共11页下载文档
文本预览下载声明
河南师范大学本科毕业论文(设计) PAGE 1 利用OpenGL实现三维绘图 摘 要:本文主要介绍VC++编程中利用OpenGL实现三维绘图的问题,文中首先介绍OpenGL编程中的步骤,分为初始化OpenGL绘图环境和定义与Windows接口的系统函数两步,其中又详细说明了具体方法及需要注意的问题,主要目的是利用OpenGL绘出一个三维立体动画图像,然后用一个VC++实例包括操作步骤和源程序代码来说明OpenGL的功能,最后做了简单的小结。 关键词:VC++;OpenGL;三维绘图 Abstract:This article mainly introduces the question about how to use OpenGL to protract three-dimension-images in VC++ programming. First, it introduces the steps in OpenGL programming, including initialization protracting environment and the definition of the system functions about interface to Windows. It mainly discusses the detailed instructions about flexible methods and problems that we should pay attention to with the aim of protracting a three-dimension-image. Then, with an example of VC++ programming including procedure and source code, it illustrates the function of OpenGL. Last, it makes a brief conclusion. Keywords:VC++;OpenGL;Protraction of three-dimension-images 1 前言 在三维绘图蓬勃发展的过程中,计算机公司推出了大量的三维绘图软件包。其中SGI公司推出的OpenGL,作为一个性能优越的图形应用程序设计界面(API)异军突起,取得了很大的成就。它以高性能的交互式三维图形建模能力和易于编程开发,得到了Microsoft、 IBM、 DEC、 Sun、 HP等大公司的认同,OpenGL原先是Silicon Graphics Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接口。但最近几年它成为一个非常优秀的开放式三维图形接口。实际上它是图形软件和硬件的接口,它包括有120多个图形函数,GL是GRAPHIC LIBRARY的缩写,意思是“图形库”。OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形。微软在Visual C++ 中已提供了三个OpenGL的函数库(glu32.lib, glau.lib,OpenGL32.lib),可以使我们方便地编程,简单、快速地生成美观、漂亮的图形。例如Windows NT中的屏幕保护程序中的花篮和迷宫等都给人们留下了深刻的印象,因此,OpenGL已经成为一种三维图形开发标准,是从事三维图形开发工作的必要工具. 2 在VC中利用OpenGL实现三维绘图 2.1 MFC AppWizard应用程序中进行OpenGL编程 在VC中进行三维绘图有两种方法,第一是在简单的控制台应用程序中进行OpenGL编程,另一种是在MFC AppWizard应用程序中进行OpenGL编程,后者的方法相对复杂,在此不做详述,只做简单归纳[1-3]: (1)编写创建函数; (2)编写销毁函数,清除位图、定时器等资源及设备场景; (3)修改Cview类的样式; (4)编写OnDraw事件处理程序; (5)在OnSize方法中定义当前视区、投影模型和物理模型以及光源等; (6)编写OnTimer事件处理程序; (7)编写OpenGL绘图程序。 2.2 在简单的控制台应用程序中进行OpenGL编程的方法步骤以及注意事项 (1)初始化OpenGL绘图环境 = 1 \* GB3 ① 定义颜色模式和缓冲模式 OpenGL提供两种颜色模式:RGB(RGBA)模式和颜色索引模式。在RGBA模式下所有颜色的定义用RGB三个值来表示,有时也加上Alpha值(表示透明度)。RGB三个分量值的范围都在0和1 之间,它们在最终颜色中所占的比例与它们的值成正比。如:(1,1,0)表示黄色,(0,0,1)表示蓝色。颜色索引模式
显示全部
相似文档