这里是维诺图的解释,因为我之前用的是egret写的一个三国游戏,对地图进行维诺图划分势力,所以用的文中最后一个Js的库。在游戏中引入了维诺图。
http://baike.baidu.com/view/6090879.htm
https://zh.wikipedia.org/wiki/%E6%B2%83%E7%BD%97%E8%AF%BA%E4%BC%8A%E5%9B%BE
http://baike.baidu.com/item/voronoi
又叫冯洛诺伊图(Voronoi diagram) 泰森多边形
问题:给定平面中N个点,对于每个点Pi,平面中距离Pi点比距离其它点更近的点的区域是什么?即区域内的任意一点(x,y),距Pi比距离平面中的其它点都近。
平面绘制
在平面上,绘制沃罗诺伊图的过程,只要将胞点连起来构成许多三角形,利用中垂线找外心,再将所有外心相连即可。
Delaunay三角剖分算法
点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术。尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都和Delaunay三角剖分相关,如Voronoi图,EMST树,Gabriel图等。Delaunay三角剖分有最大化最小角,“最接近于规则化的“的三角网和唯一性(任意四点不能共圆)两个特点。
偶图(bigraph)是有两个相互独立的位置图和连接图构成。偶图的概念是由图灵奖获得者Milner提出的,其目的为普适计算提供统一的元模型。
若无向图G =
相关有用的博客
http://blog.sina.com.cn/s/blog_5c9288aa010144c7.html
http://www.csie.ntnu.edu.tw/~u91029/VoronoiDiagram.html
http://blog.sina.com.cn/s/blog_5fe823a50100dun6.html
http://www.tuicool.com/articles/YZV7ji
java 算法
http://www.cs.cornell.edu/Info/People/chew/Delaunay.html
c语言实现
http://blog.csdn.net/vernice/article/details/46558823
最靠谱
http://www.itdadao.com/articles/c15a224768p0.html
http://blog.csdn.net/k346k346/article/details/52244123
如何生成
http://blog.csdn.net/gdut2015go/article/details/48208983
生成维诺图的两种方式: 适量法,栅格生成法
http://blog.sina.com.cn/s/blog_a46817ff0101awtq.html
http://www.cppblog.com/eryar/archive/2014/04/30/206781.html
方法:
常见的有分治法、扫描线算法和Delaunay三角剖分算法。
git hub上的一个生成方式 js
https://github.com/rjanicek/voronoi-map-js
https://github.com/gorhill/Javascript-Voronoi (我用这个实现了)