OPENGL画一个蓝色矩形

来源:互联网 发布:网络协议测试工具 编辑:程序博客网 时间:2024/05/17 07:08

#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;


}

。。。。。。。。。。。。决定可以运行