小编Jér*_*ôme的帖子

在没有for循环的情况下计算Python中点数组到线段之间的欧几里德距离

我正在寻找一个函数来计算具有两个坐标 (x, y) 和线段的 numpy 点数组之间的欧几里得距离。我的目标是在 0.01 秒内获得线段和 10k 点的结果。

我已经找到了一个单点函数。但是运行 for 循环非常低效。

我还发现了这个计算到无限线距离的函数:

def line_dists(points, start, end):
    if np.all(start == end):
        return np.linalg.norm(points - start, axis=1)

    vec = end - start
    cross = np.cross(vec, start - points)
    return np.divide(abs(cross), np.linalg.norm(vec))
Run Code Online (Sandbox Code Playgroud)

它非常有效,我想对有界线采用类似的方法。

感谢您的帮助。

python geometry numpy euclidean-distance

5
推荐指数
1
解决办法
1746
查看次数

标签 统计

euclidean-distance ×1

geometry ×1

numpy ×1

python ×1