locked
关于坐标计算最近点问题,大家有什么方法建议 RRS feed

  • 问题

  • System.Drawing.PointF pf;
    pf.X=228;
    pf.Y=336;
    现有已知站点都放到List集合中了,
    List<System.Drawing.PointF> list;
    我怎么根据pf当前位置去匹配List 与我最近的点了,大家帮我想想啊,怎么计算了
    2012年11月16日 4:53

答案

  • int minLength = 0;
    PointF miniPoint = new PointF(0,0);
    bool isFirst = true;
    foreach (var temp in list)
    {
      //勾股定理
      var val = Math.Pow(Math.Abs(temp.Y - pf.Y),2) 
      + Math.Pow(Math.Abs(temp.X - pf.X),2)
      if (isFirst)
      {
        miniLength = val;
        miniPoint = temp;
        isFirst = false;
      } 
      else
      {
        if (val < miniLength)
        {
          miniLength = val;
          miniPoint = temp;
        }
      }
    }
    我想这里的miniPoint应该就是最近点的坐标了。


    2012年11月17日 0:54