C++ 二维白色网格不显示在背景上方

C++ 二维白色网格不显示在背景上方,c++,opengl,glut,opengl-compat,C++,Opengl,Glut,Opengl Compat,我试图在紫色背景上创建一个二维空心网格;但是,每当我创建网格时显示的是一个白色窗口 我使用GL_线创建了二维网格,因为我只想将边界着色为白色,而不是网格内部,这不是实际情况 #include <stdio.h> #include <stdlib.h> #include <ctime> #include <cmath> #include <string.h> #include<GL/glut.h> int gridX =

我试图在紫色背景上创建一个二维空心网格;但是,每当我创建网格时显示的是一个白色窗口

我使用GL_线创建了二维网格,因为我只想将边界着色为白色,而不是网格内部,这不是实际情况

#include <stdio.h>
#include <stdlib.h>
#include <ctime>
#include <cmath>
#include <string.h>
#include<GL/glut.h>


int gridX = 1000;
int gridY = 600;
void drawGrid();
void drawUnit(int, int);



void drawGrid() {

 for (int x = 0; x < gridX; x++) {
    for (int y = 0; y < gridY; y++) {
        drawUnit(x, y);
    }
 }
}

void drawUnit(int x, int y) {

    glLineWidth(1.0);
    glColor3f(1.0,1.0,1.0);
    glBegin(GL_LINE);//(x,y)(x+1,y)(x+1,y+1)(x,y+1)
      glVertex2f(x,y);
      glVertex2f(x+1, y);
      glVertex2f(x + 1, y);
      glVertex2f(x+1, y+1);
      glVertex2f(x + 1, y + 1);
      glVertex2f(x, y+1);
      glVertex2f(x, y + 1);
      glVertex2f(x, y);
    glEnd();
}
void Display() {
    glClear(GL_COLOR_BUFFER_BIT);
    drawGrid();
    glFlush();
}


 void main(int argc, char** argr) {
    glutInit(&argc, argr);
    glutInitWindowSize(gridX, gridY);
    drawGrid();
    glutCreateWindow("OpenGL - 2D Template");
    glutDisplayFunc(Display);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glClearColor(120.0f / 255.0f, 92.0f / 255.0f, 166.0f / 255.0f, 0.0f);
    gluOrtho2D(0.0, gridX, 0.0, gridY);

    glutMainLoop();
   }
#包括
#包括
#包括
#包括
#包括
#包括
int gridX=1000;
int gridY=600;
void drawGrid();
空值单位(整数,整数);
void drawGrid(){
对于(int x=0;x
GL\u LINE
不是OpenGL原语类型。但是,
GL\u line
是一种线条基本类型(请参阅):

glBegin(GL_行)

glBegin(GL_行);
GL_LINE
是一种多边形光栅化模式(请参阅)


网格中的一个单元格大小仅为1像素。这将导致整个屏幕填充为白色。使用不同大小的单元格。例如:

void drawGrid()
{
int size=10;
对于(int x=0;x
我修复了它,但由于某些原因,整个单位正方形网格是白色的,我只需要边界。如果您只是在绘制网格,请不要单独绘制正方形。你做了很多不必要的透支。您还可以很容易地摆脱
drawGrid
中的嵌套循环。