LPoint是自己定义的点
//点(p0) 到线段(p1,p2)的距离
double GroundFilter::xj2DistancePointAndLine( LPoint p0, LPoint p1, LPoint p2 )
{
double dis12 = xj2DistancePointAndPoint(p1, p2);//线段长度
double dis01 = xj2DistancePointAndPoint(p0, p1);//p1与p0的距离
double dis02 = xj2DistancePointAndPoint(p0, p2);//p2与p0的距离
double HalfC = (dis12 + dis01 + dis02) / 2;// 半周长
double s = sqrt(HalfC * (HalfC - dis12) * (HalfC - dis01) * (HalfC - dis02));//海伦公式求面积
double xj2DisPL = 2 * s / dis12;// 返回点到线的距离(利用三角形面积公式求高)
return xj2DisPL;
}
//点与点的平面距离
double GroundFilter::xj2DistancePointAndPoint(LPoint p1, LPoint p2 )
{
double x1=p1.x, y1=p1.y;
double x2=p2.x, y2=p2.y;
double dis=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
return dis;
}
---------------------
作者:累了就要打游戏
来源:CSDN
原文:https://blog.csdn.net/xinjiang666/article/details/83996798
版权声明:本文为博主原创文章,转载请附上博文链接!