Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL基础:绘制多色正方形_Opengl_Glut - Fatal编程技术网

OpenGL基础:绘制多色正方形

OpenGL基础:绘制多色正方形,opengl,glut,Opengl,Glut,我想做的是画一个正方形,每个顶点应该有不同的颜色。 这将在正方形内形成一个很好的渐变。 以下是我使用的代码: glBegin(GL_QUADS); glColor3f(0.0f, 0.0f, 1.0f); glVertex2f(((float)(winWidth-redLineWidth))/2.f,((float)(winHeight-redLineWidth))/2.f); glColor3f(0.0f, 0.0f, 0.0f); glVertex2f(((float)(winWidth+r

我想做的是画一个正方形,每个顶点应该有不同的颜色。 这将在正方形内形成一个很好的渐变。 以下是我使用的代码:

glBegin(GL_QUADS);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f(((float)(winWidth-redLineWidth))/2.f,((float)(winHeight-redLineWidth))/2.f);
glColor3f(0.0f, 0.0f, 0.0f);
glVertex2f(((float)(winWidth+redLineWidth))/2.f,((float)(winHeight-redLineWidth))/2.f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(((float)(winWidth+redLineWidth))/2.f,((float)(winHeight+redLineWidth))/2.f);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(((float)(winWidth-redLineWidth))/2.f,((float)(winHeight+redLineWidth))/2.f);
glEnd();
请忽略使用的变量。 我画了一个长方形,但它是纯色的。 这里的错误在哪里


我正在Mac OS X上使用GLUT。

您似乎不太可能更改此选项,但您可以尝试在绘图代码之前添加一个
glShadeModel(GL\u SMOOTH)
调用。默认行为应该按照您的预期执行,因此问题可能在其他地方。

请小心,“((float)(winWidth redLineWidth))/2”会为您提供一个整数。你可能想把“2”改成“2.f”@Geneotech谢谢你!这些都是你多年来一直犯的错误,从来没有想过……顺便问一下,它是什么颜色的?是的,就是它!我这里有一个最小的例子。启用该选项后,它将正常工作。谢谢