开发者

Getting closest coordinates closest to point in array

开发者 https://www.devze.com 2023-02-15 08:54 出处:网络
I have one point (hereafter referred to as the original point) on a grid, say for example, [3, 3]. I also have a set of points that are in the same horizontal and vertical lines as the original point

I have one point (hereafter referred to as the original point) on a grid, say for example, [3, 3].

I also have a set of points that are in the same horizontal and vertical lines as the original point, say, [[3,1],[3,2],[3,4],[7,3],[8,3]].

I want some function that will return an array of at most four points: the points closest to the original point in each direction (i.e. left, right, above, below). With the example above, it would return,

[开发者_Python百科[3,2],[3,4],[7,3]]

because [3,2] is the closest point on the left, [3,4] is the closest point on the right, [7,3] is the closest point above, and there are no points below. (Order of direction is not important.)

Is there an elegant and reasonably concise way to do this, using Javascript/JQuery?


I don't know JavaScript, but the following algorithm would be very simple, if you can formulate it with JavaScript.

Let (X0, Y0) be the original point.

Iterate through the array, [(X1, Y1), ..., (XN, YN)], and keep account of the minimum values of

R = Xi - X0 > 0

and

L = X0 - Xi > 0

as you proceed. At the end of the iteration these values give you the closest points, i.e., X0 + R and X0 - L.

Do a similar iteration on the vertical line of points.

0

精彩评论

暂无评论...
验证码 换一张
取 消