利用OpenGL实现动画效果

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

利用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()。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航