配置OpenGL编程环境并完
成简单二维图形绘制
指导指导指导指导教师教师教师教师::::胡盛胡盛胡盛胡盛
实验时间:2012年9月25日(周二),晚7:00~8:40
实验地点:软件学院1525(信息安全技术实验室)
OpenGL编程环境
编程环境
编程环境编程环境
Windows环境
OpenGL核心函数库(opengl32.dll)和OpenGL实用函
数库(glu32.dll)都已安装在“系统安装目录
\WINDOWS\SYSTEM32\”目录下
Visual C++ 6.0
gl.h和glu.h位于“VC安装目录\VC\Include\GL\”目
录下
opengl32.lib和glu32.lib位于“VC安装目录
\VC\Lib\”目录下
2
OpenGL编程环境
编程环境(续续续续1)
编程环境编程环境
OpenGL工具库(GLUT)
可以从www.opengl.org网站下载,并
glut32.dll复制到“系统安装目录
\WINDOWS\SYSTEM32\”目录下
glut.h复制到“VC安装目录\VC\Include\GL\”目录下
glut32.lib复制到“VC安装目录\VC\Lib\”目录下
3
OpenGL编程环境
编程环境(续续续续2)
编程环境编程环境
VC 6.0 环境下如何将VC应用程序与OpenGL库
连接起来?
选择“Project Setings Link”,并在
Object/library moules区域插入:opengl32.lib,
glu32.lib和glut32.lib
4
OpenGL编程环境
编程环境(续续续续3)
编程环境编程环境
Visual Studio 2005环境配置?
头文件位于“VS 2005安装目录\Microsoft Visual
Studio8\VC\PlatformSDK\Include\gl\”目录下
库文件位于“VS 2005安装目录\Microsoft Visual
Studio8\VC\PlatformSDK\Lib\”目录下
项目环境下添加库文件的方法“Project 项目名称
Properties Configuration Properties Linker
Input Additional Dependencies”
应用程序添加“#include “stdafx.h””
5
程序实例 (drawline0201.cpp)
#include "stdafx.h"
#include
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);//set display-window color
to white.
glMatrixMode(GL_PROJECTION);//set projection
parameters
gluOrtho2D(0.0, 200.0, 0.0, 150.0); //gluOrtho2D( )说明
}
6
程序实例(续1)
void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT);//Clear display
window.
glColor3f(1.0, 0.0, 0.0);//Set line segment color to red.
glBegin(GL_LINES); //glBegin()使用小结
glVertex2i(180, 15);
glVertex2i(10, 145);
glEnd();
glFlush();//Process all OpenGL routines as quickly as
possible.
}
7
程序实例(续2) Demo
int main(int argc, char* argv[])
{
glutInit(&argc, argv);//Initialize GLUT.
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//Set display
mode. 深入理解
glutInitWindowPosition(50, 100); //Set top-left dispaly-window
position.
glutInitWindowSize(400, 300);//Set display-window width and
height. 直观理解
glutCreateWindow("An Example OpenGL Program");//Create
display window.
init();//Execute initialization procedure.
glutDisplayFunc(lineSegment);//Send graphics to display window.
glutMainLoop();//Display everything and wait.
return 0;
}
8