在JOGL中我尝试使用GL_QUADS(即整个对象的不同组件)创建一些3D形状,到目前为止,这样做很好但我无法弄清楚如何翻译形状,必须有一种方法这样做,但我不熟悉GL_QUADS所以我不完全确定如何去做这件事。编辑gl.glVertex3f
只会导致形状不同,这似乎是我可以编辑的唯一内容,是否可以为GL_QUAD提供变量名称?
答案 0 :(得分: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
答案 1 :(得分: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();