点到空间平面的距离

计算公式::

 

 

 

struct Point{
    double x;
    double y;
    double z;
}

struct PlaneEquation{
    double A;
    double B;
    double C;
    double D;
}


//计算点到面距离
double dist(Point &pt, PlaneEquation &pe) //Distance between point and plane
{
    double dt = 0.0;
    double mA, mB, mC, mD, mX, mY, mZ;

    mA = pe.A;
    mB = pe.B;
    mC = pe.C;
    mD = pe.D;

    mX = pt.X;
    mY = pt.Y;
    mZ = pt.Z;

    if (mA*mA + mB*mB + mC*mC)// 如果mA*mA + mB*mB + mC*mC==0  说明面缩成点
    {
        dt = abs(mA*mX + mB*mY + mC*mZ + mD) / sqrt(mA*mA + mB*mB + mC*mC);
    }
    else
    {
        std::cout << "空间面方程输入错误::系数全为零!!!!";
        dt = pt.mod();
    } // The plane is reduced to the origin. point(pt) to point(zero) distance.
    return dt;
}

 

posted @ 2019-09-11 14:38  玥茹苟  阅读(918)  评论(0编辑  收藏  举报