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

Box2.expandByVector()

简介

Box2.expandByVector()three.jsBox2 类的一个方法,用于将 Box2 对象向外扩展一定的距离。

语法

Box2.expandByVector( vector: Vector2 ) : Box2

参数

  • vector:一个 Vector2 类型对象,表示在每个轴上要扩展的距离。

返回值

返回扩展后的 Box2 对象。

示例

const box = new THREE.Box2(new THREE.Vector2(0, 0), new THREE.Vector2(1, 1));
const vector = new THREE.Vector2(0.5, 0.5);
box.expandByVector(vector);

console.log(box.min); // 输出 (-0.5, -0.5)
console.log(box.max); // 输出 (1.5, 1.5)

描述

Box2 对象上调用 expandByVector 方法可将其沿每个轴扩展指定距离。扩展距离为每个轴上的距离。

例如,如果 Box2 的最小值为 (0,0),最大值为 (1,1),如果我们调用 expandByVector 方法,并传入一个 Vector2 类型的对象 (0.5,0.5),则 Box2 将在每个轴上分别向外扩展 0.5 的距离,最终最小值为 (-0.5,-0.5),最大值为 (1.5,1.5)

需要注意的是,如果传入的 vector 参数中存在负数,那么实际上是将 Box2 在该轴向内收缩了相应的距离。

此外,Box2 在调用 expandByVector 方法后,其中心点的坐标不会改变。

总结

Box2.expandByVector() 方法可以方便地扩展 Box2 对象的大小,并且不会改变其中心点坐标。可以在需要大范围寻找物体时使用。