BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

Box3.intersect()

Box3.intersect() 方法是 three.js 中用于计算两个盒子相交部分的方法。它将一个 Box3 对象作为参数,并返回一个新的 Box3 对象,表示两个盒子的相交部分。

语法

Box3.intersect(box)

参数

  • boxBox3 类型的参数,表示要计算相交部分的另一个盒子。

返回值

返回相交部分的新 Box3 对象。

示例

以下示例演示了如何使用 Box3.intersect() 方法来计算两个盒子的相交部分:

const box1 = new THREE.Box3(
    new THREE.Vector3(0, 0, 0),
    new THREE.Vector3(1, 1, 1)
);

const box2 = new THREE.Box3(
    new THREE.Vector3(0.5, 0.5, 0.5),
    new THREE.Vector3(1.5, 1.5, 1.5)
);

const intersectBox = new THREE.Box3().copy(box1).intersect(box2);

console.log(intersectBox.min); // {x: 0.5, y: 0.5, z: 0.5}
console.log(intersectBox.max); // {x: 1, y: 1, z: 1}

在上面的示例中,我们创建了两个 Box3 对象:box1box2,并将它们传递给 Box3.intersect() 方法来计算它们的相交部分。我们使用 copy() 方法创建一个新的 Box3 对象,其范围等于 box1,然后调用 intersect() 方法计算相交部分。最后,我们可以访问返回的新 Box3 对象的 minmax 属性,以获取相交部分的范围。

参考资料