public double[] JudgeLine(Point pnt,Point[] pts)//在线上进行判断
{
double[] results = new double[pts.Length];
for (int i = 0; i < pts.Length;i++)
{
for (int j = i + 1; j <= pts.Length; j++)
{
if (Math.Abs( j - i) > 1) { break; }//进行不重复的判断,1.2,2.3,1,3
if (j == pts.Length)
{
j = 0;
}
double SE = (Math.Sqrt(((Math.Abs(pts[i].X - pts[j].X)) * (Math.Abs(pts[i].X - pts[j].X))) + ((Math.Abs(pts[i].Y - pts[j].Y)) * (Math.Abs(pts[i].Y - pts[j].Y)))));
double xS = (Math.Sqrt(((Math.Abs(pnt.X - pts[i].X)) * (Math.Abs(pnt.X - pts[i].X))) + ((Math.Abs(pnt.Y - pts[i].Y)) * (Math.Abs(pnt.Y - pts[i].Y)))));
double xE = (Math.Sqrt(((Math.Abs(pnt.X - pts[j].X)) * (Math.Abs(pnt.X - pts[j].X))) + ((Math.Abs(pnt.Y - pts[j].Y)) * (Math.Abs(pnt.Y - pts[j].Y)))));
double result = xS + xE - SE;
results[i] = result;
if (j == 0)
{ break; }
}
}
return results;
}
..
http://blog.youkuaiyun.com/zj_alex/article/details/8646724 一个简单的winform程序