Ordenar lista de puntos en polígono

Tengo un conjunto de puntos. Este conjunto de puntos define un polígono (no convexo) pero no está ordenado.

Como no está ordenado, no puedo simplemente dibujar de punto a punto para dibujar su borde. ¿Cómo puedo ordenarlo de una manera que pueda recorrer esta lista de puntos y dibujar un polígono?

Mi primera idea fue usar un casco convexo, pero mis polígonos son, la mayoría de las veces, cóncavos.

Respuestas a la pregunta(3)

Su respuesta a la pregunta