Как отсортировать произвольные точки так, чтобы при проведении линии через них последовательно получился многоугольник?
Точки, соединённые в любом порядке, дадут многоугольник. Он может быть самопересекающимся или невыпуклым, но у вас в задаче никаких ограничений нет.
Самый правильный путь - найти геометрический центр скопления, и от него перейти в радиальные координаты, двигаясь по кругу соединить все точки. 
Второй, и как мне кажется на порядок более простой вариант - находим геометрический центр скопления, делим область на 4 части осями х и у, далее сверху вниз проходим каждую из них, соединяя каждую нижележащую с предыдущей (полинейное сканирование). Крайние точки областей соединяем - профит.