opengl之绘制一个矩形

来源:互联网 发布:udp端口号范围 编辑:程序博客网 时间:2024/04/30 17:44
// opengl_test.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include<Windows.h>
#include<GL/GL.h>
#include<GL/GLU.h>
#include<GL/glut.h>


void display(void)
{
//完成清除窗口的任务:清除当前可写的颜色缓冲
glClear(GL_COLOR_BUFFER_BIT);
//绘制物体时所使用的颜色
glColor3f(1.0, 1.0, 1.0);
//指定要绘制的物体:把每一个顶点作为一个点进行处理,顶点n即定义了点n,共绘制N个点
glBegin(GL_POLYGON);
//定义多边形的角
glVertex3f(0.25, 0.25, 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);
//设置当前矩阵模式:对投影矩阵应用随后的矩阵操作
glMatrixMode(GL_PROJECTION);
//将当前的用户坐标系移到屏幕中心:类似于一个复位操作
glLoadIdentity();
//指定了openGL在绘制最终图像时所使用的坐标系统。决定了图像将如何映射到屏幕上:左右上下近远
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}


int _tmain(int argc, char* argv[])
{
//对GLUT进行初始化,并处理所有命令行参数,应该在调用其他任何GLUT函数之前调用。
glutInit(&argc, argv);
//指定使用单缓存窗口和RGB颜色模式的窗口
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
//指定窗口大小
glutInitWindowSize(250, 250);
//指定窗口位置
glutInitWindowPosition(100, 100);
//创建一个支持OpenGL渲染环境的窗口
glutCreateWindow("hello");
init();
//注册回调函数
glutDisplayFunc(display);
//启动程序,所有已经创建的窗口将会在这时显示,对这些窗口的渲染也开始生效。事件处理循环开始启动,已注册的显示回调函数被触发。一旦进入循环,它就永不退出。
glutMainLoop();              
return 0;
}

0 0
原创粉丝点击