我正在尝试围绕模型旋转透视相机。模型位于中心(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度,然后返回相同的距离。但是,轮换似乎没有用,我也不知道为什么,非常感谢您的帮助。
答案 0 :(得分:0)
我知道了:)
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();
}
所以我需要在旋转时计算圆上的新位置,这是我使用一些基本的三角学方法完成的