首页 > 解决方案 > 如何找出最接近的坐标?

问题描述

我想知道如何将我的坐标计算为一组坐标并找出最接近的坐标?

让我们说:

var player = {
  x: 10,
  y: 20
}

var box = [
  {x: 17, y: 30},
  {x: 41, y: 14},
  {x: 20, y: 30}
];

所以我的播放器停留在 10、20。而且我有 3 个不同的盒装,我需要找出哪个最接近。有没有简单的计算方法?

标签: javascriptjquery

解决方案


您可以通过检查每个距离来计算距离并减少数组并返回最短的对象。

function getDistance(p1, p2) {
    return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2))
}

var player = { x: 10, y: 20 },
    box = [{ x: 17, y: 30 }, { x: 41, y: 14 }, { x: 20, y: 30 }];

console.log(box.reduce((a, b) => getDistance(a, player) < getDistance(b, player) ? a : b));


推荐阅读