我有几个已成功显示在屏幕上的四边形,但是当我尝试设置其中一个的颜色时,它将设置所有它们的颜色。
GL11.glColor3f(red,green,blue);
xh = getXsize() / 2;
yh = getYsize() / 2;
GL11.glPushMatrix();
GL11.glTranslated(x, y, 0);
GL11.glTranslatef(10.0f, 10.5f, -0.0f);
GL11.glRotated(rotate, 0.0f, 0.0f, -1.0f);
GL11.glTranslatef(-10.0f, -10.5f, 0.0f);
GL11.glTranslated(-x, -y, 0);
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2d(x - xh, y - yh);
GL11.glVertex2d(x - xh, y + yh);
GL11.glVertex2d(x + xh, y + yh);
GL11.glVertex2d(x + xh, y - yh);
GL11.glEnd();
GL11.glPopMatrix();
最佳答案
据我所知,在您发布的代码中仅绘制了一个四边形。无论如何,当您调用GL11.glColor3f(red,green,blue)
时,它将应用于您在调用它之后绘制的所有以下四边形。基本上,如果要使用不同的四边形,则每次绘制新的四边形之前,都需要使用不同的值调用该函数。
您应该在“指定颜色和阴影模型”部分中的this资源(不是JWJGL,而是OpenGL)中查看以下内容:更好地解释了如何将颜色应用于简单形状。