Понятие «сортировка по часовой стрелке» не определено, если у вас нет предварительно заданной центральной точки.
Если все, что у вас есть, это просто куча точек, которые вам нужно отсортировать, и вы не знаете центр заранее, тогда проблема обычно не имеет единого решения. Проблема состоит из множества альтернативных решений, каждая из которых даст вам другой полигон.
Кроме того, поиск центра, который позволит вам повторно создать исходный многоугольник с помощью сортировки по CW (или CCW), возможен только для специального класса полигонов: так называемых star-shaped полигонов. Основное свойство звездообразного многоугольника состоит в том, что можно найти точку внутри многоугольника, из которой «внутреннее» многоугольник является «наблюдаемым» (я надеюсь, что без определения ясно, что означает «наблюдаемое»).
Если ваш многоугольник не имеет звездной формы, то такой центр не существует. И по этой причине невозможно повторно создать исходный многоугольник с помощью сортировки по CW.
Ваш контур коровы на картинке, очевидно, не является звездообразным многоугольником, а это значит, что вы никогда не сможете воссоздать оригинальный контур коровы, отсортировав точки вокруг какого-либо центра, любого центра. Нет «правильного пути». Это невозможно.
Учитывая, что многоугольник просто определяется его точками и является невыпуклым, я не уверен, что есть решение без каких-либо дополнительных ограничений. Непонятно, что многоугольник однозначно определен. – Keith