如何知道点是否在复杂的3D形状内(.ply文件)

时间:2013-04-03 11:41:20

标签: java 3d intersection java-3d jbullet

我正在研究一个 Java 项目,这真的让我很伤心。经过几天在不同论坛上的研究,寻找我真正需要的东西,我来寻求你的帮助。

我的数据:

  • .ply文件(包含由许多三角形组成的3D形状)
  • 一个点(三维坐标)

我想知道这个点是否包含在复杂的3D形状中。

我已将此问题分解为两个较小的问题:

  • 如何在内存中表示复杂的3D形状? (我发现了几个库,但对于我想要执行的任务来说,它似乎非常复杂:Java3D,JBullet, JME3 ...)我不希望我的java应用程序暂时显示该对象。

  • 我怎么知道这个点是否在3D形状内? (我想从点开始制作一个3D矢量并计算交叉点的数量与形状,但我不知道怎么做,我可以使用女巫图书馆吗?)

也许有更简单的方法可以做到这一点,这也是我来找你的原因。 我现在真的被困住了,如果没有写海关图书馆,我想要这样做......

(抱歉我的写作,我不是英文^^)

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这是一种方法。不是最好的或最快的,但是一旦你有了工作,就会更容易改进。

  

如何在内存中表示复杂的3D形状?

实现快速而脏的PLY文件格式解析器。这是PLY format spec。加载数据并在内部存储它:每个X,Y和Z的数组。这只是普通的Java。

  

我怎么知道这个点是否在3D形状内?

根据您的点和其他任意点定义一条线。对于每个多边形,确定它与平面相交的位置(some help)以及交点是否在多边形内部或外部(some help)。如您所建议,然后计算交叉点的数量,以确定该点是在3d形状的内部还是外部。

相关问题