我有一堆 vecmathPoint
对象 ( Point3d
FWIM),我想根据它们之间的距离对它们进行“分组”。我可能可以从头开始为此编写代码(我在 excel 中完成了类似的任务),但我喜欢尽可能使用现有库的想法。问题是我找不到这样的库。
我还没有完全考虑过确切的算法,但我希望我已经做了足够多的事情,以免问题被删除。请多多包涵,在发这篇文章时我还是新手。
我想分组将按如下方式工作:
- 决定
distanceLimit
- 循环1:对于每个
Point
,计算彼此的距离Point
- 做一个“集”
循环 2:对于每个
Point
如果下一个
Point
在distanceLimit
之前考虑Points
到 i 的范围内,则将其添加到当前的“Set”中否则制作一个新的“Set”。
编辑:啊表达一个人的想法的力量。上面没有捕捉到点 1 和 2 相隔一到两个 distanceLimits 并启动单独的“集合”的情况,并且点 3 出现在它们之间的中间,这意味着所有三个都应该真正在一组中。需要再考虑一下这个!
我也不确定我应该真正为输入和输出使用什么数据结构(ArrayLists?Sets?)。理想情况下,我正在寻找执行此操作或类似操作的现有库;如果您确信没有一个,那么任何关于算法或实际代码的建议都会非常受欢迎。