我想尝试创建一个洪水填充型算法,但它会将空间分割成凸区域。
就我的应用程序的数据而言,它所拥有的只是一个正方形网格,其中每个正方形都包含与基本方向上的周围正方形的连接。如果一个正方形在某种程度上被阻塞或无效,那么我正在测试的正方形在这个方向上就没有连接。下面的截图说明了我的意思,其中黑色方块是无效的,表示对象的边界:
我现在想做的是试着想出一个算法,这意味着我可以标记每个网格正方形属于一个凸起区域,理想情况下区域尽可能少(即倾向于更大的凸起区域而不是大量的小碎片)。就像下面这样,每种颜色代表一个不同的凸起区域:
有已知的算法吗?我看过一些洪水填充算法,但似乎没有一个能够形成这样的凸形。
希望如此,谢谢你!
K-means聚类可用于尝试找到一些有趣的分区。
随意阅读更多细节在这里(https://www.cs.ubc.ca/~schmidtm/Courses/340-F17/L9.pdf)
有人在评论中提到,你的应用程序看起来有点像Voronoi图。