点到平面直线的距离和空间直线的距离

1、点到平面直线的距离:

 

 代码:


double pt3dToLine(double* pt0, double* pt1, double* pt2) {
// 使用空间直线的两点式,pt0为直线外一点.
double t = ((pt2[0] - pt1[0]) * (pt0[0] - pt1[0]) +
(pt2[1] - pt1[1]) * (pt0[1] - pt1[1])) /
((pt2[0] - pt1[0]) * (pt2[0] - pt1[0]) +
(pt2[1] - pt1[1]) * (pt2[1] - pt1[1]));


double Xc = (pt2[0] - pt1[0]) * t + pt1[0];
double Yc = (pt2[1] - pt1[1]) * t + pt1[1];


double d = sqrt((pt0[0] - Xc) * (pt0[0] - Xc) +
(pt0[1] - Yc) * (pt0[1] - Yc)); // 求解二范数
return d;
}

 

 

2、点到空间直线的距离:

 

 

 

 

 

 

//使用空间直线的两点式(X0 Y0 Z0)为直线外一点

Xc = (x2-x1)*t+x1;
yc = (y2-y1)*t+y1;
Zc = (z2-z1)*t+z1;   //垂足

t = ((X2-X1)*(X0-X1)+(Y2-Y1)*(Y0-Y1)+(Z2-Z1)*(Z0-Z1))/((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1)+(Z2-Z1)*(Z2-Z1))

d=sqrt((X0-Xc)*(X0-Xc)+(Y0-Yc)*(Y0-Yc)+(Z0-Zc)*(Z0-Zc))  //求解二范数

 

posted @ 2019-09-11 15:23  玥茹苟  阅读(4819)  评论(0编辑  收藏  举报