在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行。