如何使用OpenGL绘制完美的像素2D圆?

问题描述

void CFunctions::DrawCircle(int x,int y,int r)
{
    glBegin(GL_POINTS);

    glColor3ub(134,202,117);

    double i,angle,x1,y1;

    for (i = 0; i < 360; i += 0.1)
    {
        angle = i;
        x1 = r * cos(angle * PI / 180);
        y1 = r * sin(angle * PI / 180);
        glVertex2d(x + x1,y + y1);
    }
    glEnd();
}

这是我当前使用的代码 这就是我所说的

    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    glOrtho(0,viewport[2],viewport[3],1);
    gldisable(GL_DEPTH_TEST);
    glMatrixMode(GL_MODELVIEW);

    glPushmatrix();
    glLoadIdentity();
    gldisable(GL_TEXTURE_2D);

    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

    funcs.DrawCircle(center_x,center_y,100); // dont tell me that center_x,center_y is undefined pls

    gldisable(GL_BLEND);

    glPopMatrix();

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_DEPTH_TEST);

及其外观 img

它不是很对称,我想要完美的圆,就像您将跟踪激光放在绕轴旋转的线的末端一样

像这个美丽的坦克世界一样 img

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)