本博客参考 http://blog.csdn.net/raby_gyl/article/details/17409717
http://baike.baidu.com/view/1691145.html?tp=2_11
http://www.geomodel.net/article/code/20080601/7510.html
https://github.com/gwlucastrig/Tinfour/wiki/About-the-Constrained-Delaunay-Triangulation

1 三角剖分与Delaunay三角剖分是什么

1.1 三角剖分是什么
如何把散点集合剖分成的三角形网格,这就是三角剖分问题,通俗讲就是将无组织的点,连入三角网格中。三角剖分对图形学来说,是极为重要的一项预处理技术。

假设V是二维上的有限点集,边e是由点作端点构成的线段, E为e的集合。那么该点集V的一个三角剖分T=(V,E)满足:
1.除了端点外,边不包含其它点。
2.没有相交边。
3.平面图中所有的面都是三角面,且所有三角面的合集是散点集V的凸包。
1.2 Delaunay三角剖分是什么
Delaunay三角剖分:将一些无结构的散点组合成一个三角形网格,在很多方面这个三角形网格是最优的。Delaunay是一种特殊的,也是运用最多的三角剖分。
假设E中的一条边e(两个端点为a,b),e若满足下列条件,则称之为Delaunay边:存在一个圆经过a,b两点,圆内(注意是圆内,圆上最多三点共圆)不含任何点。如果点集V的一个三角剖分T只包含Delaunay边,那么该三角剖分称为Delaunay三角剖分。

2 Delaunay三角剖分的要求、特性及构造

2.1 Delaunay三角剖分的要求
1、空圆特性:Delaunay三角网格是唯一的(任意四点不能共圆),在Delaunay三角形网中任一三角形的外接圆范围内不会有其它点存在。

2、最小角最大特性:在散点集形成Delaunay三角剖分中,所形成的三角形的最小角最大。具体的说是指交换任意两三角形构成四边形的对角线,六个内角的最小角不再增大。如下图所示:

2.2 Dealaunay三角剖分的特性
1.最接近:以最近的三点形成三角形。
2.唯一性:不论从区域何处开始构建,结果一致。
3.最优性:任意两个相邻三角形形成的凸四边形的对角线互换,两个三角形最小的角度不会变大。
4.区域性:新增、删除、移动某一个顶点时只会影响临近的三角形。
5.凸包:三角网最外层的边界形成一个凸多边形的外壳。
2.3 一种Delaunay的构造过程——逐点插入法
Delaunay剖分是一种三角剖分的标准,实现它有翻边算法、逐点插入算法、分割合并算法、Bowyer-Watson算法等。
理论上为了构造Delaunay三角网,Lawson提出的局部优化过程LOP(Local Optimization Procedure),一般三角网经过LOP处理,即成为Delaunay三角网,其基本做法如下所示:
1.将两个具有共同边的三角形合成一个多边形。
2.以最大空圆准则作检查,看其第四个顶点是否在三角形的外接圆之内。
3.如果在,修正对角线即将对角线对调,即完成局部优化过程的处理。
LOP处理过程如下图所示:

逐点插入的Lawson算法思路简单,易于编程实现。基本原理为:首先建立一个大的把所有数据点包围起来的凸包,向其中插入一点,该点与包含它的三角形三个顶点相连,形成三个新的三角形,然后逐个对它们进行空圆检测,同时用Lawson设计的局部优化过程LOP进行优化,即通过交换对角线的方法来保证所形成的三角网为Delaunay三角网。
由逐点插入的构网过程可知,遇到非Delaunay边时,通过删除调整,可以构造形成新的Delaunay边。在完成构网后,增加、删除、移动新点时,只需对新点的影响三角形范围进行局部联网。但在实际应用当中,如果点集范围是非凸区域或者存在内环,则会产生非法三角形。

3 带约束的Delaunay三角剖分

3.1 产生原因
Delaunay总是连接最相邻的点,有时这是不合适的。例如碰到断崖、狭窄的海岸线等。如果继续选择最相邻的点就会出现下面情况(网格会画到陆地上):

3.2 措施
在三角网格中插入一组边,约束网格中顶点只能在自己的区域内连接。

3.3 缺点及解决

  1. 出现太skinny,不符合Delaunary准则的三角形
  2. 不能映射成Voronoi Diagram这种重要的图形结构

    可以沿着插入边增加合成点来解决这种缺陷。最好的方法是不断的取中点添加,这样用最少的额外点来达到目的。

