3

複数の五角形を生成しようとしていますが、何らかの理由で五角形が互いに接続されています。助言がありますか?

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

1 に答える 1

5

最初のループ内に移動glBeginします。また、5 辺のポリゴンの場合は、5 つのポイントのみを指定する必要があります。各五角形を 2 回描画し、その上に 1 回描画します。試す:glEndforGL_LINE_LOOPglVertex3f

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();
}
于 2013-03-19T01:39:52.070 に答える