2015-04-30 42 views
2

我给出了一个由平面列表表示的多面体。由这些平面分隔的体积是实际的多面体。查找三角形和多面体是否相交

我有一个三角形列表,我需要删除所有相交或包含在这个多面体中的三角形。我的想法是检查每个飞机与三角形的交点。如果它与三角形相交,则检查代表交点的线段是否包含位于所有其他平面同一侧的点。为了捕捉三角形完全包含的情况,我们可以检查三角形中的任何角是否包含在多面体中(通过检查该点是否位于所有平面的同一侧)。

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

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

任何帮助,将不胜感激!

+3

您可以在每个平面上剪切三角形。如果三角形完全消失,则不存在交点。 –

+0

你的解决方案接近我所支持的解决方案,所以我认为这是一个解决方案。 –

+0

@NicoSchertler你是什么意思与剪辑?试图切断每个多面体平面一侧的三角形的所有部分? – Janiels

回答

0

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