Это зависит от того, насколько сложна ваша изоповерхность, но простейшая вещь, которую я могу придумать, может сработать:
- Для каждой точки проецируйте на плоскость.Это даст вам набор точек в 2d.
- Убедитесь, что они отцентрированы, путем перевода в центроид или центр ограничительной рамки.
- Для каждой 2d точки выполните atan2 иполучить угол.atan2 просто помещает вещи в правильный квадрант.
- Порядок по этому углу
Если ваша изоповерхность / плоскость монотонно увеличивается в угле вокруг центроида, то это будет работать нормально.Если нет, то вам может понадобиться найти 2 ближайших соседа к каждой точке на плоскости и надеяться, что это сделает простой цикл.На первый взгляд, идея простого цикла может быть проще, потому что вам не нужно проектировать и вам не нужно вычислять углы - просто делайте все в 3d.