My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 图形图像与多媒体
利用OpenGL实现动画效果
作者:未知 时间:2005-07-20 14:14 出处:VC知识库 责编:MyFAQ
              摘要:利用OpenGL实现动画效果

利用OpenGL实现动画效果


作者:浮萍工作室

下载源代码

    本程序主要通过不断改变视口位置来模仿动画效果,同时介绍了在进行opengl绘图时所做的一些不可或缺的准备工作。
一、首先新建一个 “Win32 Application” 的空工程。
二、然后将 “glu32.lib glaux.lib opengl32.lib” 引入工程之中。
三、在工程->设置->General里将 “Microsoft Foundation Classes” 改为“Use MFC in a Static Library”。
四、因为我们建立的是一个空工程,所以必须为此工程添加必要的类代码。先建一个 OpenGLApp 类,基类是 CWinApp,构造函数和析构函数都为空,同时添加一个 BOOL 型的 InitInstance(),用来显示窗口。其内容如下:

         OpenGLWin* pMainWnd = new OpenGLWin;
	pMainWnd->ShowWindow(SW_SHOWNORMAL);
	pMainWnd->UpdateWindow();
	m_pMainWnd = pMainWnd;
	return TRUE;
别忘了在实现文件里添加app对象 OpenGLApp app;

五、下面建立另一个类 OpenGLWin,其基类是CFrameWnd
手工添加以下消息映射:
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnPaint();
afx_msg void OnDestroy();
DECLARE_MESSAGE_MAP()
          
添加如下函数及变量:
         void drawsphere();	
	void OnDrawSin();
	void myinit();
	HGLRC hglrc; //rc句柄
         
头文件构造完毕。下面是实现文件: 首先添加头文件
#include "gl\gl.h"
#include "gl\glu.h"
#include "gl\glaux.h"
#include <math.h>
          
在构造函数之前手工添加:
BEGIN_MESSAGE_MAP(OpenGLWin, CFrameWnd)
	ON_WM_CREATE()
	ON_WM_PAINT()
	ON_WM_DESTROY()
END_MESSAGE_MAP()
           
构造函数内容如下:
    myinit();
    Create(NULL, "OpenGLApp---FLoat WorkStudio");
          
用以创建缺省的窗口,及初始化。 初始化函数:
void OpenGLWin::myinit()
{
	glClearColor(0.0,0.0,0.0,1.0);////背景色清屏色
	glClear(GL_COLOR_BUFFER_BIT);
	//	glVertex3d(0.4,0.4,0.4);
} 
          
    下面用drawsphere()来绘制实体球。 在OnDrawSin()里通过改变视口来用 drawsphere() 绘制的球模仿两种周期不同的正弦曲线。最后在OnPaint()里调用OnDrawSin()在窗口内绘制动画。当然也不要忘了必要的销毁工作 OnDestroy()。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有