Вычислить евклидово расстояние между массивом точек и отрезком линии в Python без цикла forPython

Программы на Python
Anonymous
 Вычислить евклидово расстояние между массивом точек и отрезком линии в Python без цикла for

Сообщение Anonymous »

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

Спасибо за вашу помощь.

Подробнее здесь: https://stackoverflow.com/questions/544 ... segment-in

Вернуться в «Python»