获得距离数组中最近点的最近坐标

时间:2011-03-07 03:21:41

标签: javascript jquery arrays

我在网格上有一个点(以下称为原始点),例如[3, 3]

我还有一组与原始点位于同一水平和垂直线上的点,例如[[3,1],[3,2],[3,4],[7,3],[8,3]]

我想要一些函数将返回最多四个点的数组:每个方向上最接近原点的点(即左,右,上,下)。通过上面的例子,它会返回,

[[3,2],[3,4],[7,3]]

因为[3,2]是左边最近的点,[3,4]是右边最近的点,[7,3]是上面最近的点,下面没有点。 (方向顺序并不重要。)

使用Javascript / JQuery,是否有一种优雅且相当简洁的方法?

1 个答案:

答案 0 :(得分:2)

我不了解JavaScript,但如果您可以使用JavaScript进行表达,则以下算法将非常简单。

(X0, Y0)成为原始点。

遍历数组[(X1, Y1), ..., (XN, YN)],并记录

的最小值

R = Xi-X0> 0

L = X0 -Xi> 0

当你继续。 在迭代结束时,这些值为您提供最接近的点,即X0 + RX0 - L

在垂直线上进行类似的迭代。