Нужна помощь здесь. Я дизайнер пользовательского интерфейса, который плохо разбирается в числах, занимаюсь экспериментальным дизайном веб-форм, и мне нужно знать, какой элемент ввода находится ближе всего к точке нажатия на веб-странице. Я знаю, как сделать ближайшего соседа с точками, но входные элементы представляют собой прямоугольники, а не точки, поэтому я застрял.
Я использую jQuery. Мне просто нужна помощь с этим маленьким алгоритмом. Как только я закончу свой эксперимент, я покажу вам, ребята, что я делаю.
ОБНОВЛЕНИЕ
Я думал о том, как это может работать. Посмотрите на эту диаграмму:
Каждый прямоугольник имеет 8 точек (точнее, 4 точки и 4 линии), которые являются значимыми. Только значение x имеет значение для горизонтальных точек (красная точка) и только значение y имеет значение для вертикальных точек (зеленая точка). И x, и y значимы для углов.
Оранжевые кресты — это точки, по которым нужно измерять — щелчки мышью в моем случае использования. Светло-фиолетовые линии — это расстояния между оранжевым крестом и его возможной ближайшей точкой.
Итак… для любого заданного оранжевого креста выполните цикл через каждую из 8 точек в каждом прямоугольнике, чтобы найти ближайший край или угол каждого прямоугольника, ближайший к оранжевому кресту. Прямоугольник с наименьшим значением является ближайшим.
Я могу концептуализировать и визуализировать это, но не могу поместить это в код. Помощь!