在openGL中绘制未填充矩形

在openGL中绘制未填充矩形,opengl,Opengl,我想在OpenGL中绘制未填充的矩形形状,但是当我使用glBegin(GL\u四边形)或glBegin(GL\u多边形)时,生成的形状是填充的,但我想取消填充。如何绘制未填充的矩形 void draweRect(void) { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,1.0); glLineWidth(30); glBegin(GL_POLYGON); glVertex2i(50,90);

我想在
OpenGL
中绘制未填充的矩形形状,但是当我使用
glBegin(GL\u四边形)
glBegin(GL\u多边形)
时,生成的形状是填充的,但我想取消填充。如何绘制未填充的矩形

void draweRect(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0,0.0,1.0);
    glLineWidth(30);
    glBegin(GL_POLYGON);
        glVertex2i(50,90);
        glVertex2i(100,90);
        glVertex2i(100,150);
        glVertex2i(50,150);
    glEnd();
    glFlush();   
}

使用
GL\u LINE\u LOOP
(而不是
GL\u POLYGON
)在多边形的周长上绘制一系列连接的线段,而不是填充多边形


或者,您可以使用
glPolygonMode(GL\u-FRONT\u和GL\u-BACK,GL\u-LINE)
。。。请记住将其设置回默认的
glPolygonMode(GL\u FRONT\u AND\u back,GL\u FILL)
以恢复通常的(填充的)渲染。

您需要为渲染设置填充模式

你可以使用这个方法

请尝试以下操作:

void draweRect(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(0.0,0.0,1.0);
    glLineWidth(30);

    glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);

    glBegin(GL_POLYGON);
        glVertex2i(50,90);
        glVertex2i(100,90);
        glVertex2i(100,150);
        glVertex2i(50,150);
    glEnd();

    glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);

    glFlush();   
}

这个对我有用

glBegin(GL_LINE_LOOP);
    glVertex2f(x1,y1);
    glVertex2f(x2,y1);
    glVertex2f(x2,y2);
    glVertex2f(x1,y2);
glEnd();

这与这里使用的所有不推荐的东西无关,但我会避免使用
GL\u FRONT
作为一般规则。GL 3.1需要
GL_FRONT_和_BACK
,它不再允许每边多边形模式。如果你想知道,这就是为什么它说只有
GL_FRONT_和_BACK
在链接的参考页面中有效-该页面是针对GL4的;GL2的版本可以找到我想只是画线?使用“GL_线”。@DanSkeel:看看这个:如果你只是画线,点不会全部连接起来。他只有4行中的2行。