Получить площадь общего полигона

Автор Тема: Получить площадь общего полигона  (Прочитано 2436 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Как мне получить полигон
для того чтобы потом подсчитать площадь карты.
Прикладываю картинку для пояснения задачи

1) Зеленая полилиния это полигон, площадь которого мне нужно получить (как сумму полигонов А, B,C D,E)

2) черные квадраты - это локальные сектора, сторона каждого квадрата всегда константа.

3) Красные прямоугольники это области  графической заполненности каждого примитива AutoCAD.
(на картинке не стал разрисовывать прямоугольник каждого примитива выборочно показал для пояснения)

По пункту 3) есть еще такая проблемка.
Если я буду для многострочного текста использовать функцию Mtext.GeometricExtents,
то она мне возвращает прямоугольник больше чем сам MText занимает в  графике.
Единственное, что пока вижу - это разбить Metxt на DBtext'ы.

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








Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Получить площадь общего полигона
« Ответ #1 : 31-10-2018, 07:01:51 »
Хотя я тут еще немного подумал. Может же быть и такая ситуация (пустоты внутри карты).
На картинке синей заливкой показал, площадь, которую нужно получить.



Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить площадь общего полигона
« Ответ #2 : 03-11-2018, 15:44:34 »
Честно говоря не понял совсем ничего. Если есть готовый замкнутый полигон (полилиния), то его площадь можно получить из её же свойства Area. К чему всё остальное??? Если могут быть внутренние полигоны, площадь которых следует вычитать, то можно пойти через Region и его метод Region.BooleanOperation
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1188
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Получить площадь общего полигона
« Ответ #3 : 03-11-2018, 18:32:58 »
Да нет общего полигона и нет коллекции полигонов. На чертеже просто большое количество примитивов разных текстов блоков отрезков и т.д. И нужно получит линию очертания (границы) этого пятна графики. Можно конечно просто обвести вручную границу полилинией. Но это делать лень для более чем 500 файлов.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Получить площадь общего полигона
« Ответ #4 : 03-11-2018, 18:53:20 »
И нужно получит линию очертания (границы) этого пятна графики.
Сомневаюсь, что какой-нибудь алгоритм будет в состоянии обеспечить даже 90% правильного очертания.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Получить площадь общего полигона
« Ответ #5 : 07-11-2018, 16:58:56 »
Посмотрите этот пост - возможно поможет