随缘参考,可能会有不对的地方,仅为提供便利,截图难传且无参考意义就没传
实验二 OpenGL的简单动画
一、实验目的
1.掌握OpenGL的闲置函数。
2.掌握OpenGL的时间函数。
3.握OpenGL的简单动画功能。
4.了解OpengGL裁剪窗口、视区、显示窗口的概念和它们之间的关系。
5.进一步掌握OpenGL基本图元的绘制。
二、实验内容
1.闲置函数的使用与简单动画。
1)旋转的六边形如实验图2-1所示。
阅读6.4.3节中旋转的六边形样本程序,分析程序的实现步骤。运行该程序,观察旋转动画效果。
代码如下:
#include "stdafx.h"
#include "second_program.h"
#include <GL/glut.h>
#include <math.h>
#define MAX_LOADSTRING 100
#define PI 3.14159
int n=6,R=10;
// 此代码模块中包含的函数的前向声明:
float theta=0.0;
void Keyboard(unsigned char key, int x,int y);
void Display(void);
void Reshape(int w,int h);
void myidle();
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// TODO: 在此放置代码。
char *argv[]={"hello"," "};
int argc=2;
glutInit(&argc, argv); //初始化GTD工座
glutInitWindowSize(700,700);//设置显示窗口大小
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); // 设置显示模式 (注意双缓存)
glutCreateWindow("A Rotating Square"); // 创建显示窗口
glutDisplayFunc(Display); // 注册显示回调函数
glutReshapeFunc(Reshape); //注册窗口改变回调函数
glutIdleFunc(myidle); // 注册闲置回调函数
glutMainLoop(); //进入事件处理循环
return 0;
}
void Display(void)
{
glClear(GL_COLOR_BUFFER_BIT);