#include
#include
#include
#include
void display()
{
glClear(GL_COLOR_BUFFER_BIT);//执行清屏
glColor3f(1.0, 1.0, 1.0);//设定绘图颜色,在此后绘制都使用这种颜色,除非再次调用这个函数修改颜色
//绘制多边形,位于z=0平面内
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();
//glRectf(0.25, 0.25, 0.75, 0.75);
glFlush();//确保绘图命令被执行,而不是存储在缓冲区中等待其他的opengl命令
}
void init()
{
glClearColor(0.0, 0.0, 0.0, 0.0);//确定窗口被清除时的颜色,真正清除窗口的任务有glClear()函数执行
glMatrixMode(GL_PROJECTION);//------------------------------?
glLoadIdentity();//-------------------------------?
glOrtho(0.0, 1.0, 0.0, 1.0,-1.0, 1.0);//指定opengl绘制图像时所使用的坐标系统,决定图像如何映射到屏幕上
}
int main(int argc, char** argv)
{
//----五个窗口管理函数,在调用glutMainLoop()函数之前,窗口没有显示
glutInit(&argc, argv);//因该在调用其他GLUT函数之前被调用
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//指定是RGBA还是颜色索引模式,还可以指定使用单缓冲还是双缓冲窗口等
glutInitWindowSize(250, 250);//窗口大小,像素为单位
glutInitWindowPosition(100, 100);//窗口左上角的屏幕位置
glutCreateWindow("hello");//为新窗口返回一个唯一的标识符
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```