为什么 OpenGL 不能正确显示请求的图形

Why doesn't OpenGL display the requested drawings correctly

您好,我是 OpenGL 和 Glut 的新手。我做了一个函数,显示构成正方形角的 4 个点,但不合并这些点。问题是当我 运行 项目时,函数不显示任何内容。 我有一个类似的功能,可以处理线条,并在 window 的角落显示一些线条,效果很好。请告诉我我做错了什么以及如何解决它。这是两个函数:

  1. 使用线条。完美运行

    void Display2() {
        glColor3f(1,0.1,0.1); 
        glBegin(GL_LINES); 
            glVertex2f(1.0,1.0); 
            glVertex2f(0.9,0.9); 
            glVertex2f(0.8,0.8); 
            glVertex2f(0.7,0.7); 
            glVertex2f(0.6,0.6); 
            glVertex2f(0.5,0.5); 
            glVertex2f(-0.5,-0.5); 
            glVertex2f(-1.0,-1.0);
        glEnd();
    }
    
  2. 带点的那个。不显示任何内容。

    void Display3() {
        glColor3f(1,0.1,0.1);
        glBegin(GL_POINTS);
            glVertex2f(100, 100);
            glVertex2f(200, 100);
            glVertex2f(100, 200);
            glVertex2f(200, 200);
        glEnd();
    }
    

OpenGL 中的默认可见区域在每个轴上的范围从 -1 到 1(所谓的标准化设备坐标)。

在您的线条示例中,所有值都在此范围内,因此是可见的。在点示例中,坐标只是在屏幕之外。您可以更改坐标以适应 [-1,1] 区间,或者添加一个投影矩阵来为您处理。