我有几个已成功显示在屏幕上的四边形,但是当我尝试设置其中一个的颜色时,它将设置所有它们的颜色。

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)中查看以下内容:更好地解释了如何将颜色应用于简单形状。

09-30 17:30
查看更多