gpt4 book ai didi

c++ - opengl多重五边形

转载 作者:太空狗 更新时间:2023-10-29 20:43:23 25 4
gpt4 key购买 nike

我正在尝试生成多个五边形,但由于某种原因五边形相互连接。有什么建议吗?

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

最佳答案

glBeginglEnd 移动到第一个 for 循环中。另外,一个 5 边形的 GL_LINE_LOOP 应该只有 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();
}

关于c++ - opengl多重五边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com