手头的问题是关于3D空间内2D增长的科学模拟的一部分。 2D形状通过将(三角形)片段添加到先前生长的形状而生长。如何计算凸多面体和另一个多面体之间的交点?
注意,在3D实际段的厚度,因此,我的代码实际上三棱镜工作。
在某一点上,这些2D形状(无论相对方向和位置)会发生碰撞。
如果其中一个新的三棱镜与先前插入的段相交,我只想插入与先前插入的段不相交的段的“部分”。如下所示,标记为T1和T2的部分。
在第一步骤中,我计算所有交点边缘面。然后,我使用3D中的CGAL Delaunay Triangulation软件包将合成点集合网格化为四面体网格。作为最后一步,我扔掉所有与先前插入的段相交的四面体。 这在大多数情况下都能很好地工作 - 但现在我确信这个想法不能用于基本原因。
什么是更可靠的计算方法?
我会考虑你的方法。然而,有两件事:1.我不是在寻找交集,我实际上是在寻找所有(当然只有那些在附近的)先前插入的段的集合中的新段的补集。 如果我有交集,我仍然不得不从新的分段中减去它。 – Merlin