我试图围绕2D孔创建一个Voronoi图(最好是在PyGame或scipy中,但不是必需的)并保存边缘。它看起来应该是这样的:
我已经能够使用scipy's Voronoi生成点周围的图表,但我不确定如何处理2D障碍。
我使用积分的代码是:
FormatNumber()
基本上,我想输入2D障碍物(也可能是相邻/接触以形成更大的障碍物)并生成一组与这些障碍物等距的线。
答案 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
。