JavaScript鼠标最近点

时间:2018-03-09 17:32:24

标签: javascript arrays mouse distance closest

在您发表评论之前,是的,我已经检查了其他问题以及...... 例如this articlethis one,甚至this one。但是,我无法找到如何设定原点。所以,让我们说我有一个阵列图片X coords和图片Y coords

(在100 * 100的网格上) x / y 81分之92 47分之82 81/03

现在我有了mouseX和mouseY。 有谁知道如何创建一个函数,在JavaScript中为您提供最接近的x和y值?

提前致谢!

1 个答案:

答案 0 :(得分:0)

做一些vecor数学。鉴于图像和触摸位置:

 const coords = [[92, 81],  [82, 47], [81, 03]];
 const touchX = 57, touchY = 84;

回过头来计算距离vecors长度:

let closest = [null, null];
let distance = Infinity;

for(const [x, y] of coords){
  let d = Math.sqrt((touchX - x) ** 2 + (touchY - y) ** 2);
  if(d < distance){
    closest = [x, y];
    distance = d;
  }
}

Vectors

Calculating the length