Найти центральную линию к заданному списку (симпозиальных) линий - PullRequest
0 голосов
/ 25 июня 2018

Я в настоящее время борюсь с текущей проблемой: я определил n строк (с SymPy).В конце они должны описать многоугольник.(См. Цель на изображении)

Теперь я хочу найти «среднюю» или «центральную» линию этих полигонов.Моей первой мыслью было поставить круг между строк.Но: Как алгоритм узнает, какие линии являются противоположными, чтобы поставить «шарик» между?

Так что в принципе я могу определить линию для начала.Сейчас я ищу линию с ближайшим расстоянием и так далее.Но это решение не кажется мне достаточно общим, чтобы можно было охватить все типы многоугольников.

Как я могу написать свой сценарий, чтобы он мог создавать центральную линию многоугольника (или линии в примере e) из списка линий симпати?

Я также кое-что готов«Скелетонизация», но это, кажется, больше подходит для пиксельных изображений.

Большое спасибо!С уважением, Бенни

Примеры случаев

1 Ответ

0 голосов
/ 25 июня 2018

Я не уверен, насколько общим должно быть ваше решение, но вот метод, который должен работать, чтобы найти среднюю строку для трех вариантов использования в ссылке:

Предположим, одна синяя линия определяется какточки (B1, B2) и другая синяя линия определяются точками (D1, D2).Я бы создал две новые линии: одну, соединяющую B1 и D1, а другую, соединяющую B2 и D2.Используя SymPy, легко определить среднюю точку отрезка.Желаемой красной линией будет линия, соединяющая среднюю точку сегмента (B1, D1) и сегмента (B2, D2).

Это должно работать без изменений для (a) и (b);Случай (с) может быть решен с той же идеей, если вы не забываете обрабатывать каждую пару отрезков линии отдельно.Наслаждайтесь!

...