Ваш вопрос звучит для меня как «найти многоугольник с заданным набором точек в качестве вершин». Верна ли эта интерпретация?
Если это так, вы можете сделать следующее: Создать выпуклую оболочку из своеготочки.Уберите эти точки из рассмотрения и возьмите выпуклый корпус из оставшихся точек.Продолжайте в том же духе, пока не останется больше точек.Промежуточным результатом будет последовательность выпуклых многоугольников, вложенных друг в друга.Вы можете превратить их в один многоугольник, соединив каждую последующую пару многоугольников.Вы соединяете два многоугольника, удаляя ребро из каждого и соединяя полученные конечные точки «наоборот».Необходимо позаботиться о том, чтобы эти соединения не перекрывали что-либо еще, но это не должно быть слишком сложно.
Обратите внимание, что есть много возможных результатов, удовлетворяющих спецификации, когда я ее читаю.Если вам нужен конкретный вариант, вам нужно будет подробно описать критерии этого выбора.