C++ opengl不填充多边形
我试图画一个填充圆,但当我画这个时,它只在线框中显示,下面是我用来画的代码:C++ opengl不填充多边形,c++,opengl,C++,Opengl,我试图画一个填充圆,但当我画这个时,它只在线框中显示,下面是我用来画的代码: void render_circle(Vec2 position, float radius, Vec4 colour) { glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glColor4f(colour.x, colour.y, colour.z, colour.w); glBegin(GL_LINE_LOOP); int num_segmen
void render_circle(Vec2 position, float radius, Vec4 colour) {
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glColor4f(colour.x, colour.y, colour.z, colour.w);
glBegin(GL_LINE_LOOP);
int num_segments = 30; //@todo: make this scale for larger radius
for(int i = 0; i < num_segments; i++) {
float theta = 2.0f * math_pi * (float)i / (float)num_segments;
float x = radius * cosf(theta);
float y = radius * sinf(theta);
glVertex2f(position.x + x, position.y + y);
}
glEnd();
}
void渲染_圆(Vec2位置、浮动半径、Vec4颜色){
glPolygonMode(GLU前、后、GLU填充);
glColor4f(颜色x、颜色y、颜色z、颜色w);
glBegin(GL_线_环);
int num_segments=30;/@todo:将此比例设置为更大的半径
对于(int i=0;i
GL\u LINE\u LOOP
是一个。如果要绘制填充多边形,则必须使用。例如GL\u TRINAGLE\u FAN
只能正确地绘制。可能无法由基元正确表示。解决这个问题的一种方法是将凹多边形分割成凸部分。请尝试
GL\u POLYGON
而不是GL\u LINE\u LOOP
。当您显式地请求行时,您不能期望从OpenGL中填充内容。;-)