Dr jiapu ZHANG分享 http://blog.sciencenet.cn/u/jiapuzhang

博文

[转载] 沃罗诺伊图(Voronoi Diagram)

已有 12546 次阅读 2019-1-26 19:32 |系统分类:科普集锦|文章来源:转载

 沃罗诺伊图(Voronoi Diagram,也称作Dirichlet tessellation,狄利克雷镶嵌)是由俄国数学家格奧爾吉·沃羅諾伊建立的空间分割算法。灵感来源于笛卡尔用凸域分割空间的思想。
建立泰森多边形算法的关键是对离散数据点合理地连成三角网,即构建Delaunay三角网。建立泰森多边形的步骤为:
1、离散点自动构建三角网,即构建Delaunay三角网。对离散点和形成的三角形编号,记录每个三角形是由哪三个离散点构成的。
2、找出与每个离散点相邻的所有三角形的编号,并记录下来。这只要在已构建的三角网中找出具有一个相同顶点的所有三角形即可。
3、对与每个离散点相邻的三角形按顺时针或逆时针方向排序,以便下一步连接生成泰森多边形。设离散点为o。找出以o为顶点的一个三角形,设为A;取三角形A除o以外的另一顶点,设为a,则另一个顶点也可找出,即为f;则下一个三角形必然是以of为边的,即为三角形F;三角形F的另一顶点为e,则下一三角形是以oe为边的;如此重复进行,直到回到oa边。
4、计算每个三角形的外接圆圆心,并记录之。
5、根据每个离散点的相邻三角形,连接这些相邻三角形的外接圆圆心,即得到泰森多边形。对于三角网边缘的泰森多边形,可作垂直平分线与图廓相交,与图廓一起构成泰森多边形。

\displaystyle {X}表示一个距离函数为d的空间(一个非空集合)。令 \displaystyle {K}为一个指数集合,(P_{k})_{{k\in K}}为空间\displaystyle {X}的一个非空子集的有序元组。对应于\displaystyle {P_{k}}\displaystyle {R_{k}},称沃罗诺伊原胞,或称沃罗诺伊区域,是空间\displaystyle {X}中所有到\displaystyle {P_{k}}的距离不大于到其他位置\displaystyle {P_{j}}(j≠k)的点集。或者说,如果定义d(x,A)=\inf\{d(x,a)\,|\,a\in A\}为点x和子集A的距离,则

  • Rk={x∈X|d(x,Pk)≤d(x,Pj)for allj≠k}{\displaystyle R_{k}=\{x\in X\,\,|\,\,d(x,P_{k})\leq d(x,P_{j})\,\,{\text{for all}}\,\,j\neq k\}}R_{k}=\{x\in X\,\,|\,\,d(x,P_{k})\leq d(x,P_{j})\,\,{\text{for all}}\,\,j\neq k\}

沃罗诺伊图即原胞(R_{k})_{{k\in K}}元组。理论上有些位点能够交叉甚至重合,但事实上它们往往被设定为不相交的。另外,定义过程中允许位点数目无限(这在几何数论结晶学有着重要应用),然而通常情况下,只考虑有限位点数。

对于某些特定情况,如有限维度的欧几里得空间,每一位点对应于一个点。这些点是有限且各异的,则沃罗诺伊原胞表现为凸多胞形,由它们的顶点、边、二维面等的组合方式加以描述。有时引入的组合结构被称为沃罗诺伊图。然而,沃罗诺伊原胞不一定是凸形,甚至不一定是连通的。

平面绘制: 在平面上,绘制沃罗诺伊图的过程,只要将胞点连起来构成许多三角形,利用中垂线找外心,再将所有外心相连即可。

1324495n3mxin20xysqz8n.jpg

https://en.wikipedia.org/wiki/Voronoi_diagram:

As a simple illustration, consider a group of shops in a city. Suppose we want to estimate the number of customers of a given shop. With all else being equal (price, products, quality of service, etc.), it is reasonable to assume that customers choose their preferred shop simply by distance considerations: they will go to the shop located nearest to them. In this case the Voronoi cell \scriptstyle R_k of a given shop \scriptstyle P_k can be used for giving a rough estimate on the number of potential customers going to this shop (which is modeled by a point in our city).

For most cities, the distance between points can be measured using the familiar Euclidean distance: \ell_2 = d\left[\left(a_1, a_2\right), \left(b_1, b_2\right)\right] = \sqrt{\left(a_1 - b_1\right)^2 + \left(a_2 - b_2\right)^2} or the Manhattan distance:d\left[\left(a_1, a_2\right), \left(b_1, b_2\right)\right] = \left|a_1 - b_1\right| + \left|a_2 - b_2\right|. The corresponding Voronoi diagrams look different for different distance metrics.

Voronoi diagrams of 20 points under two different metrics (2-模, 1-模)

Voronoi diagram under Euclidean distance   Voronoi diagram under Manhattan distance

Higher-order Voronoi diagrams

Although a normal Voronoi cell is defined as the set of points closest to a single point in S, an nth-order Voronoi cell is defined as the set of points having a particular set of n points in S as its n nearest neighbors.  Higher-order Voronoi diagrams also subdivide space.

Higher-order Voronoi diagrams can be generated recursively.  To generate the nth-order Voronoi diagram from set S, start with the (n − 1)th-order diagram and replace each cell generated by X = {x1x2, ..., xn−1} with a Voronoi diagram generated on the set S − X.

 

On the Structure of Higher Order Voronoi Cells - arXiv 1811.10257.pdf

"Centroidal Voronoi tessellations: Applications and algorithms" SIAM Review 41 (1999), no. 4, pp. 637–676: http://www.personal.psu.edu/staff/q/u/qud2/Res/Pre/dfg99sirv.pdf

An Optimization Model of Molecular Voronoi Cells in Computational Chemistry.pdf

opt.png

Voronoi_growth_euclidean.gif 



https://blog.sciencenet.cn/blog-498408-1159245.html

上一篇:兔普里昂蛋白ASP177-ARG163 (O-N)这一盐桥的发现过程
下一篇:[转载]Aβ的前体蛋白—淀粉样前体蛋白(APP)竟然存在我们不曾知晓的作用途径
收藏 IP: 218.185.16.*| 热度|

0

评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

全部作者的精选博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-27 18:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部