Camera LibGDX摄像机绕轴旋转高坐标抖动
我似乎找不到解决以下问题的办法。我在libGDX中设置了一个透视摄像头。我使用.rotateAround例程旋转我的相机。当围绕低坐标旋转时,此功能非常有效。但旋转轴的坐标越高,旋转变得越急促 在我的CameraInputController类中: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) {
@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)。