该方法是Yuka.js库中的一种用于检测光线与轴对齐包围盒(AABB)相交的算法。
intersectAABB( ray, box, intersectionPoint )
ray
: 光线对象。表示从起点出发的一条有方向的无限长线段。box
:轴对齐包围盒对象。表示一个以坐标轴对齐并且可以围住一组物体的盒子。intersectionPoint
:可选参数。用于返回包围盒和光线相交部分的位置坐标。如果光线和包围盒未相交,则返回null。返回一个布尔值,表示光线是否与轴对齐包围盒相交。
const ray = new THREE.Ray(
new THREE.Vector3( -1, 0, 0 ), // 起点坐标
new THREE.Vector3( 1, 0, 0 ) // 方向向量
);
const box = new THREE.Box3(
new THREE.Vector3( -2, -2, -2 ), // 包围盒最小坐标
new THREE.Vector3( 2, 2, 2 ) // 包围盒最大坐标
);
const intersectionPoint = new THREE.Vector3();
const isIntersected = intersectAABB( ray, box, intersectionPoint );
console.log( isIntersected ); // true
console.log( intersectionPoint ); // THREE.Vector3 { x: -1, y: 0, z: 0 }