Algorithm 一种将大面积分割成凸多边形的算法

Algorithm 一种将大面积分割成凸多边形的算法,algorithm,polygon,graph-algorithm,point-in-polygon,convex-polygon,Algorithm,Polygon,Graph Algorithm,Point In Polygon,Convex Polygon,我正在将A*寻路算法实现到基于网格的引擎中,但我希望在多边形区域中创建节点,而不仅仅是使用网格点 该地区将有障碍物,不应通过 我想知道是否有某种算法可以将一个有障碍物的较大区域分割成一个具有尽可能少的连接凸多边形的图形?有很多这样的算法。通常,您正在处理三角剖分算法。移除穿过障碍物的线,并可能在其上执行最短路径算法。我不知道为什么你想要最小数量的连接凸多边形,但是这同样可以做到。答案就是点的凸包。根据定义,一个多边形是其中最小的数。每个多边形都是连接图中的一个顶点,我将使用它来导航。我在想,拥有

我正在将A*寻路算法实现到基于网格的引擎中,但我希望在多边形区域中创建节点,而不仅仅是使用网格点

该地区将有障碍物,不应通过


我想知道是否有某种算法可以将一个有障碍物的较大区域分割成一个具有尽可能少的连接凸多边形的图形?

有很多这样的算法。通常,您正在处理三角剖分算法。移除穿过障碍物的线,并可能在其上执行最短路径算法。我不知道为什么你想要最小数量的连接凸多边形,但是这同样可以做到。答案就是点的凸包。根据定义,一个多边形是其中最小的数。

每个多边形都是连接图中的一个顶点,我将使用它来导航。我在想,拥有尽可能少的顶点将是最佳的优化;仅仅将区域分割成三角形并不能提供最小数量的节点。点的凸包不能工作,因为中间可能有障碍需要考虑。我不认为节点连接的最小数量是有帮助的。但是,在大多数情况下,你都可以找到它们,然后根据一些标准将它们删减,比如“路上的东西”之类的。