在 JOGL 中,我尝试使用 GL_QUADS(即整个对象的不同组件)创建一些 3D 形状,到目前为止这样做很好,但我不知道如何翻译形状,必须有办法做到这一点但是我对 GL_QUADS 不是很熟悉,所以我不完全确定如何去做。编辑gl.glVertex3f
只会导致形状大小不同,这似乎是我唯一可以编辑的东西,是否可以给 GL_QUAD 一个变量名?
问问题
1538 次
2 回答
2
您可以使用以下glTranslatef
功能:
// render the shape
gl.glTranslatef(5.0f, 0.0f, 0.0f); // translate along x, y, z
// render the shape - you will now have two shapes next to each other
于 2013-02-20T15:45:27.620 回答
1
调用gl.glTranslatef(1.0f, 0.0f, 0.0f);
将应用于堆栈中的当前矩阵,这实际上意味着从那时起绘制的任何内容都将在 x 轴上出现 1 个单位,距离之前的矩阵所在的位置(可能是您的情况的原点)。
我可以理解为什么它看起来令人困惑,而不是创建形状然后移动它(不能完成,它已经被绘制),你需要翻译然后绘制你的形状。
例如:
gl.glPushMatrix();
gl.glTranslatef(1.0f, 0.0f, 0.0f);
gl.glBegin(GL2.GL_QUADS);
// draw some vertices here
gl.glEnd();
gl.glPopMatrix();
于 2013-02-20T15:57:17.553 回答