Немного, но одним из способов будет вычисление ковариационной матрицы точек, а затем ее диагонализация.Если точки действительно плоские, то одно из собственных значений ковариационной матрицы будет равно нулю (или, скорее, очень мало, из-за арифметики конечной точности), и соответствующий собственный вектор будет нормалью к плоскости;два других собственных вектора будут охватывать плоскость многоугольника.Если у вас есть N точек, а i-я координата k-й точки равна p [k, i], то средняя (векторная) и (3x3) ковариационная матрицы могут быть вычислены как
m[i] = Sum{ k | p[k,i]}/N (i=1..3)
C[i,j] = Sum{ k | (p[k,i]-m[i])*(p[k,j]-m[j]) }/N (i,j=1..3)
Обратите внимание, что C симметричен, поэтому, чтобы узнать, как его диагонализировать, вам может понадобиться поискать «симметричную проблему собственных значений»