inline float point2line(float x1, float x2, float px, float y1, float y2, float py, float z1, float z2, float pz)
{
float deltax1 = px - x1, deltay1 = py - y1, deltaz1 = pz - z1;
float side1 = sqrt(deltax1*deltax1 + deltay1*deltay1 + deltaz1*deltaz1);
float deltax2 = px - x2, deltay2 = py - y2, deltaz2 = pz - z2;
float side2 = sqrt(deltax2*deltax2 + deltay2*deltay2 + deltaz2*deltaz2);
float deltax3 = x2 - x1, deltay3 = y2 - y1, deltaz3 = z2 - z1;
float side3 = sqrt(deltax3*deltax3 + deltay3*deltay3 + deltaz3*deltaz3);
float p = (side1 + side2 + side3)*0.5f;
return 2 * sqrt(p*(p - side1)*(p - side2)*(p - side3)) / side3;
}
x1,x2为直线上两点,px为需代入求距离的点