我正在开发一个在OpenGL for Mac中使用颜色深度选择选择的应用程序。选择效果很好,但我观察到OpenGL没有画出完美的圆圈(圆圈)。我使用GL_LINE_LOOP渲染360段以完成近距离循环。但是,如果我在SELECTION模式下看到渲染,我会在圆周上观察到某种咬合(白色三角形),每个圆圈总共有4个咬合。
是OpenGL问题还是我做错了什么?
这是绘制每个圆圈会议的代码。
glLineWidth(10.0f); // Exaggerated for image.
glBegin(GL_LINE_LOOP);
for (int i = 0; i <= 360; i++) {
calcX = radio * cos((i * M_PI) / 180) + offset_x;
calcY = radio * sin((i * M_PI) / 180) + offset_y;
glVertex3f(calcX, calcY, offset_z);
}
glEnd();
答案 0 :(得分:0)
感谢“radical7”,因为建议使用三角形而不是线条。我能够获得完美的RING,工作顺畅。
这是代码:
color = 0.00277778;
glBegin(GL_TRIANGLE_STRIP);
for (int i = 0; i <= 360; i++) {
glColor4f(color, 0, 0, 1.0f);
calcX = radio * cos((i * M_PI) / 180) + offset_x;
calcY = radio * sin((i * M_PI) / 180) + offset_y;
glVertex3f(calcX, calcY, offset_z);
radio +=20;
calcX = radio * cos((i * M_PI) / 180) + offset_x;
calcY = radio * sin((i * M_PI) / 180) + offset_y;
glVertex3f(calcX, calcY, offset_z);
radio -=20;
color += 0.00277778;
}
glEnd();
结果: