我的相机设置为标准化空间(高度为 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();
}
最佳答案
ShapeRenderer
使用 6 times the cube root of the radius估计画一个圆需要多少段。
在您的情况下,您最终得到 4 个段(6 * 0.793 大约为 4.76)。这就是您所看到的。
ShapeRenderer
根据 the documentation 假设单位是屏幕像素, 所以这些都是合理的估计。
关于android - LibGdx 没有在 float 空间中正确绘制圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14454522/