Алгоритм определения замкнутого контура из множества контуров

Автор Тема: Алгоритм определения замкнутого контура из множества контуров  (Прочитано 7386 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Павел55Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Суть задачи: после извлечения горизонталей и границы из поверхности необходимо создать контур из всех полилиний(см. Рис1). То есть это должна быть функция, использующая средства API AutoCAD, которая принимает два набора (Selection) полилиний и возвращает полилинию.
Длинна границы поверхности может содержать в себе до 3-4 тыс точек и иметь длинну в несколько км, при этом там может быть очень много коротеньких полилиний (Горизонталей), которые эту границу пересекают . При извлечении границы -  вершины этой границы всегда идут по ходу часовой стрелки, а вот вершины горизонталей могут идти и по часовой и против(всегда рандомно). При извлечении из поверхности, горизонтали в коллекцию тоже добавляются рандомно.
Проблема в том, что нельзя использовать TraceBoundary -  срабатывает только на маленьких простых контурах. С предложениями о цене писать в ЛС. 





Оффлайн Alex.gomel

  • ADN OPEN
  • Сообщений: 12
  • Карма: 4
Извлечь координаты вершин всех полилиний - получиться своеобразное облако точек. По облаку точек построить минимальную выпуклую оболочку (МВО).

Оффлайн Павел55Автор темы

  • ADN OPEN
  • ***
  • Сообщений: 106
  • Карма: 3
Извлечь координаты вершин всех полилиний - получиться своеобразное облако точек. По облаку точек построить минимальную выпуклую оболочку (МВО).
МВО - строится так, что внутри контура могут быть точки, этот алгоритм не подходит. Мне нужен такой контур - чтоб не было ни одной точки внутри. Если посмотреть на Рис1 - то контур должен быть ограничен желтыми горизонталями там, где они есть и зеленой границей, где нет горизонталей.Тут на ум приходит только одно - последовательный обход всех сегментов границы и поиск таких горизонталей, которые этот контур пересекают.

Оффлайн vsoroka750

  • ADN OPEN
  • Сообщений: 7
  • Карма: 0
Здравствуйте.
Для какой версии Автокада нужно сделать? Нет ли файла .dwg? (чтобы получше представить какими массивами исходные данные заданы).