找出三角形和多面体(由平面表示)是否相交

时间:2015-04-30 09:46:44

标签: math graphics geometry game-physics intersection

我得到一个多面体,由一组平面表示。由这些平面分隔的体积是实际的多面体。

我有一个三角形列表,我需要删除所有相交或包含在这个多面体中的三角形。我的想法是检查每个平面与三角形的交点。如果它与三角形相交,则检查表示交点的线段是否包含位于所有其他平面同一侧的点。

为了捕捉完全包含三角形的情况,我们可以检查多面体中是否包含任何三角形的角(通过检查该点位于所有平面的同一侧)。

我不确定这个解决方案是否适用于所有情况,或者是否有更优雅的解决方案。我也不确定如何判断交叉点的线段是否包含所有其他平面同一侧的点。

我也考虑过分离轴定理,但这需要我将多面体转换成一些不同的表示(因为这些平面是无限的),我不知道该怎么做。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

正如@NicoSchertler在评论中所建议的那样,解决方案是采用每个三角形并将其剪辑在所有平面上。如果没有剩下的点(或者在3个点以下,所以它不是三角形),则三角形与多面体相交。这似乎运作良好。