我想在空间中的某些点使用glutSolidCube绘制几个立方体。我发现的示例仅调用glutSolidCube即可工作,但是为我绘制一个多维数据集的唯一方法是,如果该行用glBegin(GL_POLYGON)括起来,则在我所看到的示例中并不需要,而我仅获得一个多维数据集而不是几个。我所拥有的是:

glColor3f(1, 0, 0);
glLoadIdentity();
glTranslatef(5,2,1);
glutSolidCube(1);


glLoadIdentity();
glTranslatef(10,8,0);
glutSolidCube(1);

glLoadIdentity();
glTranslatef(3,7,9);
glutSolidCube(1);

glLoadIdentity();
glTranslatef(1,4,6);
glutSolidCube(1);

当我运行时,什么也没有发生。我知道这些点不在我的视野范围内是没有问题的,因为如果在相同的点上绘制顶点,则可以看到它们。据我从阅读的示例和文档中可以看出,我没有做任何不正确的事情。有人可以告诉我我做错了什么,还是给我一段绘制多个多维数据集的代码片段?

最佳答案

试试这个:

glColor3f(1, 0, 0);
glPushMatrix();
glTranslatef(5,2,1);
glutSolidCube(1);
glPopMatrix();

glPushMatrix();
glTranslatef(10,8,0);
glutSolidCube(1);
glPopMatrix();

glPushMatrix();
glTranslatef(3,7,9);
glutSolidCube(1);
glPopMatrix();

glPushMatrix();
glTranslatef(1,4,6);
glutSolidCube(1);
glPopMatrix();

无需使用glLoadIdentity()重置模型 View 矩阵。请注意,首先您需要调用glOrtho()glPerspective()一次设置摄像机。

10-07 21:44