4

我正在开发一个Java项目,女巫真的要了我的命。经过几天在不同论坛上的研究,寻找我真正需要的东西,我来寻求您的帮助。

我的数据:

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

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

我把这个问题分成了两个小问题:

  • 如何在内存中表示复杂的 3D 形状? (我找到了几个库,但对于我想做的任务来说似乎真的很复杂:Java3D、JBullet、JME3...)我现在不希望我的 java 应用程序显示该对象。

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

也许有更简单的方法可以做到这一点,这也是我来找你的原因。我现在真的被困住了,我想如果不编写海关库就可以做到这一点......

(对不起我的写作,我不是英语^^)

谢谢你帮助我。

4

1 回答 1

0

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

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

实现一个快速而肮脏的 PLY 文件格式解析器。这是PLY 格式规范。加载数据并将其存储在内部:每个 X、Y 和 Z 的数组。这都是纯 Java。

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

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

于 2013-04-03T22:43:44.043 回答