我正在使用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);
}
绘制大量指定线宽的弧线,最后制作一个圆圈,但不是很光滑