在这个例子中,我们会使用OpenGl库函数绘制一条直线并显示出来,意在直观的理解OpenGL,当然OpenGL的功能不止于此。在进行绘制的一系列工作前需要在项目中引入OpenGL的库函数的头文件,这里我们只引入了头文件”glut.h“,因为在”glut.h“中已经保证了”gl.h“和”glu.h“的正确引入。
#include "stdafx.h"
#include "gl/glut.h"
/*
*用以简单描述如何使用OpenGL绘制一个图形并显示
*2017-08-03
*/
void _tmain(int argc, _TCHAR* argv[])
{
//初始化GLUT库,并和窗口系统通信
glutInit(&argc,argv);
//设置显示窗口的缓存(单缓存)和颜色模型(RGB模型)
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
//设置窗体的左上角起始位置
glutInitWindowPosition(400,200);
//设置glut窗体显示大小
glutInitWindowSize(400,300);
//创建glut窗体并设置窗体名字
glutCreateWindow("OpenGL练习");
init();
//将图形描述函数送入显示窗口进行显示
glutDisplayFunc(LineSet);
//激活被送入窗口的绘制函数并进入检测鼠标和键盘等设备输入无线循环状态中
glutMainLoop();
}
//初始化函数
void init(){
//设置面板背景颜色
glClearColor(1.0,1.0,1.0,0.0);
//设置当前矩阵模式
//(GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作(模型矩阵);
// GL_PROJECTION,对投影矩阵应用随后的矩阵操作(投影矩阵);
// GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作)
glMatrixMode(GL_PROJECTION);
//设置投影区域左下角(0,0),右上角(200,150)
gluOrtho2D(0.0,200.0,0.0,150.0);
}
//绘制线段的OpenGl描述函数
void LineSet(void){
glClear(GL_COLOR_BUFFER_BIT);
//定义图形颜色
glColor3f(1.0,0.0,0.0);
glBegin(GL_LINES);
glVertex2i(180,15);
glVertex2i(10,145);
glEnd();
glFlush();//用于强制刷新缓冲,保证绘图命令将被执行
}