通过集群,我的意思是链接重叠圆圈的组。这张图片可能让我更好地了解我要查找的内容:
在我的数据中,圆由它们的中心点坐标表示。我已经完成了碰撞检测以生成代表重叠的成对中心点列表:
pts = [(-2,2), (-2,2), (0,0), (2,1), (6,2), (7,1)]
overlaps = [
(pts[0], pts[1]),
(pts[0], pts[2]),
(pts[1], pts[2]),
(pts[2], pts[3]),
(pts[4], pts[5]),
]
这是预期的结果:
expected_clusters = [
((-2,2), (-2,2), (0,0), (2,1)),
((6,2), (7,1))
]
在实践中,我将使用的数据集大约是这个大小,所以我可能永远不需要扩大它。但这并不是说我不赞成更优化的解决方案。
我想出了自己的幼稚解决方案,我将把它作为答案发布。但我有兴趣看到其他解决方案。