根据它们之间的距离“分组”vecmath Point 对象
“Group” vecmath Point objects based on the distance between them
我有一大堆 vecmath Point
对象 (Point3d
FWIM),我想根据它们之间的距离“分组”。我可能可以从头开始为此编写代码(我在 excel 中完成过类似的任务),但我喜欢尽可能使用现有库的想法。问题是我找不到这样的库。
我还没有完全想清楚具体的算法,但我希望我已经做得足够多了,问题不会被删除。请耐心等待,我post.
时这里还是新的
我想分组会按如下方式工作:
- 决定
distanceLimit
- 循环1:对于每个
Point
,计算彼此的距离Point
- 做一个"Set"
循环 2:对于每个 Point
如果下一个 Point
在之前考虑的任何 Points
的 distanceLimit
之内,直到 i,将其添加到当前 "Set"
否则制作一个新的"Set".
编辑:啊,表达一个人的想法的力量。上面没有捕捉到点 1 和点 2 相隔一到两个 distanceLimits 并启动单独 "sets" 并且点 3 突然出现在它们之间的情况,这意味着所有三个都应该在一个集合中。需要再考虑一下!
我也不确定我应该真正使用什么数据结构来输入和输出(ArrayLists?Sets?)。
理想情况下,我正在寻找一个可以执行此操作或类似操作的现有库;如果您确信没有,那么任何关于算法或实际代码的建议都将非常受欢迎。
经过多次谷歌搜索后,我发现:
- 我尝试做的是聚类;
- this 做了我想做的事;它对我的效果给我留下了深刻的印象。
我有一大堆 vecmath Point
对象 (Point3d
FWIM),我想根据它们之间的距离“分组”。我可能可以从头开始为此编写代码(我在 excel 中完成过类似的任务),但我喜欢尽可能使用现有库的想法。问题是我找不到这样的库。
我还没有完全想清楚具体的算法,但我希望我已经做得足够多了,问题不会被删除。请耐心等待,我post.
时这里还是新的我想分组会按如下方式工作:
- 决定
distanceLimit
- 循环1:对于每个
Point
,计算彼此的距离Point
- 做一个"Set"
循环 2:对于每个
Point
如果下一个
Point
在之前考虑的任何Points
的distanceLimit
之内,直到 i,将其添加到当前 "Set"否则制作一个新的"Set".
编辑:啊,表达一个人的想法的力量。上面没有捕捉到点 1 和点 2 相隔一到两个 distanceLimits 并启动单独 "sets" 并且点 3 突然出现在它们之间的情况,这意味着所有三个都应该在一个集合中。需要再考虑一下!
我也不确定我应该真正使用什么数据结构来输入和输出(ArrayLists?Sets?)。 理想情况下,我正在寻找一个可以执行此操作或类似操作的现有库;如果您确信没有,那么任何关于算法或实际代码的建议都将非常受欢迎。
经过多次谷歌搜索后,我发现:
- 我尝试做的是聚类;
- this 做了我想做的事;它对我的效果给我留下了深刻的印象。