计算网格线与边界的交点的算法

计算科学 线性代数 有限差分 几何学 网格生成
2021-12-03 09:29:57

我需要一个程序或算法来计算网格和边界的交集。

网格本质上是正交结构,边界是一个圆(例如)。这将用于使用具有 5 点不等间距模板的有限差分技术求解泊松方程。

2个回答

我建议(如果您使用 C++ 编码)CGAL 库,它允许您计算轴对齐边界框(AABB,在您的情况下为网格单元)和几何图元之间的交集列表,在查询中组装(或均匀的表面网格、多面体等):

CGAL中的相交序列

这将为您提供有关被切割单元格的标签信息......如果您需要它们,还有用于计算交叉点的算法,它返回实际的几何构造作为交叉点结果。

如果通过有符号距离函数的零线来描述边界,则可以通过测试单元格的所有顶点是否具有距离函数的相同符号(不相交)或不同符号(路口)。我相信这是通常的算法。