Я уже нашел функцию для одной точки. Но выполнение цикла 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