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;