首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Three.js中检查两个凸多面体是否相交?

如何在Three.js中检查两个凸多面体是否相交?
EN

Stack Overflow用户
提问于 2015-04-26 07:05:15
回答 2查看 939关注 0票数 1

我正在研究一个问题,需要随机生成凸多面体,并将凸多面体放在任意点的立方体/圆柱容器中,而不需要重叠。我使用three.js获得图形输出。

一个演示。

在放置多面体时,如何检查它是否与其他多面体相交?

所涉及的凸多面体是简单的四面体或六面体,是用THREE.ConvexGeometry构造的。因为我需要一个精确的检查,包围框是不够的,我只是使用它来确保两个多面体不相交。

我做了很多研究,发现了很多复杂的理论和方法,我需要的是得到一个布尔结果,来判断两个凸多面体之间是否存在相交。分离轴定理 in 3D已经足够好了,但是Three.js似乎无法做到这一点。有人能告诉我如何用简单的方式做这样的检查吗?或者解释一下如何在3D中使用SAT进行检查?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-26 14:58:50

你可以看看http://www.realtimerendering.com/intersections.html。尽管这个网站是从2011年开始的,但是在过去的几年里,交汇算法并没有改变。从演示中可以看出,一旦多面体被放置在立方体中,它们就不会移动。因此,SAT算法并不是最好的解决方案,因为它用于移动多面体。

票数 0
EN

Stack Overflow用户

发布于 2015-04-26 16:10:00

算法是一种强大的算法,它允许测量距离和检查凸多面体之间的交点。不过,我仍然认为在简单多面体上使用比较好,否则在支持函数中的计算可能需要一些时间。一个可能的缺点是,您需要有能够度量一个点与另一个点/段/三角形之间的距离的函数,我不知道在three.js中是否有。

算法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29874791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档