本文共 1617 字,大约阅读时间需要 5 分钟。
![](https://img-blog.csdn.net/20140901131845009?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ05ISzEyMjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这是点到线段的距离 不是点到直线的距离:
public double PointLine_Disp(double xx, double yy, double x1, double y1, double x2, double y2) { double a, b, c, ang1, ang2, ang, m; double result = 0; //分别计算三条边的长度 a = Math.Sqrt((x1 - xx) * (x1 - xx) + (y1 - yy) * (y1 - yy)); if (a == 0) return -1; b = Math.Sqrt((x2 - xx) * (x2 - xx) + (y2 - yy) * (y2 - yy)); if (b == 0) return -1; c = Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); //如果线段是一个点则退出函数并返回距离 if (c == 0) { result = a; return result; } //如果点(xx,yy到点x1,y1)这条边短 if (a < b) { //如果直线段AB是水平线。得到直线段AB的弧度