//OpenGL----GLUT3.7和VS2012的配置过程如下所示:
1、下载需要的库文件
下载2、解压后得到glut.lib和glut32.lib,复制到lib文件夹下
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\GL
4、将glut.dll和glut32.dll这两个动态文件放到操作系统目录下的C:\Windows\system32文件夹内(32位系统)或C:\Windows\SysWOW64(64位系统)
/*****************************************************************************************************
程序功能:
验证OpenGl的环境是否搭建成功
开发环境:
VS2012 + OpenGl(GLUT3.7) + OpenCv2.4.9 + Halcon10.0
时间地点:
陕西师范大学----2016.9.29
作 者:
九月
*****************************************************************************************************/
#include "stdafx.h"
#include<iostream>
#include<gl/glut.h> //OpenGl的头文件
using namespace std;
float red = 0.0; //绘制颜色变量的定义
float blue = 0.0;
float green = 0.0;
void InitScene() //初始化OpenGL的显示场景
{
}
void ChangeSize(int w,int h) //OpenGL视区缩放
{
GLfloat fAspect;
fAspect = (h==0)?1.0f:(GLfloat)w/h;
glViewport(0,0,w,h); //定义视区
glMatrixMode(GL_PROJECTION); //指定投影矩阵,定义修剪空间
glLoadIdentity(); //加载单位矩阵
gluPerspective(45,fAspect,1,1000); //定义透视投影矩阵
glMatrixMode(GL_MODELVIEW); //指定模型视图矩阵
glLoadIdentity(); //加载单位矩阵
gluLookAt(0.0,0.0,0.5,0.0,0.0,-1.0,0.0f,1.0f,0.0f); //视图变换
}
void RenderScene(void) //显示OpenGL场景
{
static float angle = 0.0; //旋转角度
glClearColor(1.0,1.0,1.0,1.0); //设置清楚缓冲区的颜色为白色
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //清楚缓冲区
glPushMatrix(); //将当前矩阵压入堆栈
glRotatef(angle,0.0,1.0,1.0); //旋转矩阵
glColor3f(red,green,blue); //设置绘图颜色
glutWireTeapot(1.5); //绘制线框茶壶
glPopMatrix(); //将当前矩阵弹出堆栈
glutSwapBuffers(); //交换缓冲区
angle++;
}
void NormalKeyProc(unsigned char key,int x,int y) //处理ASCII生成键
{
if(key==27)exit(0); //按ESC退出程序
}
void SpecialKeysProc(int key,int x,int y) //处理非ASCII生成键
{
switch(key)
{
case GLUT_KEY_F1:
{
red = 1.0;
green = 0.0;
blue = 0.0;
break;
}
case GLUT_KEY_F2:
{
red = 0.0;
green = 1.0;
blue = 0.0;
break;
}
case GLUT_KEY_F3:
{
red = 0.0;
green = 0.0;
blue = 1.0;
break;
}
}
}
/*******************************************【主程序Main函数】****************************************
* 控制台应用程序的入口
*****************************************************************************************************/
int _tmain(int argc, _TCHAR* argv[])
{
printf("start glut\n");
glutInit(&argc,(char**)argv); //初始化GLUT库
glutInitDisplayMode(GLUT_DEPTH|GLUT_DOUBLE|GLUT_RGBA); //初始化显示模式
glutInitWindowPosition(100,100); //初始化显示窗口的位置
glutInitWindowSize(500,240); //创建一个大小为500*240的窗口
glutCreateWindow("Teapot 3D"); //创建一个窗口
glutDisplayFunc(RenderScene); //注册显示响应函数
glutIdleFunc(RenderScene); //注册空闲响应函数
glutReshapeFunc(ChangeSize); //注册窗口大小变化响应函数
glutKeyboardFunc(NormalKeyProc); //注册ASCII按键响应函数
glutSpecialFunc(SpecialKeysProc); //注册非ASCII按键响应函数
InitScene(); //初始化OpenGL显示场景
glutMainLoop(); //主循环处理
return 0;
}