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

时间:2016-05-27 15:46:38

标签: opengl libgdx geometry shape

我正在使用ShapeRenderer绘制一个特定线宽的非实心圆。

我正在尝试做与此question相同的事情,但它从来没有得到有效答案。

我尝试了几种解决方案:

  • 使用Gdx.gl.glLineWidth()增加线宽:一个错误会导致角度出现在环上,因为圆圈实际上是由几个部分组成的(请参阅其他问题进行说明)

  • 将两个圆圈一个绘制到另一个圆圈上,并旋转45度的第二个圆圈以隐藏这些角度,但这不适合我,因为我的圆圈有一个alpha

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

    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.circle(0, 0, radius + lineWidth);
    //sub arc to hide unwanted colour
    shapeRenderer.circle(0, 0, radius);
    shapeRenderer.end();
    
  • 画出许多线宽1的圆圈,每次将半径增加1,但不是很平滑(参见其他问题)

    for (float i = 0; i < lineWidth; i++) {
        shapeRenderer.circle(0, 0, radius + i);
    }
    
  • 绘制大量指定线宽的弧线,最后制作一个圆圈,但不是很光滑

0 个答案:

没有答案