Найти кратчайшую линейную линию между двумя точками, избегая при этом 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)

но я в полном недоумении от того, что делать дальше. Любая подсказка будет оценена.

0 ответов

Другие вопросы по тегам