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

Math 查找三角形和多面体(由平面表示)是否相交,math,graphics,geometry,game-physics,intersection,Math,Graphics,Geometry,Game Physics,Intersection,我得到一个多面体,它由一系列平面表示。由这些平面分隔的体积是实际的多面体 我有一个三角形列表,我需要删除所有相交或包含在这个多面体中的三角形。我的想法是检查每个平面是否与三角形相交。如果它与三角形相交,则检查表示相交的线段是否包含位于所有其他平面同一侧的点 为了捕捉三角形完全包含的情况,我们只需检查三角形的任何角是否包含在多面体中(通过检查点是否位于所有平面的同一侧) 我不确定这个解决方案是否适用于所有情况,或者是否有更优雅的解决方案。我也不确定如何计算交点的线段是否在所有其他平面的同一侧包含一

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

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

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

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

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


任何帮助都将不胜感激

正如@NicoSchertler在一篇评论中所建议的,一个解决方案是将每个三角形都裁剪到所有平面上。如果没有留下任何点(或低于3点,因此它不是三角形),则三角形与多面体相交。这似乎很有效。

您可以成功地在每个平面上剪裁三角形。如果三角形完全消失,就没有交点。你的解与我用的解很接近,所以我认为这是一个尝试。@NicoSchertler你用clip是什么意思?试着切断每个多面体平面一侧的三角形的所有部分?是的,没错。裁剪是图形中的一个基本过程(三角形通常在屏幕边缘进行裁剪)。你可以在3D中这样做,也可以将平面与三角形平面相交,然后在2D中剪裁。谢谢@NicoSchertler,我最终使用了你的方法。将三角形剪切到平面非常简单(我们可以简单地将每个三角形边视为线段,这使得剪切非常简单)。它似乎起作用了,谢谢!