| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > определение области |
| Автор: Evghenusi 11.8.2014, 21:42 |
| Доброго времени суток. Задача наверно окажется на уровне 5 класса, но я не могу её решить Нужно определить над какой областью находится курсор мыши. У области 4 координаты (может и больше, но давайте разберёмся с 4 Координаты области могут задаваться в любом направлении, по часовой стрелке или против. У курсора соответственно тоже есть кординаты. Дабы проще было понять о чём речь, представим карту дачных участков. Пробовал все координаты сравнивать с "мышиными", если одни больше других, записывать кол-во в счётчик. Идея была такая, что если полученное значение будет меньше 1 или больше (кол-ва - 1) координат области, значит курсор за областью участка, иначе мы нашли область. Но идея оказалась глупой. Что ещё придумать, не знаю. |
| Автор: Pavia 11.8.2014, 22:01 |
| Evghenusi, http://www.rsdn.ru/Info/Howtoask.xml |
| Автор: Evghenusi 11.8.2014, 22:50 |
| Pavia, спс) список прочёл, промах обнаружил. Ребята, помогите пожалуйста. Благодарен вам даже за то что заглянули в тему, а не прошли мимо. Добавлено через 5 минут и 9 секунд http://jsfiddle.net/13ruvnuv/ |
| Автор: Dremuk 12.8.2014, 10:09 |
| НЕ совсем понятен вопрос. Дайте больше конкретики или пример какой-нибудь графический Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/opredeleniye-oblasti-id53e90f2fae201538468b4567#findElement_E7045_53e9bdafae2015e241b41760_0 |
| Автор: Evghenusi 12.8.2014, 21:53 | ||
| Хочу сделать карту с участками, которые будут выделяться при наведении на них курсора/стрелки мыши. Щас событие "onclick" (ссылка на пример выше) , в планах "onmousemove", Но не в этом суть! Я не знаю как проверять координаты, поэтому и прошу у вас помощи, может натолкнёте на путь истинный. Своё виденье описал словами и показал кодом. Так же мне посоветовали координаты проверить и определить крайнюю левую точку и от неё шагать .... это я к -
Так же советуют разобрать карту гугла, а именно искать "Poligon" в API , только я боюсь утону. |
| Автор: Dremuk 12.8.2014, 22:17 |
| в чем делаете это? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/opredeleniye-oblasti-id53e90f2fae201538468b4567#findElement_E7045_53ea6831ae20152131b41d4f_0 |
| Автор: Evghenusi 12.8.2014, 22:26 |
| язык? JavaScript Вот только загвоздка не в языке, а рациональном мышлении, поэтому я и заглянул в этот раздел) |
| Автор: baldina 12.8.2014, 23:11 |
| Evghenusi, строите отрезок, пересекающий экран, например с координатами {(0,0),(mouseX,mouseY)} для каждой области (которая на самом деле есть многоугольник) проводите https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D0%B0%D0%B4%D0%BB%D0%B5%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D1%82%D0%BE%D1%87%D0%BA%D0%B8_%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D1%83 на попадание мыши в неё: подсчитываете число пересечений этого отрезка с отрезками, ограничивающими область. если число пересечений нечетное, значит мышь внутри. особый случай - попадание мыши точно в вершину, но для вашей задачи думаю это не важно |
| Автор: baldina 13.8.2014, 00:00 |
| http://jsfiddle.net/dzqzLbwm/ |
| Автор: Evghenusi 13.8.2014, 00:07 |
| нуууу, зачем код, я сам хотел. Ладно, сначала сам поковыряю, если не получится загляну. baldina, спасибо |
| Автор: AVA12 14.8.2014, 12:07 |
| Возможно, ответ не в тему, но если нужно реализовать карту в HTML-документе, то для этого есть теги <map> и <area>. Никаких хитрых алгоритмов, можно на каждую область навесить свои обработчики событий :) |