使用三角学旋转对象后,可以重新计算轴对齐的边界框吗?

Fr0*_*Bit 2 math 3d glm-math

我将轴对齐的边界框表示为 2 个 3D 向量,一个包含左下后点(最小值),一个包含右上前点(最大值)。

在向任何方向旋转对象后,必须重新计算包围它的 aabb 以适合。以此图为例:

普雷塞尔

可以使用我拥有的两个起点和旋转的角度+方向来计算吗?如果是这样怎么办?最有效的方法是什么?

PS 我正在使用 glm 进行数学计算,因此任何使用 glm 执行此操作的现成方法都将非常有用!

Nic*_*las 5

你能根据现有 AABB 的旋转计算出新的 AABB 吗?是的。它涉及变换所有 8 个点,然后从中计算 AABB。您可以找到每个维度的最大范围,即 8 个点中每个点的 3 个分量中的最大/最小值。

但是,这不会给您显示的图片的效果。原因相当明显。该图根据 AABB 所包含的实际网格的旋转重新计算 AABB。而您想通过旋转矩形来重新计算它。

基于盒子的重新计算总是比严格需要的要大。从实际网格重新计算 AABB 将产生更紧密的 AABB。