Как можно найти расстояние между 2 объектами?

Автор Тема: Как можно найти расстояние между 2 объектами?  (Прочитано 17468 раз)

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

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Как можно найти расстояние между 2 объектами?

У меня есть 2 объекта рандомной формы, как между ними можно найти кратчайшее расстояние??

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Как можно найти расстояние между 2 объектами?

У меня есть 2 объекта рандомной формы, как между ними можно найти кратчайшее расстояние??
Приветствую на форуме!
Общего решения для этой задачи нет. Нужна конкретика по поводу того что это за объекты, 2D или 3D они и т.д.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
2d объекты, могут быть любой формы.

Я думал в начале сделать, создать круг. Увеличивать его диаметр и проверять на пересечение объектов. Но это довольно таки ресурсо затратно. И я не знаю как проверять на пересечение объекты

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
2d объекты, могут быть любой формы.
Формы-то они могут быть любой. Но что это за объекты? Отрезки, полилинии, тексты, блоки...?
Я думал в начале сделать, создать круг. Увеличивать его диаметр и проверять на пересечение объектов.
Для начала, можно попробовать находить расстояния между габаритными контейнерами объектов - см. свойство GeometricExtents.

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Отрезки, полилинии, блоки.
Гляну свойство.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Всё-таки, как выше уже написал Александр Ривилис, нужно больше конкретики. Потому что для разных случаев варианты могут быть совершенно разными.

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Есть полилиния нужно найти кратчайшее расстояние до точки.

Вот так например.
А нельзя получить у каждого объекта массив точек, где проходит этот объект??

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Есть полилиния нужно найти кратчайшее расстояние до точки.

Вот так например.
Полилиния, как и любой другой наследник от Curve имеет метод GetClosesPointTo
А нельзя получить у каждого объекта массив точек, где проходит этот объект??
У линейного - можно. А у блока, например, что это за массив точек?

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
При создании линии мы задаем 3 координаты, а можно получить список координат где находится линия

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

  • ADN Club
  • *****
  • Сообщений: 624
  • Карма: 158
    • ПГСу Бложик
А у блока, например, что это за массив точек?
Точки объектов внутри блока, преобразованные в единую систему координат, и для каждого объекта внутри блока, можно же так же найти GetClosesPointTо, перенеся эту точку внутрь блока..

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

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

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
При создании линии мы задаем 3 координаты
Как это? Высшая математика в ВУЗе была? :)

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
и для каждого объекта внутри блока, можно же так же найти GetClosesPointTо
Если это наследник от Curve. В общем случае - необязательно ;)

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
А нельзя получить у каждого объекта массив точек, где проходит этот объект??
Это называется аппроксимация. Для линий/полилиний/отрезков и т.д. наследников Curve это возможно. Преобразуешь его в Curve3d и используешь метод Curve3d.GetNewSamplePoints
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 19
  • Карма: 0
Спасибо