Добрый день!
Вопрос фундаментальный, задача житейская:
В чертеже dwg имею N полигонов, расположенных хаотично, которые могут между собой пересекаться.
Нужно эти объекты растащить так, чтобы они НЕ пересекались.
Что я придумал: к примеру из dxf извлекаем xy 1 вершины, xy 2 вершины, получаем таблицу id / name / x1 / y1 / x2 / y2. Загоняем в СУБД и каким-то хитрым запросом пытаемся найти свободные места, куда полигон бы встал минимально отдаляясь от начального положения.
Идея есть - реализация по мне возможная, просто достаточными знаниями в сфере топологии не обладаю, прошу вашей помощи, Гисы!
Расположить объекты на чертеже без пересечений
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 09 дек 2022, 08:27
- Репутация: 0
- Откуда: Moscow
-
- Гуру
- Сообщения: 4069
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1064
- Ваше звание: программист
- Откуда: Казань
Re: Расположить объекты на чертеже без пересечений
это типичная типа "укладки рюкзака потряхиванием" (simulated annealing), либо просто итерационным. Целевая функция - площадь пересечения, число пересечений, и т.д., параметры - центры полигонов. Работает долго, но для современных компьютеров годится. И делается, конечно, никак не методом "Загоняем в СУБД и каким-то хитрым запросом пытаемся найти свободные места"
Для автокада должны быть готовые нахлобучки, например для размещения непересекающихся надписей.
Для автокада должны быть готовые нахлобучки, например для размещения непересекающихся надписей.
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 09 дек 2022, 08:27
- Репутация: 0
- Откуда: Moscow
Re: Расположить объекты на чертеже без пересечений
Спасибо, что-то подобное мне и нужно реализовать
-
- Гуру
- Сообщения: 4069
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1064
- Ваше звание: программист
- Откуда: Казань
Re: Расположить объекты на чертеже без пересечений
К ГИС эта задача не имеет отношения, это в чистом виде машинное проектирование. Еще есть похожая задача раскроя, но там нет ограничения на величину сдвига, там нужно просто разместить непересекающиеся фигуры на листе. Сами вы это не реализуете (судя по первому сообщению), задача трудозатрадная, и делать ее под вас никто не будет. Значит, ищите готовое на профильный сайтах/форумах.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя