0

我有一堆 vecmathPoint对象 ( Point3dFWIM),我想根据它们之间的距离对它们进行“分组”。我可能可以从头开始为此编写代码(我在 excel 中完成了类似的任务),但我喜欢尽可能使用现有库的想法。问题是我找不到这样的库。

我还没有完全考虑过确切的算法,但我希望我已经做了足够多的事情,以免问题被删除。请多多包涵,在发这篇文章时我还是新手。

我想分组将按如下方式工作:

  1. 决定distanceLimit
  2. 循环1:对于每个Point,计算彼此的距离Point
  3. 做一个“集”
  4. 循环 2:对于每个Point

    • 如果下一个PointdistanceLimit之前考虑Points到 i 的范围内,则将其添加到当前的“Set”中

    • 否则制作一个新的“Set”。

编辑:啊表达一个人的想法的力量。上面没有捕捉到点 1 和 2 相隔一到两个 distanceLimits 并启动单独的“集合”的情况,并且点 3 出现在它们之间的中间,这意味着所有三个都应该真正在一组中。需要再考虑一下这个!

我也不确定我应该真正为输入和输出使用什么数据结构(ArrayLists?Sets?)。理想情况下,我正在寻找执行此操作或类似操作的现有库;如果您确信没有一个,那么任何关于算法或实际代码的建议都会非常受欢迎。

4

1 回答 1

0

经过更多的谷歌搜索,我发现:

  • 我想做的就是聚类;
  • 正是我想做的;它对我的效果给我留下了深刻的印象。
于 2020-05-19T10:59:31.073 回答