void display() {
glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
//gluOrtho2D(0, 800, 0, 800);
glLineWidth(10.0f);glBegin(GL_LINES);
glColor3f(1.0, 0.0, 0.0);
glVertex2f(-1.0f, -1.0f);
glVertex2f(1.0f, 1.0f);glColor3f(0.0, 1.0, 0.0);
glVertex2f(-1.0f, 1.0f);
glVertex2f(1.0f, -1.0f);
glEnd();
gluOrtho2D(0, 800, 0, 800);
glBegin(GL_LINES);
glColor3f(1.0, 1.0, 0.0);
glVertex2i(400, 800);
glVertex2i(400, 0);
glEnd();
glFlush();
glutSwapBuffers();}
void main(int argc, char** argv) {
glutInit(&argc, argv);
// glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(800, 800);
glutInitWindowPosition(100, 100);
glutCreateWindow("Points");
//glutDisplayFunc(display);glutDisplayFunc(display);
glutMainLoop();
}#endif
//https://elixir.bootlin.com/linux/v5.6/source
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
初始化之后会把整个坐标平面的范围初始化成【-1.0,1.0】【-1.0,1.0】
而
gluOrtho2D(0, 800, 0, 800)
会把坐标平面的范围初始化为【0,800】【0,800】
运行结果如图示。