Получить внешний контур для набора точек

Автор Тема: Получить внешний контур для набора точек  (Прочитано 24822 раз)

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

Оффлайн Алексей (IdeaSoft)

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Совсем неоднозначный.
Понятно, что неоднозначно.
Тут нужно у автора темы уточнить. Какова конечная цель задачи.
1) Получение контура с минимальной площадью.
2) Получение контура с максимальной площадью.
Вот фраза из вопроса "внешний контур"
Внешний это какой если решений несколько, то какой выбрать?
Просто получается что первая картинка это частный случай
по которому мне до конца не понятна конечная цель.

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


Пусть лучше автор скинет набор точек из реального проекта.
Со всякими там дуговыми "красотами" и другими архитектурными решениями.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Пока по точкам выпуклого контура строю полилинию, при этом в диагональные сегменты добавляю вершину для получения прямоугольных сегментов.
Получается как на картинке. Т.е. в некоторых случаях работает некорректно. пока это устраивает.
Чувствую что, есть простое решение - блоки стен состовляют внешний контур - но найти его не получается.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Думаю, что здесь для получения контура нужно работать не с точками, а с линиями (отрезками, если пренебречь дугами).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Нужно получить внешний контур квартиры по стенам

Думаю, что здесь для получения контура нужно работать не с точками, а с линиями

Возможно лучше со штриховкой, что-то типа объединить все штриховки в одну общую штриховку или область(Region), и из штриховки/области извлечь контур с максимальной длинной(или контур с максимальной площадью), он и будет внешним.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Возможно лучше со штриховкой
Штриховка это результат, то что нужно получить - контур в виде полилинии и штриховку этого контура.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Штриховка это результат, то что нужно получить - контур в виде полилинии и штриховку этого контура.
А если из блоков-стен сделать области(Region) их сложить в общий.
Из региона извлечь контура и по ним сделать штриховку?

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Привалов Дмитрий,
Я не делал никогда регионы, можете какой-нибудь пример кода показать.   :-[
В блоке стены есть полилиния контура стены. Может эти полилинии стен можно как-то использовать.

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Я не делал никогда регионы, можете какой-нибудь пример кода показать
я тоже не делал. Вроде что-то есть на том форуме ;-)
http://www.caduser.ru/forum/index.php?PAGE_NAME=message&FID=49&TID=37833&MID=213716#message213716

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Попробовал регионы
Извините, вам запрещён просмотр содержимого спойлеров.

При разбивке региона получается набор отрезков.
Как получить внешний контур региона?  :-[

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
При разбивке региона получается набор отрезков.
Как получить внешний контур региона?
программно) ищи на форуме http://www.caduser.ru/forum/ или смотри документацию по классу Region

Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Как получить внешний контур региона?  :-[
Тебя устраивает в этой задаче внешний контур региона? Если нет, то зачем его искать. А если да, то задача получения внешнего контура региона решается при помощи BREP .NET API.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Попробую еще разок намекнуть....
_boundary ведь будет определять контур по всему что есть в чертеже? Там кроме квартир еще много всего.

Оффлайн ВильдарАвтор темы

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Александр Ривилис,
Внешний контур региона, как на картинке, устраивает.
Посмотрю на BREP, спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Внешний контур региона, как на картинке, устраивает.
Выложи чертеж с этим Region. Мне интересно глянуть что из него можно получить.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение