Я разбираю некоторые данные, заданные в виде массива сегментов линии, которые описывают несколько замкнутых произвольных фигур/полигонов. Эти формы могут быть вогнутыми. Вот упрощенный пример того, что я смотрю на:Сортировка и группировка массива сегментов линий, описывающих полигоны
Однако данные я предоставленные сегменты в произвольном порядке. Например, мои данные будут такими, как {V,E,D,X,U,A,Z,C,B,W,Y}
. Таким образом, построение сегментов отображает правильные фигуры, но делать какие-либо операции с фигурами не легче.
Я пытаюсь сортировать массив выше, чтобы каждый сегмент закрытой формы следовал в порядке соединения, а сегменты каждой фигуры сгруппированы.
Так
{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} ]
является столь же действительным результатом.
Я не испытываю геометрии пересечения, и мои рудиментарные попытки и беглый поиск в Интернете не дали никаких быстрых решений. Я смотрел в вогнутые корпуса, но это кажется излишним, учитывая, что данные уже знают связи между точками.
Посмотрите на мой ответ (раздел редактирования) здесь: http://stackoverflow.com/questions/41245408/ – MBo