欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。
参考论文:Paving: A new approach to automated quadrilateral mesh generation
关注公众号回复paving
可以获得文章链接
边界相交
边界节点负角度的自交情况可以通过缝合的方式解决。边界自交分两种情况:1 单个边界自交,2 多个边界相交。
单个边界自交
当边界发生自交时,肯定有两对线段处于相交状态。
其中的参数化方法,可以快速判断是否相交以及具体位置。
处理自交比较直接的方式是把相交的线段合并在一起,但这往往不是最佳的方式。
更普遍的做法是尝试搜索相交位置以及附近的组合,来构建合法的边界,还使得奇异点尽可能少。
在处理相交时需要考虑以下4个方面:
- 边界偶性:在基本概述中提到边界必须是偶数个节点。如果当前选中的合并线段会使边界出现奇数个数,那么需要根据相交的具体位置重新选择合并的线段。
- 向前/向后搜索:有时候合并相交线段会产生奇异结点,反而合并当前线段的前一段或后一段可以使得奇异点变少。此时可以根据两线段的距离和平行性来选择需要合并的线段。
- 边长差异:当合并的线段边长差异较大时,可以使用楔子插入法来纠正。
- 自交完备:一个边界有可能有多处自交,需要先搜索出所有自交区域,然后根据距离和平行度进行排序,按照排序进行合并。
进行一次自交合并后,会产生两个新的边界。此时需要马上做一次缝合操作。然后继续检测自交。
上图为一次单边界自交处理过程。
虚线处为检测到的相交地方。对上面的一对合并可以得到更简单的边界。合并后得到c), 再进行缝合得到d)。
多个边界相交
当有内部边界存在时,最终肯定会发生多个边界相交的情况。
上图展示了多个内部边界的自交处理情况。
本人码农,希望通过自己的分享,让大家更容易学懂计算机知识。创作不易,帮忙点击公众号的链接,帮忙转发,感激不尽。