我正在广泛使用 Java WorldWind,并且很难通过 3d 渲染实现更多功能。起初,我在使用 zoom 和BasicOrbitView时遇到了巨大的困难,因为 zoom 实际上会改变视点高度,从而改变地平线,因此不是缩放。我使用FOV 参数解决了这个问题。减小此参数会执行真正的缩放,因为可视化对象仅通过类位变换进行修改。我解释说,为了让我知道隐藏在“缩放”或“翻译”等词后面的细节水平。
现在我有关于“翻译”的第二个问题:我想沿着屏幕 X 和 Y 轴平移整个地球,而不改变地平线或其他任何东西。目标是结合 FOV 变化和平移变化来放大一些地球边缘。
可以使用滚动和俯仰缩放某些地球边缘,条件是边缘位于屏幕上,禁止北极朝上,例如在赤道上的地球边缘缩放(如果不清楚,我将提供插图) . 所以这次尝试没有成功。我在 BasicOrbitView.setOrientation 方法上做了很多工作,但没有成功。
我还尝试修改 View 后面的 OpenGL 视图矩阵,尝试将其与描述翻译的 4x4 矩阵相乘,但未成功(在 worldwind 子例程期间执行崩溃)。
您对如何在 worldwind 中实现该翻译有想法吗?