为什么 OpenGL 不能正确显示请求的图形
Why doesn't OpenGL display the requested drawings correctly
您好,我是 OpenGL 和 Glut 的新手。我做了一个函数,显示构成正方形角的 4 个点,但不合并这些点。问题是当我 运行 项目时,函数不显示任何内容。
我有一个类似的功能,可以处理线条,并在 window 的角落显示一些线条,效果很好。请告诉我我做错了什么以及如何解决它。这是两个函数:
使用线条。完美运行
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();
}
带点的那个。不显示任何内容。
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] 区间,或者添加一个投影矩阵来为您处理。
您好,我是 OpenGL 和 Glut 的新手。我做了一个函数,显示构成正方形角的 4 个点,但不合并这些点。问题是当我 运行 项目时,函数不显示任何内容。 我有一个类似的功能,可以处理线条,并在 window 的角落显示一些线条,效果很好。请告诉我我做错了什么以及如何解决它。这是两个函数:
使用线条。完美运行
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(); }
带点的那个。不显示任何内容。
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] 区间,或者添加一个投影矩阵来为您处理。