找到所有坐标点之间的成对距离,用共线点过滤距离

时间:2020-12-29 20:11:14

标签: python-3.x scipy geometry

我正在寻求有关工作流程的帮助,该工作流程在给定 (x, y) 平面中的任意数量的点的情况下,可以找到连接 2 个(且仅 2 个)点的所有线段。我的第一个想法是使用 scipy.spatial.distance.pdist() 获得所有唯一的成对距离,然后对于两点之间的每个距离,测试其他任何点是否共线。我可以想象这种方法在处理大量点时会变得效率低下,所以我想知道是否有人知道解决这个问题的更有效方法。

这个问题很笨拙,所以我将提供一个例子。我有一个包含 3 个 (x, y) 坐标点 coords = [(1,1), (2,1), (3,1)] 的列表,它们恰好形成一条直线,并且想要找到连接 2 个(并且只有 2 个)点的所有线段的长度。对于此示例,我只有两条长度为 1 的线段符合我的条件(从 (1,1)(2,1),以及 (2,1)(3,1))。我可以使用 scipy.spatial.distance.pdist() 获得点之间的所有成对距离,但该函数的结果包括 (1,1)(3,1) 之间的距离,这是我不想要的。

我的首选语言是 Python,但我愿意接受其他编码语言的答案。

0 个答案:

没有答案
相关问题