在OpenGL中更改线条厚度时绘制二维形状轮廓
所以我尝试(我认为很简单)使用OpenGL绘制一些2D形状的轮廓。在我尝试使用在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<&
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();