4

我有一个二维空间中的坐标列表(x i, y i)。如何找到一个坐标(X,Y),使其与其他给定坐标之间的距离最小?是否有一个数学公式可以解决(X,Y)?

让我举个例子。假设我有坐标列表 (0,0);(1,0);(0,1);(-1,0);(0,-1); 现在我必须找出可能的坐标(一个或多个),以使生成的坐标与所有点的距离最小。在这种情况下(0,0)。

正如 Voo 所说,这是我的要求: 找到一个点,使到给定集合中的点的距离之和最小

4

4 回答 4

2

假设您要寻找最接近给定点的候选人

您正在询问最近的邻居搜索

最简单的方法就是遍历每个候选坐标,计算欧几里得距离(假设您想要一个欧几里得度量),并跟踪最小值。这足够了吗?

更复杂(但可能更快)的方法包括将您的候选点存储在例如空间分区树中,例如四叉树或 kd-tree,或其他几种变体之一。

于 2012-05-09T13:43:42.957 回答
1

要求:找到一个点,使到给定集合中的点的距离之和最小。

与所有其他点的欧式距离和最小的点具有:

x = 集合中所有 X 的
平均平均值 y = 集合中所有 Y 的平均平均值

于 2012-05-24T14:37:30.910 回答
1
public Coord2D minDistance(List<Coord2D> coordinates, Coord2D someCoord) {
   float minDistance = Float.MAX_VALUE;
   Coord2D result;
   for (Coord2D coord : coordinates) {
       float distance = Math.sqrt(Math.pow((coord.x - someCoord.x), 2) + (Math.pow((coord.y - someCoord.y), 2))
       if (distance < result) { 
           result = coord;
           minDistance = distance;
       }
   }

   return result;
}
于 2012-05-09T13:45:08.010 回答
0

您可以使用欧几里得距离公式计算两点之间的距离:squareroot((x1-X)²+(yi-Y)²) 或者您可以使用曼哈顿公式:|yi-Y|+|xi-X|。

这是寻路问题吗?

于 2012-05-09T13:42:41.657 回答