Box2

优质
小牛编辑
131浏览
2023-12-01

表示二维空间中的一个轴对齐包围盒(axis-aligned bounding box,AABB)。

构造函数(Constructor)

Box2( min : Vector2, max : Vector2 )

min - (可选) Vector2 表示该盒子的下边界(x, y)。默认值为( + Infinity, + Infinity )。
max - (可选) Vector2 表示该盒子的上边界(x, y)。默认值为( - Infinity, - Infinity )。

创建一个介于最小和最大值之间的Box2。

属性(Properties)

.min : Vector2

Vector2 表示该盒子的下边界(x, y)。
默认值为( + Infinity, + Infinity )。

.max : Vector2

Vector2 表示该盒子的上边界(x, y)。
默认值为( - Infinity, - Infinity )。

方法(Methods)

.clampPoint ( point : Vector2, target : Vector2 ) : Vector2

point - clamp 的位置 (Vector2)
target — 结果会被复制到该二维向量中。

在该盒子范围内夹紧(Clampspoint

.clone () : Box2

返回一个新的Box2,其minmax与此盒子相同。

.containsBox ( box : Box2 ) : Boolean

box - 要检查是否被包含的盒子。

如果盒子包含整个被检查盒子,则返回true。如果两者重叠,
也会返回true。

.containsPoint ( point : Vector2 ) : Boolean

point - 要检查是否被包含的点Vector2

如果指定的点(point)位于盒子的边界内或边界上,则返回true。

.copy ( box : Box2 ) : Box2

boxminmax复制到此盒子中。

.distanceToPoint ( point : Vector2 ) : Float

point - 要测量距离的点(Vector2)。

返回这个盒子的任何边缘到指定点的距离。如果这个点(point)位于这个盒子里,距离将是0。

.equals ( box : Box2 ) : Boolean

box - 要对比的盒子

如果这个盒子和被对比盒子具有相同的上下边界,则返回true。

.expandByPoint ( point : Vector2 ) : Box2

point - 应该被盒子包含的点。

扩展盒子的边界来包含该点。

.expandByScalar ( scalar : Float ) : Box2

scalar - 盒子扩展的距离。

在每个维度上扩展参数scalar所指定的距离,如果为负数,则盒子空间将收缩。

.expandByVector ( vector : Vector2 ) : Box2

vector - 按照该向量扩展。

在每个维度中按vector的数值进行扩展。宽度在两个方向上的扩展将由vector的x分量确定, 高度在两个方向上的扩展则由y分量确定。

.getCenter ( target : Vector2 ) : Vector2

target — 结果将被复制到此二维向量中。

以二维向量形式返回盒子的中心点。

.getParameter ( point : Vector2, target : Vector2 ) : Vector2

point - 二维向量(Vector2).
target — 结果将被复制到此二维向量中。

返回一个点作为此盒子的宽度和高度的比例。

.getSize ( target : Vector2 ) : Vector2

target — 结果将被复制到此二维向量中。

返回此盒子的宽度和高度。

.intersect ( box : Box2 ) : Box2

box - 要相交的盒子。

返回两者的相交后的盒子,并将相交后的盒子的上限设置为两者的上限中的较小者,将下限设置为两者的下限中的较大者。

.intersectsBox ( box : Box2 ) : Boolean

box - 用来检查相交的盒子。

确定该盒子是否和其相交。

.isEmpty () : Boolean

如果这个盒子包含0个顶点,则返回true。
请注意,一个下上边界相等的的盒子仍然包括一个点,一个两个边界共享的点。

.makeEmpty () : Box2

使此盒子为空。

.set ( min : Vector2, max : Vector2 ) : Box2

min - (必须) 表示该盒子的下边界(x, y)。
max - (必须) 表示该盒子的上边界(x, y)。

设置这个盒子的上下(x, y)的界限。
Please note that this method only copies the values from the given objects.

.setFromCenterAndSize ( center : Vector2, size : Vector2 ) : Box2

center - 盒子所要设置的中心位置。 (Vector2).
size - 盒子所要设置的x和y尺寸 (Vector2).

使盒子的中心点位于center,并设置宽高为size中指定的值。

.setFromPoints ( points : Array ) : Box2

points - 点的集合,由这些点确定的空间将被盒子包围。

设置这个盒子的上下边界,来包含所有设置在points参数中的点。

.translate ( offset : Vector2 ) : Box2

offset - 偏移方向和距离。

添加 offset 到这个盒子的上下边界,实际上在2D空间移动这个盒子offset个单位。

.union ( box : Box2 ) : Box2

box - 将要与该盒子联合的盒子

box参数的上边界和该盒子的上边界之间取较大者,而对两者的下边界取较小者,这样获得一个新的较大的联合盒子。

源码(Source)

src/math/Box2.js