我有一个 3d 场景设置,可以导航我的场景等(我在 Java 3D 方面经验丰富),但我仍然需要在 Java 3D 中实现以下四个操作的方法:

  • 将我的 Canvas3D 的查看区域映射到虚拟世界中(使用此映射,我应该能够在查看 Canvas 周围的虚拟世界中绘制轮廓(矩形))。
  • 从 Canvas 上的鼠标点转换为虚拟世界中的点(如果我有这个,我也应该能够实现上述目标)
  • 从虚拟世界中的一个点转换到 Canvas3D 对象上的一个点
  • 我希望能够缩放我的场景以适应 Canvas3D 对象的查看区域(希望没有反复试验。即希望没有放大一点,然后再次测试点,然后重复)

  • 以上所有内容都非常密切相关,因此将非常感谢任何帮助。

    最佳答案

    要将 Canvas3D 坐标转换为虚拟世界坐标,您应该使用 Canvas3D 的 getVworldToImagePlategetImagePlateToVworld 方法。这将使您获得从 imagePlate 坐标到虚拟世界坐标的映射。

    要将像素位置转换为虚拟世界坐标,您需要将上述变换与 getPixelLocationInImagePlate 的返回链接起来

    上面的相反, getPixelLocationFromImagePlate ,将回答你的第三点。

    一个你在同一个坐标空间中拥有所有东西,你可以开始计算你的特定应用程序所需的正确转换。

    10-08 13:39