1

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

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();
4

1 回答 1

1

据我所知,您发布的代码中只绘制了一个四边形。无论如何,当您调用GL11.glColor3f(red,green,blue)它时,它将应用于您在调用它之后绘制的所有后续四边形。基本上,如果你想要不同颜色的四边形,你需要在每次绘制新的四边形之前调用具有不同值的函数。

您应该在名为“指定颜色和着色模型”的部分中查看资源(不是 JWJGL,而是 OpenGL)的以下内容,它更好地解释了如何将颜色应用于简单形状。

于 2012-11-10T19:05:30.330 回答