от
У меня есть информация о 3D самолетах. Когда все самолеты объединятся, он сформирует трехмерный выпуклый корпус. Вот пример ввода. Каждая трехмерная плоскость обозначается точкой на плоскости и ее нормалью. Все нормали указывают внутрь: -


Вопрос: Как рассчитать AABB из него?
 Решение из приведенного выше примера: ((.

(Сначала я хочу центр масс, но я понял, что это сложная проблема.
  AABB должен быть достаточно хорош для меня. )

Мое плохое решение - найти все вершины корпуса, используя конструктивную геометрию твердого тела, а затем выполнить MIN

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Это классическая проблема линейного программирования. Учитывая набор линейных неравенств (представленных плоскостями в вашем случае, скажем, ax посредством cz d> = 0) и линейную функцию (скажем, f (x, y, z) = x), найдите точку, которая минимизирует функцию при выполнении всех неравенств. AABB является решением 6 таких задач для функций x, -x, y, -y, z и -z. Существует несколько методов решения этой проблемы, наиболее известным из которых является симплексный алгоритм и множество готовых библиотек (в том числе некоторые, использующие графические процессоры).     
...