我正在编写一个应该显示 3D 点云的程序。为此,我正在使用 jMonkeyEngine。不幸的是,我不喜欢 jMonkey 的默认相机行为。尤其是鼠标拖动和鼠标滚轮并没有真正按照我的意愿行事。我想要的是它们的行为就像在 PointCloudLibrary 的 pcd 查看器中一样。
- 鼠标滚轮:应该更快,转动方向的效果应该切换。
- 鼠标拖动:在 jMonkey 中,鼠标拖动似乎改变了世界中相机的观察方向。我不确定 pcd 查看器中到底发生了什么,但我相信相机在固定显示点云的质心的同时在世界中移动。
我怎样才能改变相机的行为来满足我的愿望? :)
最佳答案
1. 在 simpleInit() 方法中(其中 100 是一个任意数字):
getFlyByCamera().setZoomSpeed(100);
getFlyByCamera().setDragToRotate(true);
请注意,缩放实际上并不会改变相机的位置,只会改变 FOV。
2。 相机的正常行为是绕其自身的轴旋转。通过偏移相机的位置,也可以达到您想要的效果。在 simpleUpdate() 中:
cam.setLocation(cam.getDirection().negate().multLocal(cam.getLocation().length()));
我认为第二个问题的答案有点简单。但它确实有效。
关于java - 在 jMonkey 中更改相机行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208459/