我正在研究一个Java女巫项目真是要了我的命。经过几天在不同论坛上的研究,寻找我真正需要的东西,我来寻求你的帮助。
我的数据:
- .ply 文件(包含由许多三角形组成的 3D 形状)
- 一个点(3D坐标)
我想知道这个点是否包含在复杂的 3D 形状内。
我把这个问题分成两个较小的问题:
也许有更简单的方法可以做到这一点,这也是我来找你的原因。
我现在真的陷入困境,我想如果不编写海关库就可以做到这一点......
(抱歉我的写作,我不是英语^^)
谢谢你帮助我。
这是一种方法。不是最好的或最快的,但是一旦你有一些东西可以工作,它就会更容易改进。
如何在内存中表示复杂的 3D 形状?
实现一个快速但肮脏的 PLY 文件格式解析器。这里是PLY 格式规范 http://paulbourke.net/dataformats/ply/。加载数据并在内部存储它:每个 X、Y 和 Z 的数组。这都是普通的 Java。
我如何知道该点是否在 3D 形状内部?
根据您的点和其他任意点定义一条线。对于每个多边形,确定它与平面的相交位置 (一些帮助 http://www.netcomuk.co.uk/~jenolive/vect18c.html) 并且如果交点位于多边形内部或外部 (一些帮助 http://bbs.dartmouth.edu/~fangq/MATH/download/source/Determining%20if%20a%20point%20lies%20on%20the%20interior%20of%20a%20polygon.htm)。按照您的建议,然后计算交叉点的数量,以确定该点是在 3d 形状内部还是外部。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)