非重叠对象之间的岛多边形的算法名称

algorithm name for island polygons between non overlapping objects

我正在寻找算法名称,但无法确定是哪种算法。我的任务是,

鉴于: 1.Size父容器的(Width,Height) 2.Position (X,Y) 和 size(Width,Height) 用于多个矩形和方形粒子,这些粒子不能彼此重叠并且可以放入容器中

任务: 当用户点击一个空白点时,逆时针或顺时针查找空白多边形点

我试过的是,

我的代码

https://pastebin.com/2cnMb67G

while ((islandCurrentX != islandStartX || islandCurrentY != islandStartY) && count < 500)
                                                {
                                                    int tempIslandX = (islandCurrentX == -1 ? islandStartX : islandCurrentX);
                                                    int tempIslandY = (islandCurrentY == -1 ? islandStartY : islandCurrentY);
                                                    //break;
                                                    count++;

但是如果我按照这个,当我到达空白部分的底部后,它再次逆时针而不是顺时针。 我应该在互联网上搜索什么算法? 还有一件事,我寻找了用于像素级数据表的连接组件算法。但我有位置和大小数据表。如果我将其转换为像素方式,我的 windows 表单 (C#) 将在搜索过程中变慢。 (需要在每次点击时进行搜索)。 提前致谢

感谢您抽出宝贵时间。我通过在每次移动后改变连续的方向来做到这一点。 https://pastebin.com/dNrHFn5W

(开头为)

List<Point> points = new List<Point>();
DataRow[] drNearestTop = dtCurrentPattern.Select("Starting_Y+Image_Length<" + controlRelatedCoords.Y + " and Starting_X<=" + controlRelatedCoords.X + " and Starting_X+Image_Width>=" + controlRelatedCoords.X + "");

此致