matlab中的delaunay,基于MATLAB 实现二维delaunay 三角剖分

基于MATLAB 实现二维delaunay 三角剖分

刘锋涛凡友华

(哈尔滨工业大学深圳研究生院深圳518055)

【摘要】在已知凸多边形的顶点坐标的前提情况下,利用MATLAB 中的meshgrid 函数产生多边形附近矩形区域内的网格点的坐标,然后再利用inpolygon 函数判断哪些点位于多边形内和哪些点位于多边形的边界上。在此基础上利用delaunay 函数来完成delaunay 三角剖分。

【关键词】delaunay 三角剖分;MATLAB

网格划分是有限元分析前处理中的关键步骤,网格划分的密度以及质量对有限元计算的精度、效率以及收敛性有着重要的影响作用。自20世纪70年代开始,关于有限元网格生成方法的研究已经取得了许多重要成果,提出许多有效的算法。Ho-Le 对网格生成方法进行了系统的分类[1]。许多学者也对网格生成的方法进行了综述,如我国的学者胡恩球等[2]、关振群等[3]。

Delaunay 三角剖分(简称DT)是目前最流行的通用的全自动网格生成方法之一。DT 有两个重要特性:最大-最小角特性和空外接圆特性。DT 的最大-最小角特性使它在二维情况下自动地避免了生成小内角的长薄单元。因此特别适用于有限元网格生成。大体上可将DT 算法分为三大类:分治算法,逐点插入法和三角网生长法。经典DT 技术已经相当成熟,近年来的研究重点是约束DT 的边界恢复算法,以及如何克服算法退化现象所产生的薄元(sliver element)问题[3]。

然而,实现DT 有限元网格生成,对于非计算机图形学专业的工程师来说还是很复杂的。在处理一些对有限元网格划分质量不过的问题时,如极限分析的有限元方法,可以采用一些更为简单的方法来实现。在Matlab 计算软件中,已有一个成熟的函数delaunay 可以实现对一系列点的DT 划分。因此,本文基于Matlab 的delaunay 等一些函数来完成一个凸多边形的DT 网格划分。

1MATLAB 中的函数

1.1delaunay 函数

delaunay 函数可以按照DT 网格划分的要求将一个点集中的点划归某一个有限网格所有。它在Matlab 中的用法如下:

=delaunay(,) or,

=delaunay(,,)

TRI x y TRI x y options 其输入为点集中所有点的横、纵坐标向量x 和y ,返回值为一个的矩阵,矩阵中每一3m ×行表示DT 网格中一个三角形网格的三个顶点。

1.2meshgird 函数

为了在任意凸多边形内产生一个点集,可以利用Matlab 中的meshgrid 命令。其用法如下:

[,] = meshgrid(,)

X Y x y

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值