Opengl 如何在libgdx中绘制具有粗线宽的环?

Opengl 如何在libgdx中绘制具有粗线宽的环?,opengl,libgdx,geometry,shape,Opengl,Libgdx,Geometry,Shape,我正在使用ShaperEnder绘制一个特定线宽的非填充圆 我试着做同样的事情,但从来没有得到一个有效的答案 我尝试了几种解决方案: 使用Gdx.gl.glLineWidth()增加线宽:一个错误会导致环上出现角度,因为圆实际上是由几个段组成的(请参见其他问题以获取说明) 将两个圆一个接一个地画出来,然后将第二个旋转45度以隐藏这些角度,但这不适合我,因为我的圆有一个alpha 绘制一个填充圆,然后在顶部绘制另一个较小的填充圆,以使第一个圆看起来不填充。这不适合我,因为我需要圆圈的内部来显示演

我正在使用ShaperEnder绘制一个特定线宽的非填充圆

我试着做同样的事情,但从来没有得到一个有效的答案

我尝试了几种解决方案:

  • 使用
    Gdx.gl.glLineWidth()
    增加线宽:一个错误会导致环上出现角度,因为圆实际上是由几个段组成的(请参见其他问题以获取说明)

  • 将两个圆一个接一个地画出来,然后将第二个旋转45度以隐藏这些角度,但这不适合我,因为我的圆有一个alpha

  • 绘制一个填充圆,然后在顶部绘制另一个较小的填充圆,以使第一个圆看起来不填充。这不适合我,因为我需要圆圈的内部来显示演员下面的东西,演员有一个alpha(参见其他问题的说明)

  • 绘制许多线宽为1的圆,每次增加1的半径,但这并不平滑(请参见其他问题以获取说明)

    for(浮点i=0;i
  • 画出指定线宽的弧,最后画一个圆,但不平滑


这有帮助吗@AndrewCheong Nah使用Gdx.gl.glLineWidth()绘制粗线宽的圆有问题,圆不平滑。你可以绘制一个预渲染的精灵并完成它吗?这对绘制圆很有用,但除此之外,我还需要绘制一个圆弧来制作一个圆形计时器。我可以在计时器的每个状态下使用精灵,但这不是最佳状态
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.circle(0, 0, radius + lineWidth);
//sub arc to hide unwanted colour
shapeRenderer.circle(0, 0, radius);
shapeRenderer.end();
for (float i = 0; i < lineWidth; i++) {
    shapeRenderer.circle(0, 0, radius + i);
}