2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Выбор точек внутри многоугольников (вдали от границ)
Сообщение26.03.2014, 19:11 


03/05/11
23
Даны многоугольники в 2D списками координат вершин (XY).
Нужно выбрать точки внутри многоугольников так, чтобы расстояние от точек до сторон многоугольника было максимальным (т.е. точки должны быть "максимально внутри" многоугольников).

Всё усложняется тем, что многоугольники могут иметь много вершин (порядка 500) и выколотые области внутри себя (т.е. "дырки"). Дырки, естественно, заранее известны, но всё равно усложнение, что многоугольники не всегда сплошные. Пересечений сторон между собой кроме как в вершинах нет.

Хотелось бы получить советы как наиболее просто и быстро (в плане вычислений) выбрать точки.

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение26.03.2014, 19:37 
Аватара пользователя


31/10/08
1244
histrix
Триангуляция_Делоне

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение26.03.2014, 20:10 


03/05/11
23
Pavia в сообщении #841157 писал(а):


Кстати, я над этим задумывался (как одна из идей была), меня лишь смущает, что если у меня в многоугольнике 500-1000 точек, то может по времени занимать долго.

Думал может что есть побыстрее и кто вдруг знает. Ещё думал отфильтровать точки, чтобы те что очень близко не учитывать в алгоритме.. Но тут опасаюсь чего лишнего выкинуть (т.к. геометрия штука тонкая)

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение26.03.2014, 20:34 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Pavia в сообщении #841157 писал(а):
Триангуляция_Делоне

По-моему, ложный ход.
Задачка-то полимодальная, там может быть много максимумов.
А какова исходная "практическая" задача?

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение27.03.2014, 12:15 


03/05/11
23
Исходно я строю многоугольники на плоскости, и надо потом каждый многоугольник "раскрасить" определённым цветом на основании того какое значение принимает функция внутри многоугольника. Т.е. нужно брать внутри каждого многоугольника точки для определения в них значения функции.
Многоугольники (которые, по сути, состоят из кусочно-линейных кривых) чётко разграничивают плоскость на области со "специфическими" значениями функции, т.е. тут проблем нет, проблема только как оптимально взять точки для проверки внутри каждого многоугольника.

Вообще исходная проблема это Д-разбиение (ТАУ), но я описал примерно ситуацию для тех, кто Д-разбиение не знает.

Если много локальных максимумов - не беда, можно их все взять. Главное исключить точки совсем рядом с границей многоугольника (т.к. граница может быть не 100% точной)

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение27.03.2014, 13:19 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Контур обычно задаётся кольцевым списком вершин. Остров с озёрами - деревом таких списков.
Для раскраски особая точность, наверное, не нужна. Можно попытаться использовать что-нибудь вроде градиентного спуска: скорость изменения мин. расстояние не более единицы. А для выделения подозрительных областей - сетку, сначала - крупную...

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение27.03.2014, 14:18 


03/05/11
23
Уточню: внутри каждого многоугольника "функция" постоянна (т.е. градиент 0 везде в пределах каждого многоугольника). При этом границы многоугольников могут быть не совсем точными (всё же это кусочно-линейные аппроксимации гладких кривых). Потому точки у границы брать не и стоит, а брать надо поглубже.

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение27.03.2014, 15:02 
Заслуженный участник
Аватара пользователя


06/04/10
3152
histrix в сообщении #841607 писал(а):
Потому точки у границы брать не и стоит, а брать надо поглубже.

Гм, задача-то в этом и состоит :?

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 11:51 


03/05/11
23
может у математиков на математическом форуме dxdy тоже спросить? Это нормально будет? Если ответ найдётся, я его сюда тоже впишу.

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 12:35 
Заслуженный участник
Аватара пользователя


06/04/10
3152
Метод верификации нахождения точки внутри простого контура известен. По-простому - суммируются углы поворота рад.-вектора из точки в вершины. Для внутренних - пара Пи, для внешних - ноль. Можно обойтись без арк-функций.
Ну а дальше вижу только эвристику. Взять сторону, пощупать справа-слева. И двигаться боль-мень в сторону роста минимльного расстояния.
Возможно, с использованием ограниченности скорости роста, без подсчёта градиентов.
И помня о полимодальности...

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 14:47 


03/05/11
23
про точку в многоугольнике я в курсе.. Можно ещё лучи кидать (ray casting)...
А вот что такое "полимодальность" не в курсе (в контексте данной задачи особенно)

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 15:32 
Заслуженный участник
Аватара пользователя


06/04/10
3152
histrix в сообщении #842239 писал(а):
А вот что такое "полимодальность" не в курсе (в контексте данной задачи особенно)

Много точек экстремума.
Представьте себе канал с несколькими водохранилищами. В каждом - своя точка максимума расстояния до ближайшего берега.

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 19:15 


03/05/11
23
Я вот думаю, а не построить ли Срединную ось или Скелет. Только вопрос как это попроще сделать. Я вообще не программист. Матлаб с диаграммами Вороного и Делоне имеется. Может на сайте Матлаба чего откопается... Но вообще я рад всем советам как лучше делать (и правильно ли я делаю). Я отпишу, если что хорошее найдётся.

(Оффтоп)

P.S.: Математикам репост темы не понравился... Я того пункта правил и не заметил, уж очень маленький

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 19:37 
Заслуженный участник
Аватара пользователя


06/04/10
3152
histrix в сообщении #842352 писал(а):
Я вообще не программист.

Дай бог разобраться с алгоритмами...
histrix в сообщении #842352 писал(а):
Я вот думаю, а не построить ли

Очень может быть: нужная точка - на скелете. А "расстояние до берега" линейно вдоль каждого ребра.

 Профиль  
                  
 
 Re: Выбор точек внутри многоугольников (вдали от границ)
Сообщение28.03.2014, 19:43 


03/05/11
23
nikvic в сообщении #842378 писал(а):
Дай бог разобраться с алгоритмами...


(Оффтоп)

Это в плане? Сложные алгоритмы потому что, или в смысле что если с алгоритмами разбираться умею, то не важно, что не программист?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group