1

我的相机设置为标准化空间(高度为 1 个单位,宽度为 1.5 个单位)。但似乎 ShapeRenderer 的圆形算法仅适用于整数空间。有解决方法吗?

public void create() {
    camera = new OrthographicCamera();
    camera.setToOrtho(false, 1.5f, 1f);
    shapes = new ShapeRenderer();
}

public void drawScene() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    shapes.setProjectionMatrix(camera.combined);
    shapes.begin(ShapeType.Circle);
    shapes.setColor(1, 0, 0, 1);
    shapes.circle(0.75f, 0.5f,0.5f);
    shapes.end();
}

应该是一个圆圈

4

1 回答 1

3

ShapeRenderer使用6 倍半径的立方根来估计画一个圆需要多少段。

在您的情况下,您最终得到 4 个段(6 * 0.793 大约为 4.76)。这就是你所看到的。

ShapeRenderer根据文档假设单位是屏幕像素,因此这些是合理的估计。

于 2013-01-28T08:04:00.210 回答