自学内容网 自学内容网

二维四边形网格生成算法:paving(五)缝合 Seaming 与 闭合检测 Closure Check

欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。

参考论文:Paving: A new approach to automated quadrilateral mesh generation

关注公众号回复paving可以获得文章链接

paving(一)基本概述

paving(二)新行选择

paving(三)行生成

paving(四)平滑

缝合

缝合操作就是对夹角很小的边界处进行合并连接。

判断缝合的标准有节点的内角 α \alpha α和节点连接的边数Ne, 固定节点也需要缝合。

一共有3种缝合类型:1)可动边界节点,2)固定节点缝合,3)2个大小不一样的四边形的缝合。

节点内缝合

边界可动节点缝合条件如下:
在这里插入图片描述
从上述条件可以看出,随着节点度的增加,缝合角度条件会变小。

在这里插入图片描述
如上图所示,缝合是一个递归操作,缝合完当前点后,需要检查新节点是否需要缝合,直到不满足缝合条件为止。

固定点缝合

对于角度很小的固定点,一旦生成了面,就不能平滑操作调整。

对于这种情况,可以采用延迟闭合的方式来优化。

如下图所示,Ni节点是一个角度很小的固定点,如果直接生成四边形,则这个四边形会比较扭曲。

可以采用b)的方式,先不在Ni处生成四边形,等第二行生成时,会有自交情况产生,此时再做缝合,则可以生成比较好的四边形。

在这里插入图片描述

旋转缝合

当节点的两条边长相差比较大时,就需要用到旋转缝合。

如下场景,当长边与短边之比大于2.5时,就需要进行旋转缝合。

旋转缝合分3步,在长边侧先添加一条wedge边(在后面的章节会提到如何添加),然后把Ni的长边端点移动至短边的端点,最后做一次节点平滑。
在这里插入图片描述

闭合检测

在边界上生成四边形之前,需要先检测是否符合闭合要求。

如果边界节点数少于或等于6个,则需要闭合。

由于边界节点数都是为偶数,那么当需要闭合时有4种情况:

节点数0:直接完成闭合。

节点数2:做一次缝合操作即可。

节点数4:添加一个四边形即可。

节点数6:枚举下面12种情况即可。

图形上方的数字代表每一侧的连续边条数。
在这里插入图片描述


本人码农,希望通过自己的分享,让大家更容易学懂计算机知识。创作不易,帮忙点击公众号的链接,帮忙转发,感激不尽。


原文地址:https://blog.csdn.net/chenbb1989/article/details/142519141

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!