Найти точку на границе со стеной у семейства

Автор Тема: Найти точку на границе со стеной у семейства  (Прочитано 2537 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Здравствуйте,
У меня есть семейство не основе стены/перекрытия (проходки). Мне необходимо получать точки на границе со стеной как центральную так и угловую, но всегда с одной стороны.
Например вот такие:

Я думал получить через bounding Box, но не могу понять как мне получить ту плоскость, которая параллельно стене,  возможно ли как то это сделать?
Может быть тут какой то другой подход можно применить, а не через Bbox?
Не могу понять что-то

Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Не совсем понял вопрос, честно говоря, но, ты случаем, не Wall.Orientation ищешь?

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Возможно это тоже пригодится. Идея заключается в следующем. У меня есть проходка, например, я беру у нее boundingBox, затем я у Bbox беру ту плоскость, которая параллельна стене и которая по координате X меньше и уже на ней я получаю точки которые мне нужны.



Оффлайн Александр Игнатович

  • Administrator
  • *****
  • Сообщений: 1152
  • Карма: 338
  • Skype: alexandr.ignatovich.itc
Так стены не обязательно параллельны OX или OY. Пока опять не понимаю, у тебя это семейство уже размещено в модели? Если оно на основе грани, можно попробовать с его HostFace-ом поработать

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

  • ADN OPEN
  • **
  • Сообщений: 87
  • Карма: 0
Да, семейство уже размещено в модели. Семейство на основе стены. Вот думаю попробовать найти пересечение элемента и стены, может как то через это получится

Отмечено как Решение user32 20-02-2021, 14:20:39

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

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
1. Через метод HostObjectUtils.GetSideFaces получаем нужную грань стены - наружную или внутреннюю. Пример
2. Используем пример из этой статьи и получаем грани, образованные семейством
3. Проецируем точки ребер граней из п.2 на плоскость из п.1 и находим среднюю точку

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

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