0

我试图在窗口上画一条线,但它没有显示glFrustum()。我使用了相同的代码,glOrtho()它确实显示了该行。我还需要设置什么才能让我的线路显示在设置窗口上吗?

void init() {
  glViewport(0, 0, w, h);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glFrustum( -2.0,2.0,-2.0,2.0, 1.0, 20.0 );
  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
}

 void display() {
  glBegin(GL_LINES);
    glColor3f(0.0f, 0.0f, 1.0f);
    glVertex3f(0.0f, 0.0f, 2.0f);
    glVertex3f(1.0f, 1.0f, 5.0f);
  glEnd();
 }
4

1 回答 1

3

在 OpenGL 中,相机沿着负 Z 轴观察。因此,您的线在相机后面,因此它被剪掉了。

而是将其绘制在前面:

glVertex3f(0.0f, 0.0f, -2.0f);
glVertex3f(1.0f, 1.0f, -5.0f);
于 2017-07-03T07:59:48.807 回答