球(Sphere)

一个球由球心和半径所定义。

构造函数

Sphere(center : Vector3, radius : Float)

center - 球心的位置,默认值是一个位于(0, 0, 0)的Vector3
radius - 球的半径,默认值是-1。

创建一个新的Sphere。

属性

.center : Vector3

A Vector3定义了球心的位置,默认值位于(0, 0, 0)。

.radius : Float

球的半径,默认值为0。

方法

.applyMatrix4 (matrix : Matrix4) : Sphere

matrix - 将被应用的Matrix4矩阵。

使用所传入的Matrix4矩阵来对球进行变换。

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

point - Vector3 将要夹取的点。
target — 结果将被复制到这个Vector3中。

从球中夹取一个点。若这一点位于球外,则将会夹取到该点球边缘最近的点。已位于球中的点将不会受到影响。

.clone () : Sphere

返回一个新的球,新的球与这个球具有相同的centerradius

.containsPoint (point : Vector3) : Boolean

point - the Vector3 to be checked

检查球体中是否包含所传入的point点,包括球的表面。

.copy (sphere : Sphere) : Sphere

复制所传入的球的centerradius到这个球上。

.distanceToPoint (point : Vector3) : Float

返回球的边界到所传入的point点的最近距离。 若这个点,则距离将为负值。

.isEmpty () : Boolean

检查球是否为空(the radius set to a negative number). Spheres with a radius of 0 contain only their center point and are not considered to be empty.

.makeEmpty () : Sphere

Makes the sphere empty by setting center to (0, 0, 0) and radius to -1.

.equals (sphere : Sphere) : Boolean

检查这两个球的球心与半径是否相等。

.getBoundingBox (target : Box3) : Box3

target — 结果将被复制到这个Box3中。

返回这个球的Minimum Bounding Box(最小包围盒)。

.intersectsBox (box : Box3) : Boolean

box - 将被用于测试是否与这个球有交集的Box3

检测这个球与所传入的box是否有交集。

.intersectsPlane (plane : Plane) : Boolean

plane - 将被用于测试是否与这个球有交集的Plane。

检测这个球与所传入的plane是否有交集。

.intersectsSphere (sphere : Sphere) : Boolean

sphere - 将被用于测试是否与这个球有交集的Sphere。

检测两球之间是否有交集。

.set (center : Vector3, radius : Float) : Sphere

center - 球心位置。
radius - 球的半径。

设置球的centerradius属性。
Please note that this method only copies the values from the given center.

.setFromPoints (points : Array, optionalCenter : Vector3) : Sphere

points - 一个包含有Vector3位置的Array
optionalCenter - 可选, Vector3 球心位置。

计算一个points数组(中的点)的最小边界球。如果给定了optionalCenter,则它将被用作该球的球心; 否则,环绕points的包围盒的轴心将通过计算来得到。

.translate (offset : Vector3) : Sphere

使用所给定Vector3 offset(偏移量)平移球心。

源代码

src/math/Sphere.js