一、三个点计算平面表达式
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]);
}
二、三维空间点集拟合平面
struct Sphere
{
int id;
double SphereCenter[3];
};
void ImgPlaneFitting(const vector<Sphere> &ImgSphSortOrder,vector<double> ¶meter)
{
vector<double> Pointsx;
vector<double> Pointsy;
vector