Минимальная охватывающая сфера - производная от OBB?

Мне нужно вычислить минимальную охватывающую сферу из набора точек в 3D, которая уже заключена в ориентированную ограничивающую рамку (OBB).

Верно ли мое предположение, что сфера может быть получена из OBB следующим образом?

sphere_radius = 0.5 * obb_diagonal
sphere_center = obb_center

Если не,

  • Зачем?
  • можно ли вообще использовать OBB?

1 ответ

Решение

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

В качестве контрпримеров рассмотрим кубическую ограничивающую рамку из (-1,-1,-1) в (1,1,1), содержащий шесть точек в центре граней куба: (1,0,0), (-1,0,0), (0,1,0), (0,-1,0), (0,0,1), (0,0,-1),

Минимальная ограничивающая сфера для этого набора точек будет шаром радиуса 1 с центром в (0,0,0), Шар, построенный по предложенному вами алгоритму, будет шаром радиуса. 1.7(иш) сосредоточено на происхождении.

Вместо этого вы захотите использовать алгоритм, чтобы найти минимальную ограничивающую сферу. Существуют алгоритмы, которые делают это за линейное время (см. Этот вопрос, чтобы узнать, где искать. "Miniball" - хорошее ключевое слово для поиска.)

Другие вопросы по тегам