生成围绕2D多边形的Voronoi图

时间:2016-03-15 15:27:41

标签: python graph graphics scipy pygame

我试图围绕2D孔创建一个Voronoi图(最好是在PyGame或scipy中,但不是必需的)并保存边缘。它看起来应该是这样的:enter image description here

我已经能够使用scipy's Voronoi生成点周围的图表,但我不确定如何处理2D障碍。

我使用积分的代码是:

FormatNumber()

基本上,我想输入2D障碍物(也可能是相邻/接触以形成更大的障碍物)并生成一组与这些障碍物等距的线。

2 个答案:

答案 0 :(得分:1)

您需要的结构是一个中轴。构造近似中轴的一种方式是产生孔之间的空间的受约束的Delaunay三角剖分。然后通过连接相邻三角形的圆周来形成中轴的边缘。有一个很好的matlab教程RENAME。例8是相关的位。

不幸的是,scipy没有受限制的Delaunay三角测量的实现。它只是具有无约束的Delaunay三角剖分和Vornoi图,它们彼此相互对立。你还需要别的东西。 here是常用的,似乎有python绑定。

答案 1 :(得分:0)

我发布了一个微型python软件包来制作它-voronoi-diagram-for-polygons。您可以从here中找到示例输出。应当事先指出,该程序包取决于shapely的v1.8.dev0,该程序仍在开发中。换句话说,pip无法自动安装它。您必须按照以下说明安装它:

pip install git+https://github.com/Toblerity/Shapely