Potrzebujesz pomocy tutaj. Jestem projektantem interfejsu użytkownika, który nie jest dobry w liczbach i tworzy eksperymentalny formularz internetowy i muszę wiedzieć, który element wejściowy jest najbliżej klikniętego punktu na stronie internetowej. Wiem, jak zrobić sąsiad z punktami, ale elementy wejściowe to prostokąty, a nie punkty, więc utknąłem.Znajdowanie elementu najbliżej klikniętego punktu
Używam jQuery. Potrzebuję pomocy w tym małym algo. Kiedy skończę eksperyment, pokażę wam, co robię.
UPDATE
myślałem o tym, jak to działa. Spojrzeć na tym rysunku:
każdego prostokąta ma 8 punktów (raczej 4 punktów i 4 linii), które mają istotne znaczenie. Tylko wartość x jest znacząca dla punktów poziomych (czerwona kropka) i tylko wartość y jest znacząca dla punktów pionowych (zielona kropka). Zarówno x, jak i y są znaczące dla rogów.
Pomarańczowe krzyże są punktami, od których należy mierzyć - kliknięcia myszą w moim przypadku użycia. Jasnopurpurowe linie to odległości między pomarańczowym krzyżem i możliwym najbliższym punktem.
Więc ... dla każdego pomarańczowego krzyża, przechodź przez każdy z 8 punktów n każdego prostokąta, aby znaleźć najbliższą krawędź lub róg najbliższy każdego prostokąta do pomarańczowego krzyża. Prostokąt o najniższej wartości jest najbliższy.
Potrafię konceptualizować i wizualizować to, ale nie mogę umieścić go w kodzie. Wsparcie!
pomocą 4 punktów, które reprezentują prostokąt w swoim algorytm najbliższego sąsiada. Lub użyj środkowego punktu prostokąta cx = (lewa + szerokość)/2, cy = (góra + wysokość)/2. –
jest szansa, że możesz napisać jakiś kod lub coś zrobić w jsfiddle.net? to wszystko jest trochę hipotetyczne, inaczej ... – T9b
Dodano ilustrację wyjaśniającą problem i sposób jego rozwiązania. –