OrientedBox 是一个包围盒,可用于对三维网格进行边界体积的计算。 matrix 是一个Float32Array类型的矩阵,表示包围盒的变换矩阵。
const obb = new THREE.OrientedBox();
obb.matrix = new Float32Array([a,b,c,d,e,f,g,h,i,j,k,l]);
a: 矩阵的 (0,0) 元素。b: 矩阵的 (0,1) 元素。c: 矩阵的 (0,2) 元素。d: 矩阵的 (1,0) 元素。e: 矩阵的 (1,1) 元素。f: 矩阵的 (1,2) 元素。g: 矩阵的 (2,0) 元素。h: 矩阵的 (2,1) 元素。i: 矩阵的 (2,2) 元素。j: 矩阵的 (3,0) 元素(平移矢量的 X 坐标)。k: 矩阵的 (3,1) 元素(平移矢量的 Y 坐标)。l: 矩阵的 (3,2) 元素(平移矢量的 Z 坐标)。OrientedBox.matrix 对象表示一个三维包围盒的变换矩阵,该包围盒可用于包含任意三维物体的边界体积计算。
通过修改 matrix 属性的值,您可以更改包围盒的位置、旋转和缩放比例。
以下示例创建一个包围盒,将其设置为旋转 45 度并平移 (100, 50, 0)。
const obb = new THREE.OrientedBox();
const matrix = new THREE.Matrix4().makeRotationZ(Math.PI / 4)
    .setPosition(100, 50, 0);
obb.matrix = matrix.elements;