Сортировка вершин полигона по часовой или против часовой стрелки

Есть хаотичный набор отрезков полигона(полигон может быть любой, но без дырок и лежит в одной плоскости): PiPj = { {x1,y1,z1}, {x2,y2,z2}};

std::vector<std::array<Vec, 2>> lines = {P7P8, P2P1, P5P6, ... }

введите сюда описание изображения

Мои вопросы:

  1. Как мне отсортировать этот набор отрезков так, чтобы он был по cw/ccw ?
  2. Как найти угол, который больше 180 градусов. Пример такого угла на схеме: P5P6P7.

Ответы (0 шт):