如何计算空间一条直线外一点到这条直线的垂足点坐标
示例代码:
/计算空间一条直线外一点到这条直线的垂足点坐标。 Point3f CoreAlgorithm::GetFootOfPerpendicular( const Point3f &pt, // 直线外一点 const Point3f &begin, // 直线开始点 const Point3f &end) // 直线结束点 { Point3f retVal; double dx = begin.x - end.x; double dy = begin.y - end.y; double dz = begin.z - end.z; if (abs(dx) < 0.00000001 && abs(dy) < 0.00000001 && abs(dz) < 0.00000001) { retVal = begin; return retVal; } double u = (pt.x - begin.x)*(begin.x - end.x) + (pt.y - begin.y)*(begin.y - end.y) + (pt.z - begin.z)*(begin.z - end.z); u = u / ((dx*dx) + (dy*dy) + (dz*dz)); retVal.x = begin.x + u*dx; retVal.y = begin.y + u*dy; retVal.z = begin.z + u*dz; return retVal; }
在光笔的实验中使用过,验证正确,可以大胆使用此函数。
个人公众号: