Найти кратчайшую линейную линию между двумя точками, избегая при этом n-стороннего многоугольника
Я пытаюсь найти самую короткую линию между двумя точками. Существует ограничение на наличие n-стороннего многоугольника, возможно, непосредственно между двумя точками. Мне не разрешено пересекать многоугольник, а только проходить через его края.
например.
start = (2,0)
end = (0,1)
poly = [(1,0),(1,1),(1,2),(2,1)]
пропуск его через функцию выведет 2.41
пока у меня есть
from shapely.geometry import LineString, Polygon, Point
def shortest_linestring(start, end, poly):
poly = Polygon(poly)
p1 = Point(start)
p2 = Point(end)
но я в полном недоумении от того, что делать дальше. Любая подсказка будет оценена.