VC6环境下OpenGL入门——绘制一个彩色三角型

简介

OpenGL是用于2D及3D图形开发的跨平台程序库。由于其具备高质量、高性能、易用等特点,自出现以后,逐渐成为行业领域中最为广泛接纳的图形API.


本文主要讲述在VC6环境下,如何用OpenGL接口实现彩色三角型的绘制,相当于是OpenGL版的“Hello World”...


在开始编码前,有几点需要知道:

1. VC6编程环境里面,已经自带了OpenGL库的Windows版本. 比如在“C:\Program Files\Microsoft Visual Studio\VC98\Include\”目录下,可看到有一个文件夹名为“GL”。这个文件夹就包含了OpenGL库的头文件。

2. 为了方便使用OpenGL库编写小型图形程序以及学习OpenGL, Mark Kilgard开发了一个名为glut的软件包,用于隐藏不同系统API的复杂性. 所以在学习OpenGL时,最好首先安装它。安装方法很简单:下载压缩包,然后将头文件放入Microsoft Visual Studio\VC98\Include\GL目录,将lib文件放入Microsoft Visual Studio\VC98\lib目录,将dll文件放在system32文件夹下即可.

3. 使用glut进行OpenGL开发的简单结构:首先设置窗口和显示模式,并创建窗口;然后注册自己的回调函数,响应显示、形状改变等消息;最后进入glut事件循环。


代码示例

/****************************/
/* TriangleTest.cpp         */
/****************************/
#include 
#include 
#include 
#include 
#include 

// 显示回调函数.
static void DisplayFunc(void);

// 形状改变回调函数.
static void ReshapeFunc(GLsizei width, GLsizei height);

int main(int argc, char * argv[])
{
	// 用命令行参数进行初始化.
	glutInit(&argc, argv);
	
	
	// 设置显示模式.
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	// 设置窗口大小.
	glutInitWindowSize(400, 300);
	// 设置窗口位置.
	glutInitWindowPosition(200, 200);
	// 创建窗口.
	glutCreateWindow("Triangle");
	
	
	// 注册显示回调函数.
	glutDisplayFunc(DisplayFunc);
	// 注册形状改变回调函数.
	glutReshapeFunc(ReshapeFunc);
	
	
	// 进入glut事件循环.
	glutMainLoop();
	
	return 0;
}


void DisplayFunc(void)
{
	// 清空颜色值缓冲区.
	glClear(GL_COLOR_BUFFER_BIT);
	
	// 开始定义三角形.
	glBegin(GL_TRIANGLES);
	
	// 指定三个顶点的颜色及位置.
	// 颜色值范围为[0,1].
	// 顶点位置可任意设定.
	glColor3f(1.0f, 0.0f, 0.0f);
	glVertex2f(0.0f, 0.0f);
	glColor3f(0.0f, 1.0f, 0.0f);
	glVertex2f(50.0f, 0.0f);
	glColor3f(0.0f, 0.0f, 1.0f);
	glVertex2f(50.0f, 50.0f);
	
	// 结束图形定义.
	glEnd();
	
	// 使OpenGL函数能够在有限时间内运行.
	// 此处必须加上这句,否则程序无法正常运行.
	glFlush();
}

void ReshapeFunc(GLsizei width, GLsizei height)
{
	// 定义视口的位置及大小.
	// 参数x和y指定视口左下角的坐标.
	// 参数witdh和height指定视口的大小.
	glViewport(100, 50, 200, 200);
	
	// 指明当前矩阵为投影矩阵.
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	
	// 定义二维正视投影矩阵.
	// 四个参数分别代表左、右、下、上四个边界,用这四个边界来截取图像.
	// 此处采用的四个值,刚好对应于所画三角形的原始边界.
	gluOrtho2D(0.0f, 50.0f, 0.0f, 50.0f);
}



运行结果:

VC6环境下OpenGL入门——绘制一个彩色三角型_第1张图片


==============================End=================================

你可能感兴趣的:(OpenGL)