2
我要画一个圆,这将有(内)与彩虹的颜色三角形风扇(每个三角形将举行6种颜色之一)OpenGL的三角形球迷用不同的颜色
这里是我的代码:
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_LINES); //drawing circle
int j;
for (j = 0; j < 180; j++)
{
circle.x = r * cos(j);
circle.y = r * sin(j);
glVertex3f(circle.x ,circle.y ,0);
circle.x = r * cos(j + 0.1);
circle.y = r * sin(j + 0.1);
glVertex3f(circle.x,circle.y,0);
}
glEnd();
int i,k;
int sections = 36;
GLfloat radius = 1.0;
GLfloat twoPi = 2.0 * 3.14159;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0.0, 0.0); //center of triangles
int flag=1;
for(i = 0; i <= sections;i++) {
glVertex2f(radius*cos(i*twoPi/sections),
radius*sin(i*twoPi/sections));
if(flag==i+1)
glColor3f(1.0f, 0.0f, 0.0f);
if (flag==i+2)
glColor3f(1.0f, 0.5f, 0.0f);
if (flag==i+3)
glColor3f(1.0f, 1.0f, 0.0f);
if (flag==i+4)
glColor3f(0.0f, 1.0f, 0.0f);
if (flag==i+5)
glColor3f(0.0f, 0.0f, 1.0f);
if (flag==i+6)
glColor3f(1.0f, 0.0f, 1.0f);
flag++;
}
glEnd();
glutSwapBuffers();
}
我无法使颜色工作。三角形只用最后一种颜色绘制。
您好,感谢它的工作! – George 2011-03-14 15:06:33
现在你应该弄清楚它的工作原理。 – Mark 2011-03-14 15:14:55
它的工作原理是因为在每一个循环中,这些条件中的一个是正确的。而且,条件也是按照这个顺序。但是我不明白为什么它以前没有工作。 – George 2011-03-14 15:31:41