我正在使用连接到物理设备的3D应用程序。 3D再现应该与现实世界中设备的旋转和位置相匹配。
说到它的位置,没关系。我在申请轮换时遇到问题。
我在设备上使用陀螺仪,我在~20FPS更新场景。
以下是更新的代码:
public void updateRotation(int[] rollAngles){
if(rollAngles.length>0){
Transform3D newRotX = new Transform3D();
newRotX.rotX(Math.toRadians(rollAngles[0]));
Transform3D newRotY = new Transform3D();
newRotY.rotY(Math.toRadians(rollAngles[1]));
Transform3D newRotZ = new Transform3D();
newRotZ.rotZ(Math.toRadians(rollAngles[2]));
Transform3D transVec = new Transform3D();
transVec.setTranslation(new Vector3f(curr_x,curr_y,0.0f));
newRotX.mul(newRotY);
newRotX.mul(newRotZ);
newRotX.mul(transVec);
sphereGroup.setTransform(newRotX);
}
}
对象会在屏幕上跳跃:首先是在某个“随机”位置,然后是实际的X,Y,Z坐标。
对此有什么想法吗?
P.S。此外,有时3D场景完全消失,我必须单击并拖动它才能再次看到它。这是一个常见的问题吗?我该如何解决?