Сообщество программистов Autodesk в СНГ

Разное => Работа для программистов => Работа для разработчиков => Тема начата: Павел55 от 08-05-2020, 14:12:13

Название: Алгоритм определения замкнутого контура из множества контуров
Отправлено: Павел55 от 08-05-2020, 14:12:13
Суть задачи: после извлечения горизонталей и границы из поверхности необходимо создать контур из всех полилиний(см. Рис1). То есть это должна быть функция, использующая средства API AutoCAD, которая принимает два набора (Selection) полилиний и возвращает полилинию.
Длинна границы поверхности может содержать в себе до 3-4 тыс точек и иметь длинну в несколько км, при этом там может быть очень много коротеньких полилиний (Горизонталей), которые эту границу пересекают . При извлечении границы -  вершины этой границы всегда идут по ходу часовой стрелки, а вот вершины горизонталей могут идти и по часовой и против(всегда рандомно). При извлечении из поверхности, горизонтали в коллекцию тоже добавляются рандомно.
Проблема в том, что нельзя использовать TraceBoundary -  срабатывает только на маленьких простых контурах. С предложениями о цене писать в ЛС. 

(https://i.postimg.cc/GTRQcV03/image.jpg) (https://postimg.cc/GTRQcV03)

(https://i.postimg.cc/cKVhz6Xn/2.jpg) (https://postimg.cc/cKVhz6Xn)
Название: Re: Алгоритм определения замкнутого контура из множества контуров
Отправлено: Alex.gomel от 08-05-2020, 14:41:17
Извлечь координаты вершин всех полилиний - получиться своеобразное облако точек. По облаку точек построить минимальную выпуклую оболочку (МВО).
Название: Re: Алгоритм определения замкнутого контура из множества контуров
Отправлено: Павел55 от 08-05-2020, 15:30:25
Извлечь координаты вершин всех полилиний - получиться своеобразное облако точек. По облаку точек построить минимальную выпуклую оболочку (МВО).
МВО - строится так, что внутри контура могут быть точки, этот алгоритм не подходит. Мне нужен такой контур - чтоб не было ни одной точки внутри. Если посмотреть на Рис1 - то контур должен быть ограничен желтыми горизонталями там, где они есть и зеленой границей, где нет горизонталей.Тут на ум приходит только одно - последовательный обход всех сегментов границы и поиск таких горизонталей, которые этот контур пересекают.
Название: Re: Алгоритм определения замкнутого контура из множества контуров
Отправлено: vsoroka750 от 12-05-2020, 20:50:51
Здравствуйте.
Для какой версии Автокада нужно сделать? Нет ли файла .dwg? (чтобы получше представить какими массивами исходные данные заданы).