Kar*_*ish 3 c++ opengl graphics
我试图产生多个五边形但由于某种原因五边形相互连接.有什么建议?
GLfloat arr[] = {100,200,340,230,130,190,200,190,260,120,200};
glColor3f(1.0, 1.0, 1.0);
GLfloat angle2, r2, r_big_circle2, r_small_circle2, step2 = 3.14 / 5.0;
r_big_circle2 = 25;
r_small_circle2 = 20;
glPushMatrix();
glBegin(GL_LINE_LOOP);
for (int n = 0; n < 5; n++){
for (int i = 0; i < 10; i++)
{
r2 = (i % 2 == 0 ? r_small_circle2 : r_big_circle2);
angle2 = step2 * i;
glVertex3f(r2 * cos(angle2)-arr[n], r2 * sin(angle2)-arr[n], -500);
}
}
glEnd();
glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
移动glBegin并glEnd在第一个for循环内.另外,GL_LINE_LOOP对于5边多边形应该只有5个点指定glVertex3f- 你正在绘制每个五边形两次,一次在它自身之上.尝试:
for (int n = 0; n < 5; n++) {
glBegin(GL_LINE_LOOP);
for (int i = 0; i < 5; i++) {
r2 = (i % 2 == 0 ? r_small_circle2 : r_big_circle2);
angle2 = step2 * i;
glVertex3f(r2 * cos(angle2)-arr[n], r2 * sin(angle2)-arr[n], -500);
}
glEnd();
}
Run Code Online (Sandbox Code Playgroud)