如何在opengl中实现圆填充算法?

Viv*_*ali 2 opengl

应该是这种形式circle(float xcenter, float ycenter, float radius).

gen*_*ult 7

使用GL_TRIANGLE_FANplop向下中心点,然后使用周边顶点:

void glCircle( float x, float y, float r, bool filled = true, unsigned int subdivs = 20 ) {
    if( filled ) {
        glBegin( GL_TRIANGLE_FAN );
        glVertex2f( x, y );
    } else {
        glBegin( GL_LINE_STRIP );
    }

    for( unsigned int i = 0; i <= subdivs; ++i ) {
        float angle = i * ((2.0f * 3.14159f) / subdivs);
        glVertex2f( x + r * cos(angle), y + r * sin(angle) );
    }

    glEnd();
}
Run Code Online (Sandbox Code Playgroud)