Страница 1 из 1

Расположить объекты на чертеже без пересечений

Добавлено: 09 дек 2022, 08:45
TiDi
Добрый день!
Вопрос фундаментальный, задача житейская:
В чертеже dwg имею N полигонов, расположенных хаотично, которые могут между собой пересекаться.
Нужно эти объекты растащить так, чтобы они НЕ пересекались.
Что я придумал: к примеру из dxf извлекаем xy 1 вершины, xy 2 вершины, получаем таблицу id / name / x1 / y1 / x2 / y2. Загоняем в СУБД и каким-то хитрым запросом пытаемся найти свободные места, куда полигон бы встал минимально отдаляясь от начального положения.
Идея есть - реализация по мне возможная, просто достаточными знаниями в сфере топологии не обладаю, прошу вашей помощи, Гисы!

Re: Расположить объекты на чертеже без пересечений

Добавлено: 09 дек 2022, 13:17
gamm
это типичная типа "укладки рюкзака потряхиванием" (simulated annealing), либо просто итерационным. Целевая функция - площадь пересечения, число пересечений, и т.д., параметры - центры полигонов. Работает долго, но для современных компьютеров годится. И делается, конечно, никак не методом "Загоняем в СУБД и каким-то хитрым запросом пытаемся найти свободные места" :mrgreen:

Для автокада должны быть готовые нахлобучки, например для размещения непересекающихся надписей.

Re: Расположить объекты на чертеже без пересечений

Добавлено: 10 дек 2022, 16:01
TiDi
Спасибо, что-то подобное мне и нужно реализовать

Re: Расположить объекты на чертеже без пересечений

Добавлено: 10 дек 2022, 17:48
gamm
К ГИС эта задача не имеет отношения, это в чистом виде машинное проектирование. Еще есть похожая задача раскроя, но там нет ограничения на величину сдвига, там нужно просто разместить непересекающиеся фигуры на листе. Сами вы это не реализуете (судя по первому сообщению), задача трудозатрадная, и делать ее под вас никто не будет. Значит, ищите готовое на профильный сайтах/форумах.