首页 > 其他 > 详细

点(x3,y3)到经过点(x1,y1)和点(x2,y2)的直线的最短距离

时间:2015-08-07 12:59:28      阅读:189      评论:0      收藏:0      [点我收藏+]

/// <summary>
/// 点(x3,y3)到经过点(x1,y1)和点(x2,y2)的直线的最短距离
/// </summary>
/// <param name="pt1"></param>
/// <param name="pt2"></param>
/// <param name="pt3"></param>
/// <returns></returns>
public static double GetMinDistance(MapPoint pt1, MapPoint pt2, MapPoint pt3)
{
double dis = 0;
if (pt1.X == pt2.X)
{
dis = Math.Abs(pt3.X - pt1.X);
return dis;
}
double lineK = (pt2.Y - pt1.Y) / (pt2.X - pt1.X);
double lineC = (pt2.X * pt1.Y - pt1.X * pt2.Y) / (pt2.X - pt1.X);
dis = Math.Abs(lineK * pt3.X - pt3.Y + lineC) / (Math.Sqrt(lineK * lineK + 1));
return dis;
}

点(x3,y3)到经过点(x1,y1)和点(x2,y2)的直线的最短距离

原文:http://www.cnblogs.com/gotoschool/p/4710214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!