创建仅限于边界框的Voronoi多边形图



我想得到一个50 X 50域内一组点的Voronoi多边形图。所有的voronoi脊都应该在边界框的边上剪裁,并且voronoi顶点应该位于边上或边界框内。然而,这是我使用scipy.spatial.Voronoi 获得的图像

在框边界处切断所有延伸到框边界之外的单元格的最简单方法是执行以下操作:

  1. 将原始数据集("Voronoi种子"(反射到长方体的每条边上,在本例中创建4个新数据集,每个数据集都是其中一条边上原始点集的镜像。

  2. 将原始数据集和这四个新数据集视为一组点,并运行Voronoi算法,用这个新的、放大的集创建Voronai分区。原始集中那些单元将延伸到边界之外的点现在将被它们的镜像所满足,并且它们的单元将根据您的意愿在边界处被剪切。

  3. 现在只需忽略步骤1中生成的额外点,就可以只使用原始点集对原始边界框进行Voronoi分区,边缘附近的单元被框的边界整齐地截断。

反射步骤并不困难;如有必要,我可以详细说明。

这种方法确实将点数乘以5,这显然增加了完成Voronoi计算的时间。根据你的点数,这可能会成为一个问题。人们可以通过只反射那些细胞实际上延伸到盒子之外的点来加快速度;这需要更多的逻辑,但也是可行的。

最新更新