我有一些浮点坐标的二维点(x,y),当我绘制它们时,需要根据一个固定大小的矩形将靠近彼此的点分组。问题是这些矩形不应相交且所有相邻的点都应该被分组。
如果你身边有一张纸,可以画一个大矩形,比如4*5cm - 所有点所在的区域。现在随机放置点,如果两个点之间的距离为1厘米,则它们应该被分组到一个2*3的矩形中。
我找不到如何实现它的算法,并且性能也很重要... 我查找了嵌套、聚类等算法,但我需要的有点不同。顺便说一句,如果有些分组矩形必须超出公共区域以符合条件,那就让它存在吧,这不是问题。例如,你有一个4*5的区域和一些点。
(1,0), (2,1), (4,1), (4,3), (2,4)
那么结果应该像这样:
矩形(0,0-3,2)和(3,1-6,3),还有一个剩下的点(2,4)
,因为所有其他点都被分组了,而此点现在没有任何邻居。我的点坐标不是整数,而是浮点数,点的数量可以达到几百个(多达500个)。我不想将区域分成相同的矩形,只是计算有多少点在其中。我的意思是,例如上面的例子中,我可以制作矩形(0,0-3,2),(3,0-6,2),(0,3-3,6),(3,3-6,6),并总结第一个矩形的2个点,第二个矩形的1个点(!)表示保持原样,第三个矩形的1个点和第4个矩形的1个点=>将绘制一个矩形和所有其他点=>根据任务得出错误的结果。 有什么想法吗?至少哪些算法可能有帮助,去哪里寻找...
P.S. 目前结果中的组/点数并不重要,即上面的另一个允许的结果可能是(1,0-4,2)和(2,2-5,4)矩形,没有剩余的点。