4

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

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

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

4

1 回答 1

0

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

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

与上述相反的getPixelLocationFromImagePlate将回答您的第三点。

如果您将所有东西都放在同一个坐标空间中,您就可以开始找出特定应用程序所需的适当转换。

于 2013-03-18T14:28:29.193 回答