三维空间中点到平面的投影点坐标

代码:

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

 1 PointType RanSac::projectPointToPlane(PointType &pt, PlaneEquation &pe)
 2 {
 3     PointType ptemp;
 4     double abc = pe.A*pe.A + pe.B*pe.B + pe.C*pe.C;
 5 
 6     ptemp.x = ((pe.B*pe.B + pe.C*pe.C)*pt.x - pe.A*(pe.B*pt.y + pe.C*pt.z + pe.D)) / abc;
 7     ptemp.y = ((pe.A*pe.A + pe.C*pe.C)*pt.y - pe.B*(pe.A*pt.x + pe.C*pt.z + pe.D)) / abc;
 8     ptemp.z = ((pe.A*pe.A + pe.B*pe.B)*pt.z - pe.C*(pe.A*pt.x + pe.B*pt.y + pe.D)) / abc;
 9 
10     return ptemp;
11 }

猜你喜欢

转载自www.cnblogs.com/lovebay/p/11911483.html