本站所有资源均为高质量资源,各种姿势下载。
本项目是一个基于 MATLAB 平台开发的计算几何系统,专注于二维空间离散点集的 Voronoi 图(泰森多边形)构建、精确裁剪与定量分析。该系统解决了常规 Voronoi 算法在有限边界下产生无限区域(Infinite Cells)难以计算面积的问题,通过算法优化实现了每一个 Voronoi 单元的精确闭合与参数提取。程序集成了数据生成、算法构建、几何计算、可视化展示及数据结果输出等全流程功能,适用于空间划分分析、晶粒度模拟及基站选址等理论研究与工程应用。
polyshape、voronoin、intersect 等内置几何函数)。polyshape 对象)。main.m 脚本。本项目主要由以下四个核心模块构成,严格对应 main.m 中的逻辑流程:
voronoin 函数生成的边界单元往往是开放的(顶点包含 Inf)。为了获得精确的闭合多边形,本代码实现了3x3 镜像平铺策略:
系统将原始的 N 个种子点在 X 和 Y 方向分别进行平移(-1, 0, 1),通过 9 个方位的复制构建包含 9N 个点的“超级点集”。
对超级点集执行 voronoin 算法。由于原始点位于 3x3 网格的中心(即第5号位置),被周围的镜像点包围,因此原始点对应的 Voronoi 单元必定是闭合的有限多边形。程序通过索引计算(Index = 4N + k),精确提取出原始点集对应的 Voronoi 单元拓扑结构。polyshape 对象进行几何处理:
多边形重构:根据提取的顶点索引,将离散坐标重构为多边形对象。
边界裁剪:通过 intersect 函数计算当前 Voronoi 单元与定义好的矩形边界框的“交集”。这一步至关重要,它将超出画布的多余部分切除,生成最终有效的几何形状。
参数计算:利用 area 函数直接计算裁剪后的多边形面积,并通过 .Vertices 属性获取其最终的顶点坐标序列。subplot 构建双子图界面:
左图(面积热力分布):通过计算每个单元面积在整体面积范围内的归一化值,从 Parula 色图中获取对应颜色进行填充。面积越大的区域颜色越暖,反之则越冷。同时绘制红色虚线边界框。
右图(几何信息标注):使用灰色半透明填充背景,利用 centroid 函数计算多边形质心。在质心位置标注单元编号(ID)和保留三位小数的面积值,并标记原始种子点位置。
文本输出:最后,程序遍历所有计算结果,将每个单元的 ID、面积(保留6位小数)和顶点数量格式化打印到控制台,并提示内部变量的存储结构,方便用户进行二次开发或数据调用。