Я ищу функцию для вычисления евклидова расстояния между массивом точек с двумя координатами (x, y) и отрезком.Моя цель - получить результат менее 0,01 секунды для отрезка и 10 тыс. Точек.
Я уже нашел функцию для одной точки.Но запуск цикла 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))
Это очень эффективно, и я хотел бы иметь аналогичныйподход для ограниченной линии.
Спасибо за вашу помощь.