java - LibGDX 相机旋转问题

标签 java android libgdx

我正在尝试围绕模型旋转透视相机。模型位于中心 (0,0,0) 点。这是我的旋转相机方法:

private void rotateCameraAroundModel() {
    camera.position.set(0,0,0);
    camera.position.rotate(Vector3.Y, 5);
    camera.position.add(0f, 0f, 200f);
    camera.up.set(Vector3.Y);
    camera.lookAt(0,0,0);
    camera.update();
}

我试图到达中心,旋转 5 度,然后返回到相同的距离。但是,旋转似乎不起作用,我不明白为什么,非常感谢任何帮助。

最佳答案

我明白了:)

private void rotateCameraAroundModel(float angle) {
    camera.position.set(centreX, centerY, centerZ);
    camera.rotate(Vector3.Y, (float) Math.toDegrees(angle)); // Rotate around Y axis by angle in degrees
    float x = (float) (centerX + radius * (Math.sin(totalPhi)));
    float z =  (float) (centerZ + radius * (Math.cos(totalPhi)));
    camera.position.add(x, 0f, z); //Move back out 2m using pythagorean theorem to calculate the position on the circle
    camera.up.set(Vector3.Y);
    camera.lookAt(0, 0, 0);
    camera.update();
}

所以我需要在旋转时计算圆上的新位置,这是我使用一些基本的三角学来完成的

关于java - LibGDX 相机旋转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51933170/

相关文章:

android - 应该使用哪种类型的通知是本地通知还是推送通知?

android - 重命名 Activity

android - 如何在以sd卡为资源的 ListView 中为每一行设置缩略图?

java - 为什么这个同步不起作用?

java - java 提供字节数据而不复制它的首选方式是什么

android - 如何在 libgdx 中使用网络框架(volley、okhttp 等)?

java - 桌面纵向设置?

android - 导入gradle项目,android报错

Java安全管理器异常

java - JPA 中的多对多映射