Мне нужен хороший алгоритм для вычисления точки, ближайшей к набору линий в python, предпочтительно с использованием метода наименьших квадратов. Я нашел этот пост о реализации Python, которая не работает:
Нахождение центра нескольких линий с использованием метода наименьших квадратов в Python
И я нашел этот ресурс в Matlab, который всем нравится ... но я не уверен, как преобразовать его в python:
https://www.mathworks.com/matlabcentral/fileexchange/37192-intersection-point-of-lines-in-3d-space
Мне трудно поверить, что кто-то еще этого не сделал ... конечно, это часть numpy или стандартный пакет, верно? Я, наверное, просто не ищу правильные термины - но я пока не смог его найти. Я бы хорошо с определением линий по две точки каждая или точка и направление. Любая помощь будет принята с благодарностью!
Вот пример набора точек, с которыми я работаю:
начальные точки XYZ для первого набора линий
array([[-7.07107037, 7.07106748, 1. ],
[-7.34818339, 6.78264559, 1. ],
[-7.61352972, 6.48335745, 1. ],
[-7.8667115 , 6.17372055, 1. ],
[-8.1072994 , 5.85420065, 1. ]])
углы, принадлежащие первому набору линий
[-44.504854, -42.029223, -41.278573, -37.145774, -34.097022]
начальные точки XYZ для второго набора линий
array([[ 0., -20. , 1. ],
[ 7.99789129e-01, -19.9839984, 1. ],
[ 1.59830153e+00, -19.9360366, 1. ],
[ 2.39423914e+00, -19.8561769, 1. ],
[ 3.18637019e+00, -19.7445510, 1. ]])
углы, принадлежащие второму набору линий
[89.13244, 92.39087, 94.86425, 98.91849, 99.83488]
Решение должно быть источником или очень близко к нему (данные просто немного шумят, поэтому линии не идеально пересекаются в одной точке).