OpenGL for OSX并不是完美的圆周

时间:2017-07-14 22:34:17

标签: objective-c macos opengl

我正在开发一个在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();

Tree circunferences with bits

1 个答案:

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

结果:

Perfect ring...