【发布时间】:2012-11-10 17:50:38
【问题描述】:
我有几个四边形已成功显示在屏幕上,但是当我尝试设置其中一个的颜色时,它会设置所有四边形的颜色。
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); 中用于红色、绿色、蓝色的值?了解您正在渲染的上下文也很有帮助 - 例如:这段代码是否在循环中调用,您之前使用过 GL11.glClear() 吗?
-
蓝色等于0,红色和绿色在整个程序过程中不断变化,它们分别从0-1和1-0变化。程序处于循环中,我使用 glClear(GL_COLOR_BUFFER_BIT);在循环的开头。