Я анализирую некоторые данные, представленные в виде массива отрезков, описывающих несколько замкнутых произвольных фигур/многоугольников. Эти формы могут быть вогнутыми. Вот упрощенный пример того, на что я смотрю:
Однако предоставленные мне данные имеют сегменты в произвольном порядке. В примере мои данные будут примерно такими: {V,E,D,X,U,A,Z,C,B,W,Y}
. Таким образом, построение сегментов отображает правильные формы, но выполнение любых операций над фигурами не становится проще.
Я пытаюсь отсортировать приведенный выше массив так, чтобы сегменты каждой замкнутой формы следовали в порядке соединения, а сегменты каждой фигуры группировались вместе.
So
{V,E,D,X,U,A,Z,C,B,W,Y}
станет
[ {A,B,C,D,E} , {X,Y,Z} , {U,V,W} ]
Порядок каждой группы сегментов линии для меня не имеет значения, важно только, чтобы отдельные сегменты были в порядке. Меня также не волнует конкретный стартовый сегмент каждой группы.
Так что
[ {Y,Z,X} , {C,D,E,A,B} , {W,U,V} ]
является одинаково действительным результатом.
У меня нет опыта обхода геометрии, и мои элементарные попытки и беглый поиск в Интернете не дали быстрых решений. Я изучил вогнутые оболочки, но это кажется излишним, учитывая, что данные уже знают связи между точками.