android - LibGdx 没有在 float 空间中正确绘制圆圈

标签 android math libgdx

我的相机设置为标准化空间(高度为 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();
}

It should be a circle

最佳答案

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/

相关文章:

Android的cardView + RecyclerView布局中的滚动功能

c++ - 数字的立方根,C++

java - 确定范围是否重叠

java - mouseMoved 上的 LWJGL 应用程序 NullPointerException

java - 在 libgdx 中将纹理分割成拼图

java - 在 libGDX 中的矩形中绘制动画纹理

android - R.Java 总是消失?

android - 安全性 - Android 应用仅在之前进行过有效的在线登录时才允许离线登录

java - 输入字符串未知时的字符串分割(Java Android 短信分割转发)

javascript - 网络音频API : Dividing two AudioNodes' outputs