Camera LibGDX摄像机绕轴旋转高坐标抖动

Camera LibGDX摄像机绕轴旋转高坐标抖动,camera,libgdx,rotation,Camera,Libgdx,Rotation,我似乎找不到解决以下问题的办法。我在libGDX中设置了一个透视摄像头。我使用.rotateAround例程旋转我的相机。当围绕低坐标旋转时,此功能非常有效。但旋转轴的坐标越高,旋转变得越急促 在我的CameraInputController类中: @Override protected boolean process(float deltaX, float deltaY, int button) { if (button == Buttons.LEFT) {

我似乎找不到解决以下问题的办法。我在libGDX中设置了一个透视摄像头。我使用.rotateAround例程旋转我的相机。当围绕低坐标旋转时,此功能非常有效。但旋转轴的坐标越高,旋转变得越急促

在我的CameraInputController类中:

@Override
protected boolean process(float deltaX, float deltaY, int button) {

        if (button == Buttons.LEFT) {

        // DRAG CAMERA

        } else if (button == Buttons.RIGHT) {

        // ROTATE CAMERA
        perspectiveCam.rotateAround(new Vector3(clickedX, clickedY, 0), Vector3.Z, deltaX * -100);

        } 

    return true;
}
这项工作:

perspectiveCam.rotateAround(new Vector3(0f, 0f, 0f), Vector3.Z, deltaX * -100) 
以下代码导致小部分拖动,然后突然旋转,然后再次拖动,等等:

perspectiveCam.rotateAround(new Vector3(100000f, 100000f, 0f), Vector3.Z, deltaX * -100)
我知道它的工作原理是平移,然后旋转凸轮,然后再将相机平移回来。谁能给我指出正确的方向吗?它是否在半径/浮动值中

提前谢谢

编辑: 请参见此处了解“错误”: 我在这里找到了答案:


我不知道这是件事。高位值上的浮点精度。答案是将网格移近(0,0,0)

我很好奇,Vector3.Z返回什么值?Z是一个新的向量3(0,0,1)!我正在转动相机的轴。。。编辑:第一个参数Vector 3是设置旋转向量的点,第二个参数是要旋转的轴(Vector.Z),第三个参数是角度(float)。