zl程序教程

您现在的位置是:首页 >  其他

当前栏目

泰森多边形的matlab绘制

2023-03-14 22:42:26 时间

版权声明:本文为CSDN博主「hyhhyh21」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_42943114/article/details/82461228

1 Voronoi图简介

泰森多边形是对空间平面的一种剖分,其特点是多边形内的任何位置离该多边形的样点(如居民点)的距离最近,离相邻多边形内样点的距离远,且每个多边形内含且仅包含一个样点。由于泰森多边形在空间剖分上的等分性特征,因此可用于解决最近点、最小封闭圆等问题,以及许多空间分析问题,如邻接、接近度和可达性分析等。


泰森多边形的构建可以分为2个步骤,1是Delaunay三角网的构建,2是三角网格外接圆心得连线。


之前我有写过一篇文章,主要是泰森多边形的边缘绘制。内边的思路是根据每一个三角形的Delaunay三角网关系,去依次连接每个相邻三角形外接圆心得到。外边的思路是根据每个外接圆圆心和相应边缘做中垂线得到的。


实心带色彩的Voronoi图主要是通过matlab里的patch()函数实现的。

具体用法可以参见matlab的官方帮助:https://ww2.mathworks.cn/help/matlab/ref/patch.html


其中本文最主要的用法是


patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','flat');

1

v是一系列点矩阵,f是多边形对应的点的编号,col是多边形的颜色,取[0,1]。


根据前两篇文章里的算法,已知所有的初始点xdot,和已经构建关系的三角形网格。之后循环每一个初始点,依次连接点初始点周围三角形的外接圆心即可。

matlab自带的代码

image.png

通过修改代码,得到如下结果

image.png


————————————————