Сортировка набора трехмерных точек по часовой стрелке / против- порядок по часовой стрелке

В трехмерном пространстве у меня есть неупорядоченный набор, скажем, из 6 точек; примерно так:

           (A)*
                          (C)*
(E)*
                         (F)*
     (B)*

                  (D)*

Точки образуют трехмерный контур, но они неупорядочены. Для неупорядоченных я имею в виду, что они хранятся в

unorderedList = [A - B - C - D - E - F]

. Я просто хочу реорганизовать этот список, начиная с произвольного места (скажем, точки A) и перемещаясь по точкам по часовой стрелке или против часовой стрелки. Примерно так:

orderedList = [A - E - B - D - F - C]

или

orderedList = [A - C - F - D - B - E]

Я пытаюсь реализовать алгоритм как можно проще, так как упомянутый набор точек соответствует N-кольцевой окрестности каждой вершины на сетке из ~ 420000 точек, и Я должен сделать это для каждой точки на сетке.

Некоторое время назад было аналогичное обсуждение относительно точек в 2-D, но сейчас мне не ясно, как отойти от этого подхода. к моему трехмерному сценарию.

10
задан Community 13 April 2017 в 12:18
поделиться