在OpenGL中更改线条厚度时绘制二维形状轮廓

在OpenGL中更改线条厚度时绘制二维形状轮廓,opengl,shapes,Opengl,Shapes,所以我尝试(我认为很简单)使用OpenGL绘制一些2D形状的轮廓。在我尝试使用glLineWidth(w)更改轮廓线的线宽之前,这一切似乎都是可行的我的第一个问题是,w=10或w=3000(或任何更大的数字)显示相同的线条厚度,但像w=3这样较小的东西会产生更细的线条 我想这与此有关。我的最大值似乎是7我可以增加这个值吗?我只想画一条粗线 float lineWidth[2]; glGetFloatv(GL_LINE_WIDTH_RANGE, lineWidth); std::cout<&

所以我尝试(我认为很简单)使用OpenGL绘制一些2D形状的轮廓。在我尝试使用
glLineWidth(w)更改轮廓线的线宽之前,这一切似乎都是可行的我的第一个问题是,w=10或w=3000(或任何更大的数字)显示相同的线条厚度,但像w=3这样较小的东西会产生更细的线条

我想这与此有关。我的最大值似乎是7我可以增加这个值吗?我只想画一条粗线

float lineWidth[2];
glGetFloatv(GL_LINE_WIDTH_RANGE, lineWidth);
std::cout<<"min: "<< lineWidth[0]<<" max: "<<lineWidth[1]<<"------\n";
从上面提到的帖子中,这是我用来画圆圈的代码:

glEnable(GL_LINE_SMOOTH);
glLineWidth(10); 
glBegin(GL_LINE_STRIP); 
for (int i=0; i < (360/10*100/10); i++) { 
     float degInRad = i*DEG2RAD; 
     glVertex2f(x1+cos(degInRad)*r,y1+sin(degInRad)*r); } 
glEnd();
glEnable(GL\u线\u平滑);
线宽(10);
glBegin(GL_线_带);
对于(int i=0;i<(360/10*100/10);i++)
浮点数degInRad=i*DEG2RAD;
glVertex2f(x1+cos(degInRad)*r,y1+sin(degInRad)*r);}
格伦德();
“缺少位”看起来像这样:

我也看了这篇文章,但是跟随那里的线索并没有真正的帮助

我的第一个问题是,w=10或w=3000(或任何更大的数字)显示相同的线厚度,但像w=3这样的较小值会产生更细的线

通过
glGet()
GL\u LINE\u WIDTH\u RANGE
检查OpenGL实现实际支持的内容。如果它在
10.0
上达到顶峰,我不会感到惊讶

我只想画一条思考的线

对于较大的线宽,必须使用三角形/四边形

“缺少位”看起来像这样:

OpenGL没有指定宽度为
>1.0
GL\u行应如何连接/结束

glEnable(GL_LINE_SMOOTH);
glLineWidth(10); 
glBegin(GL_LINE_STRIP); 
for (int i=0; i < (360/10*100/10); i++) { 
     float degInRad = i*DEG2RAD; 
     glVertex2f(x1+cos(degInRad)*r,y1+sin(degInRad)*r); } 
glEnd();