我写了这段代码来绘制X轴:
glPushMatrix();
glColor3f(0.5f, 0, 0);
glVertex3f(-size, 0, 0);
glVertex3f( size, 0, 0);
glPopMatrix();
但是当我添加这部分代码来绘制箭头时;所有其他形状(如 shperes)都变得隐藏:
glBegin(GL_TRIANGLES); // Drawing Using Triangles
glVertex3f( 10.0f, 0.0f, 0.0f); // Top
glVertex3f(9.0f, 0.25f, 0.0f); // Bottom Left
glVertex3f(9.0f,-0.25f, 0.0f); // Bottom Right
glEnd();
我错了什么?
此代码存在问题
glPushMatrix();
glColor3f(0.5f, 0, 0);
glVertex3f(-size, 0, 0);
glVertex3f( size, 0, 0);
glPopMatrix();
glVertex只能在glBegin和glEnd之间调用。但是 glPushMatrix 和 glPopMatrix 不允许在 glBegin 和 glEnd 之间调用。你编写它们的方式无论如何都没有任何影响,因为没有实际的矩阵操作发生。
另一方面,所有基元的 Z 坐标是相同的。因此,事情会相互透支是完全可以理解的。我还打赌你根本没有启用深度测试,所以无论如何都没关系,因为如果没有深度测试,无论深度如何,事情都会透支其他东西。