JavaScript Ближайшая точка от мыши

Прежде чем комментировать, да, я также проверил и другие вопросы... например эта статья или эта или даже вот этот. Однако я не мог найти, как установить точку происхождения. Итак, скажем, у меня есть координаты X изображения массива и координаты изображения Y

(по сетке 100*100) х/у 92/81 82/47 81/03

Теперь у меня есть мышь X и мышь Y. Кто-нибудь знает, как сделать функцию, которая дает вам ближайшие значения точек x и y в JavaScript?

Заранее спасибо!


person Pancake_    schedule 09.03.2018    source источник


Ответы (1)


Просто сделайте немного векторной математики. Учитывая изображения и положение касания:

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

Просто пройдитесь по ним и рассчитайте длину векторов расстояния:

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;
  }
}

Векторы

Вычисление длины

person Jonas Wilms    schedule 09.03.2018