为什么OpenGL没有正确显示请求的图纸

时间:2016-03-03 11:56:54

标签: c++ opengl glut

问候我是OpenGL和Glut的新手。我做了一个功能,显示4个点,使得正方形的角落没有联合点。问题是当我运行项目时,该功能不显示任何内容。 我有一个类似的功能,可以使用线条,并在窗口的角落显示一些完美的效果。请告诉我我做错了什么以及如何解决它。以下是两个功能:

  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();
    }
    

1 个答案:

答案 0 :(得分:2)

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

在您的行示例中,所有值都在此范围内,因此是可见的。在点示例中,坐标仅在屏幕之外。您可以更改坐标以适应[-1,1]间隔,也可以添加一个处理该坐标的投影矩阵。