什么是Delaunay三角剖分?

图1:Delaunay三角剖分偏爱小角度

给定平面中的一组点,三角剖分指的是将平面细分为三角形,这些点为顶点。在图1中,我们在左侧图像上看到了一组地标,在中间图像上看到了三角剖分。一组点可以有许多可能的三角剖分,但是Delaunay三角剖分之所以突出是因为它具有一些不错的特性。在Delaunay三角剖分中,选择三角形时应确保没有点位于任何三角形的外接圆之内。图2.显示了四个点A,B,C和D的Delaunay三角剖分。在顶部图像中,要使该三角剖分成为有效的Delaunay三角剖分,C点应在三角形ABD外接圆的外部,而A点应在三角形ABD的外接圆的外部三角形BCD的外接圆。

Delaunay三角剖分的一个有趣特性是它不支持“瘦”三角形(即,一个大角度的三角形),即选择小角三角形,如下:

图1显示了在移动点时三角剖分如何变化以拾取“胖”三角形。在顶部图像中,点B和D在x = 1.5处具有x坐标,在底部图像中,它们向右移至x = 1.75。在顶部图像角度中,ABC和ABD的角度较大,而Delaunay三角剖分在B和D之间创建了一条边缘,将两个大角度分为较小的角度ABD,ADB,CDB和CBD。另一方面,在底部图像中,角度BCD太大,并且Delaunay三角剖分创建了边缘AC以划分大角度。

有很多算法可以找到一组点的Delaunay三角剖分。最明显(但不是最有效)的方法是从任何三角剖分开始,然后检查任何三角形的外接圆是否包含另一个点。如果是这样,则翻转边缘(如图1所示)并继续直到没有外接圆包含点的三角形。

关于Delaunay三角剖分的任何讨论都必须包括Voronoi图,因为一组点的Voronoi图是其Delaunay三角剖分的数学对偶。

什么是Voronoi图?

图2. Voronoi图

给定平面中的一组点,Voronoi图会划分空间,以使边界线与相邻点等距。图2.显示了根据显示为黑点的点计算的Voronoi图的示例。您会注意到,每条边界线都经过两个点的中心。如果将相邻的Voronoi地区中的点连接起来,则会得到Delaunay三角剖分!

Delaunay三角剖分和Voronoi图之间的联系不止一种。

Delaunay和Voronoi的更多相关文章

  1. OpenCV——Delaunay三角 [转载]

    从这个博客转载 http://blog.csdn.net/raby_gyl/article/details/17409717 请其它同学转载时注明原始文章的出处! Delaunay三角剖分是1934年 ...

  2. Triangle 1.6 (A Two-Dimensional Quality Mesh Generator and Delaunay Triangulator)

    Triangle 一个二维高质量网格(mesh)生成器和Delaunay三角化工具. PSLG(Planar Straight Line Graph)约束Delaunay三角网(CDT)与Delaun ...

  3. ACM常用算法

    数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维 ...

  4. ACM需要掌握算法

    数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维 ...

  5. matlab实用教程

    苏金明.2005.电子工业     1 语句末尾加 : 可以不显示到屏. who 查看变量 whos 列出变量信息 exist t 判断变量是否在空间中. help 函数 doc 函数 : doc f ...

  6. ACM用到的算法。先做个笔记,记一下

    ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 ...

  7. ACM算法目录

    数据结构 栈,队列,链表 •哈希表,哈希数组 •堆,优先队列 双端队列 可并堆 左偏堆 •二叉查找树 Treap 伸展树 •并查集 集合计数问题 二分图的识别 •平衡二叉树 •二叉排序树 •线段树 一 ...

  8. Voronoi图和Delaunay三角剖分

    刷题的时候发现了这么一个新的东西:Voronoi图和Delaunay三角剖分 发现这个东西可以$O(nlogn)$解决平面图最小生成树问题感觉非常棒 然后就去学了.. 看的n+e的blog,感谢n+e ...

  9. OpenCV生成点集的Delaunay剖分和Voronoi图

    实现内容: 设置一副图像大小为600*600.图像像素值全为0,为黑色. 在图像中Rect(100,100,400,400)的区域随机产生20个点.并画出. 产生这些点集的Delaunay剖分和Vor ...

随机推荐

  1. Java DbUtils简介

    Dbutils,db utils,顾名思义,是一个数据库工具,体积很小,算是一个dao层的小框架. DbUtils是Apache的开源项目,对JDBC进行了轻量级封装,极大地简化了JDBC编程. Db ...

  2. springboot-发布jar包

    其他参考链接: https://www.cnblogs.com/blog5277/p/5920560.html 环境变量配置: 新建系统变量MAVEN_HOME: 在path中添加: ;%MAVEN_ ...

  3. NumPy 之 存储文件和线性代数

    import numpy as np File Input and Output NumPy is able to save and load data to and from disk either ...

  4. IDEA编码时卡顿问题

    当代码行数超过2000行,甚至更多时会出现编码时卡顿到无法编译的情况,解决方法如下: 方法1:修改IDEA配置参数 找到D:\ideaIU-2019.1.1.win\bin\idea64.exe.vm ...

  5. windows+jenkins+springboot自动构建并后台执行jar

    本文只讲述如何在windows环境下,搭建jenkins并使用,至于概念的东西请自行百度. 好了,直入主题,本人使用 jenkins.war 包进行部署,我们需要准备如下几个: openjdk8    ...

  6. H3C 无线交换机和FIT AP的典型连接

  7. 解决网页刷新时,隐藏div元素闪现问题

    最近项目遇到一个问题,需要对一个div中的元素设置根据不同的情况进行显示和隐藏. 因为默认该div是显示的,所以在刷新页面的时候,会先加载这个div进行显示,加载完成后又执行到 hide() 方法,使 ...

  8. 性能测试基础---事务&检查点&思考时间&集合点

    性能测试脚本的增强:·参数化·关联·事务·检查点·思考时间·集合点 ·事务:事务的引入是为了度量相关的业务请求的响应时间和吞吐量指标.在LR中,事务是通过两个事务函数来实现的. lr_start_tr ...

  9. JMeter聚合报告的参数含义

    Label----每个请求的名称,比如HTTP请求等 #Samples----发给服务器的请求数量 Average----单个请求的平均响应时间 毫秒ms Median----50%请求的响应时间   ...

  10. Java并发编程-JUC-CountDownLatch 倒计数门闩器-等待多线程完成再放行 -一次性使用

    如题 (总结要点) CountDownLatch 倒计数门闩器, 让1-n-1个线程等待其他多线程完成工作. (Excel的多个Sheet的解析,最终等待解析完毕后;要实现主线程等待所有线程完成she ...