powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / По заданной точке найти полигон
19 сообщений из 19, страница 1 из 1
По заданной точке найти полигон
    #37303258
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, пожалуйста, алгоритм нахождения полигона которому принадлежит заданная точка.
Суть такова:
Есть полигоны(выпуклые и не выпуклые без самопересечений)
Нужно определить вхождение точки в полигон.
Пробовал перебирать все полигоны проверяя на вхождение точки(методом луча, подсчёт углов, триангуляция) предварительно выбрав полигоны которые могут попасть под условия отбора(т.е. плюс минус X Y), но быстродействие никакое.
Может кто то сталкивался с данной задачей.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37303775
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

Цифры, статистика, подробности?
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304485
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,

Таблица ~3 млн строк(id,lat, lon), от 8 секунд, экспериментирую пока.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304493
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полигоны имеют от 400 до 23000 точек
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304582
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

О как.

Т. е. единицы тысяч полигонов. Могут пересекаться?
Ортодромия в данной проекции (ребро многоугольника) и на данных растояниях, надеюсь, считается отрезком прямой?
Сколько можно отдать памяти (оперативки и дисковой) под постороение вспомогательных индексов?
Сколько сейчас в процентном соотношении занимает поиск многоугольников-кандидатов к процедуре определения попадания точки внутрь многоугольника?
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304619
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,

Могут иметь общие точки.
Пока на плоскости считаю.
Хочется вообще отказаться от таблицы(в бинарном виде как то хочу всё это описать, пока объёмы большие получаются).
Поиск многоугольников-кандидатов, при использовании таблицы на сервере сейчас самая не трудозатратная операция.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304661
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Точки-то понятно как заданы... А сами полигоны каким методом задаются?
И кстати, сколько примерно "кандидатов" в среднем набирается каждый раз?
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304673
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Полигоны задаются точками которые описывают полигон по часовой стрелке(первая точка <> последней).
В среднем 2-3 кандидата отбираются.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304677
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

если поиск кандидатов - "дешёвая" задача, и многоугольники могут иметь общие точки (а то и рёбра?), то надо упрощать сами многоугольники, превращая их в набор выпуклых многугольников, а в пределе - треугольников. Но это стОит памяти.

Насчёт желания - поимайте сначала одного зайца.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304682
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,
Да, треугольники самое оптимальное, но память!
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304684
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

ну а в абсолютном времени, если есть самый большой по количеству вершин многоугольник, сколько работает процедура определения попадания точки?
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304697
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бенедикт,

Пока неприемлемо вообще по времени.
Смысл примерно в следующем (в идеале), переместил курсор и получил номер страны, федерального округа, района, улуса.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304709
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты через API делаешь свои регионы? можно было бы тогда PtInRegion заюзать
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304712
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут выкладывал, тебе надо насоздавать свои регионы в коде при открытии формы, потом только поиск по массиву созданных регионов.

Помогите пож
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304715
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Пробовал - при большом количестве точек неприемлемо.
Хотя пробовал так «на посмотреть» надо ещё разок попробовать.
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304718
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timtim,

понятно, что неприемлемо, не понятно, почему. Тот же метод трассировки луча линеен по количеству рёбер. Даже при 23000 он должен отрабатывать менее чем за секунду, IMHO. На каком этапе задержка?
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304720
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже самое можно и полиполигонам делать, API посмотри соответствующее. когда-то делал графическую рисовалку , где линии со стрелками тягал , как раз рисовал через APIполигоны и искал их по координатам мыши, работало очень шустро
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304758
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я возьму тайм-аут, что бы не пудрить Вам мозг.
У меня смешалось всё(в коде, голове). Надо всё переосмыслить и опробовать ещё раз.
Спасибо за ответы!
...
Рейтинг: 0 / 0
По заданной точке найти полигон
    #37304789
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / По заданной точке найти полигон
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]