#include "stdafx.h"
#include <glut.h>
void display(void) //显示图像的函数
{
//清除所有像素
glClear(GL_COLOR_BUFFER_BIT);//执行清除操作
//绘制一个对角顶点坐标分别为(0.25,0.25,0.0)和(0.75,0.75,0.0)的白色多边形(矩形)
glColor3f(0.5,0.5,1.0);//设置绘制物体用颜色(蓝色)
glBegin(GL_POLYGON);// GL_POLYGON制定绘制的是多边形
//指定要绘制的物体(此处为包含4个顶点的多边形)
glVertex3f(0.25,0.25,0.0);//指定顶点,X=0.25 Y=0.25 Z=0.0
glVertex3f(0.75,0.25,0.0);
glVertex3f(0.75,0.75,0.0);
glVertex3f(0.25,0.75,0.0);
glEnd();
//立即开始处理保存在缓存区中的OpenGL函数调用
glFlush();
}
void init(void)//初始化函数,把初始窗口时只需要用一次的函数写在这里
{
//制定清除颜色
glClearColor(0.0,0.0,0.0,0.0); //前三个值为RGB分量 最后一个是透明度
//初试化视景体
glMatrixMode(GL_PROJECTION); //设置当前矩阵为投影矩阵
glLoadIdentity();
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);//指定坐标系的三维范围
}
int main(int argc, char* argv[])
{
glutInit(&argc,argv);//初始化GLUT并处理命令行参数
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//设置缓存模式,颜色模式;
glutInitWindowSize(250,250);//指定窗口大小
glutInitWindowPosition(100,100);//制定窗口位置
glutCreateWindow("计算机图形学");//使用一个OPENGL场景创建一个窗口
init();//把只需要调用一次的函数放在INIT中,,而不是放在display中 提高效率
glutDisplayFunc(display);//注册显示图形的回调函数
glutMainLoop();//进入函数循环
return 0;
}
。。。。。。。。。。。。决定可以运行