Как отсортировать произвольные точки так, чтобы при проведении линии через них последовательно получился многоугольник?
Есть несколько точек в двухмерном пространстве, совершенно произвольные могут быть (но не могут совпадать).
Нужно отсортировать их так, чтобы при последовательном проведении линии через все эти точки получился - не самопересекающийся многоугольник.
Как это сделать? Существует ли вообще алгоритм, который способен на подобное?
Ну или подойдёт какая-нибудь библиотека на C# или C++, которая просто возьмёт и сделает это.