四边形网格自动生成.doc

四边形网格自动生成.doc

ID:59218374

大小:46.50 KB

页数:4页

时间:2020-09-09

四边形网格自动生成.doc_第1页
四边形网格自动生成.doc_第2页
四边形网格自动生成.doc_第3页
四边形网格自动生成.doc_第4页
资源描述:

《四边形网格自动生成.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、二维多边形单连通域自动生成四边形和三角形混合网格算法版本控制版本修订内容日期修改人审核人V1.0.1起草设计文件2011/12/06张宏类:CMeshingQuad函数:voidCMeshingQuad::AutoQuad2D_SCD(intnBndPoint,Vector4*pVex2D)文件:Mesh2D.cpp,Mesh2D.h算法步骤:1.输入参数:多边形区域的边界点数nBndPoint按顺序输入边界点坐标数组pcVex2D,每个点包括x,y坐标最大四边形内角fMaxQuadAngle单元控制尺寸fElmSize2.构造线段数组pcLi

2、ne,每个线段包括首点号,末点号,顺序与当前边界线方向一致3.计算边界点内角pfAng,内角范围[0,180]度4.计算区域范围及网格数nGridX、nGridY,便于快速判断线段相交5.将已有线段加入对应的网格数组pGrid,每个网格包括线段数、线段ID数组6.建立边界线链表vBndLine(线段编号iLine,前一条线段编号iLast,后一条线段编号iNext),也可以定义为边界点链表vBndPoint(结点编号iNode,前结点编号iLast,后结点编号iNext)7.初始化生成单元的边界线链表序号iStartLine=-18.如果边界线

3、数>4,则开始在边界上生成单元1)由相邻角点生成单元:搜索所有边界线链表,若线段两端点n1,n2的内角θ1、θ2均小于fMaxQuadAngle,并且新线与其它线不相交:l若新线段长度大于1.5*fElmSize,则生成1个三角形、1个四边形、1个结点、3个线段,将新线加入网格,更新边界线链表,更新n3,n4,n5的内角;(1)θ1>θ2(2)θ1>θ2若新线与其它线段相交,则继续循环搜索。l否则,生成1个四边形,1个线段,将新线加入网格,更新边界线链表,更新n3,n4的内角。若至少生成了1个单元,则直接返回步骤-8

4、。1)若iStartLine==-1,则寻找边界线左端点最小内角,得到边界线号iLine;否则设置iLine=iStartLine;2)由单个较小内角生成三角形单元:若线段iLine首端点n1的内角θ1小于fMaxTriAngle,并且新线与其它线不相交,则生成1个三角形,1个线段,将新线加入网格,更新边界线链表,更新n2,n4的内角,返回步骤-8。1)由单个较大内角生成单元:若线段iLine首端点n1的内角θ1大于fMaxTriAngle并且小于fMaxQuadAngle,并且新线与其它线不相交,则

5、生成1个四边形,2个线段,将新线加入网格,更新边界线链表,更新n4,n3,n2的内角,返回步骤-8。可考虑:若θ1角度过大,则生成1个三角形和1个四边形。2)若上面步骤中没有生成任何单元,需要放宽条件,避免死循环,然后返回步骤-8。具体为以下几种方法的组合:l移到下一条边界线段iLine++,直到遍历完所有边界线l每次fMaxQuadAngle增加10度,直到接近180度l每次fMaxTriAngle增加10度,直到接近180度l每次fElmSize增加10%,无最大值限制l每次成功单元生成后自动恢复到各个参数的初始值l若以上方法均不奏效,则达

6、到最大值限制后跳出循环,提示用户网格生成失败1.如果边界线数=3,则生成1个三角形单元,跳过步骤-10。2.如果边界线数=4,若有内角>fMaxQuadAngle则生成2个三角形单元;否则生成1个四边形单元。3.遍历所有四边形单元,拆分内角过大的四边形为2个三角形。1.遍历所有三角形单元,合并共线的2个三角形,条件是合并后内角要小于fMaxQuadAngle。2.结点光滑:按设定次数进行Laplace光滑处理,相邻点权重为1,对角点权重为2。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。