三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分相关推荐

  1. UA MATH575B 数值分析下IV 带约束的优化

    UA MATH575B 数值分析下IV 带约束的优化问题 带等式约束的优化问题 带不等式约束的优化问题 同时带等式约束与不等式约束的优化问题 今天不想敲公式,就不写理论了,反正方法也就是前面的Newt ...

  2. VTK:受约束的 Delaunay 2D用法实战

    VTK:受约束的 Delaunay 2D用法实战 程序输出 程序完整源代码 程序输出 程序完整源代码 #include <vtkActor.h> #include <vtkCellA ...

  3. matlab imf1,NGPM_v1.4y GA多目标优化的程序 带约束 里面有教程 matlab 272万源代码下载- www.pudn.com...

    文件名称: NGPM_v1.4y下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 390 KB 上传时间: 2015-03-31 下载次数: 24 提 供 者 ...

  4. 运筹优化(十二)--带约束非线性规划(NLP)

    线性约束的非线性规划 许多可以被有效解决的大型非线性规划中所有或者几乎所有的约束,都是线性的.只是将目标函数扩展为非线性.相对来说容易解决. 下面四种规划是特殊的NLP问题 凸规划 若最优化问题的目标 ...

  5. 基于带约束S型加减速曲线的空间直线插补与空间圆弧插补算法(Matlab)

    写在前面 学习代码都记录在个人github上,欢迎关注~ Matlab机器人工具箱版本9.10 在前面的博文中: 基于抛物线过渡(梯形加减速)的空间直线插补算法与空间圆弧插补算法(Matlab) 基于 ...

  6. 带约束的K-means聚类算法

    带约束的K-means 聚类算法 1. 前言 上一期学习了K-means聚类算法,聚类是不受到限制的,单纯的无监督学习,但是当存在一些约束时,比如对每一簇的聚类样本点数量有限制,或者每个样本点带需求, ...

  7. 公开课精华|机器人的带约束轨迹规划

    本文章总结于大疆前技术总监,目前在卡内基梅隆大学读博的杨硕博士在深蓝学院的关于机器人的带约束轨迹规划的公开课演讲内容. --------全文约5000字-------- 笔者不是机器人领域的,因此特地 ...

  8. 迭代求解最优化问题——带约束问题

    文章目录 带约束问题 惩罚因子 迭代步修改 带约束问题 在求解最优化问题时,很多问题的变量满足一定的约束,其数学形式为 min⁡f(x)st.C(x)=0\min f(\mathbf x) \\ st ...

  9. 带约束进化算法问题分析Constrained Evolutionary Algorithms

    经典论文<Evolutionary Algorithms for Constrained Parameter Optimization Problems>对带约束的进化算法进行了综述,本文 ...

最新文章

  1. wxWidgets:将带有语法高亮和折叠的自定义词法分析器添加到 WxStyledTextCtrl
  2. 查看进程状态信息命令 jps - (Java Virtual Machine Process Status Tool)
  3. 简单粗暴的入门机器学习
  4. 对比kCCPositionTypeFree和kCCPositionTypeRelative两种粒子移动类型
  5. CnForums国庆特别版
  6. Envoy实现.NET架构的网关(五)集成Redis实现限流
  7. oracle中的日期查询在mybatis中写法
  8. 【第七章】 springboot + retrofit
  9. EMUI10 亮相开发者大会:分布式设计打造全场景体验
  10. S.Finance已上线收益稳定币UU
  11. Sql2000数据库的备份文件恢复到Sql2005的方法
  12. 免费节假日API第一时间更新2019年节假日放假安排 可怜的五一
  13. 编程入门前应该先学什么?
  14. 李宏毅老师《机器学习》入门第一课
  15. One Drive 回收站文件太多时无法清空回收站解决办法
  16. [zz] 基于sinc的音频重采样(一):原理
  17. [Jupyter Notebook]导出好看的中文PDF
  18. 智能语音计算器(四)
  19. Golang开发入门(一)
  20. php 取消warning,php怎么关闭warning提示

热门文章

  1. vue中使用ECharts实现折线图和饼图
  2. PX4从放弃到精通(二十七):固定翼姿态控制
  3. MATLAB注意事项
  4. MATLAB深度学习入门之旅
  5. 新磁盘分区格式化挂载
  6. seller_info - 获得义乌购店铺详情
  7. php内核邮件群发管理系统源码
  8. HTML转图片或者HTML转PDF
  9. (JDK8)jdk-8u201-windows-x64 安装及其环境变量配置
  10. Word处理控件Aspose.Words功能演示:用Java从Word文档中提取文本