我希望尝试创建一种洪水填充算法,但是这种算法会将空间分成凸多边形区域。
就我的应用程序拥有的数据而言,它只有一个正方形网格,在每个正方形中都包含与基本方向相邻正方形的连接。如果一个正方形被阻塞或以某种方式无效,则我正在测试的正方形在该方向上将没有连接。下面的屏幕截图说明了我的意思,其中黑色正方形是无效的,并代表对象的边界: 我现在想做的是尝试设计一种算法,使我可以将每个网格方块标记为属于凸多边形区域,最好只有尽可能少的区域(即偏爱较大的凸多边形区域而不是许多小碎片)。类似下面这样,每种颜色代表不同的凸多边形区域:
就我的应用程序拥有的数据而言,它只有一个正方形网格,在每个正方形中都包含与基本方向相邻正方形的连接。如果一个正方形被阻塞或以某种方式无效,则我正在测试的正方形在该方向上将没有连接。下面的屏幕截图说明了我的意思,其中黑色正方形是无效的,并代表对象的边界: 我现在想做的是尝试设计一种算法,使我可以将每个网格方块标记为属于凸多边形区域,最好只有尽可能少的区域(即偏爱较大的凸多边形区域而不是许多小碎片)。类似下面这样,每种颜色代表不同的凸多边形区域:
这个问题是否有已知的算法?我查看了一些泛洪填充算法,但似乎没有一个能够形成这样的凸多边形。
谢谢!