【发布时间】:2015-11-07 14:54:49
【问题描述】:
手头的问题是与 3D 空间内的 2D 增长有关的科学模拟的一部分。 2D 形状通过将(三角形)段添加到先前增长的形状来增长。
请注意,3D 中的实际线段具有厚度,因此,我的代码实际上适用于三角棱镜。
在某一时刻,这些 2D 形状(具有任何相对方向和位置)发生碰撞。
如果一个新的三棱柱与先前插入的线段相交,我只想插入与先前插入的线段不相交的线段的“部分”。如下所示为标记为 T1 和 T2 的段。
在第一步中,我计算了所有相交边到面。然后,我使用 3D 中的 CGAL Delaunay Triangulation 包对四面体网格中的结果点集进行网格划分。作为最后一步,我丢弃了所有与之前插入的线段相交的四面体。 这在大多数情况下都非常有效 - 但我现在确信,由于根本原因,这个想法行不通。
有什么更可靠的计算方法?
【问题讨论】:
标签: computational-geometry intersection convex polyhedra non-convex