作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试生成多个五边形,但由于某种原因五边形相互连接。有什么建议吗?
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();
最佳答案
将 glBegin
和 glEnd
移动到第一个 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/
您可以在此处检查 Reuleaux 三角形的定义: https://en.wikipedia.org/wiki/Reuleaux_triangle 我一直在处理 2D 几何形状并进行检查,设置测试以查
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 4 年前。 Improve
我正在 html 5 Canvas 上开发一个游戏,我必须将图像剪辑成多种形状。我还想使用鼠标事件加入这些剪辑的图像。我可以只剪一个正方形吗?另外,是否有必要保存每个剪切图像的 x 和 y 坐标以了解
我是一名优秀的程序员,十分优秀!