一、三个点计算平面表达式
void threepointToPlane()
{
double p1[3] = { 2,5,14 };
double p2[3] = { 0,35,7 };
double p3[3] = { 16,3,9 };
平面 Ax+By+Cz+D=0
double A = (p3[1] - p1[1])*(p3[2] - p1[2]) - (p2[2] - p1[2])*(p3[1] - p1[1]);
double B = (p3[0] - p1[0])*(p2[2] - p1[2]) - (p2[0] - p1[0])*(p3[2] - p1[2]);
double C = (p2[0] - p1[0])*(p3[1] - p1[1]) - (p3[0] - p1[0])*(p2[1] - p1[1]);
double D = -(A*p1[0] + B*p1[1] + C*p1[2]);
}
二、三维空间点集拟合平面