BoundingSphere

new Cesium.BoundingSphere(center, radius)

一个具有中心和半径的包围球。
Name Type Default Description
center Cartesian3 Cartesian3.ZERO optional 包围球的中心。
radius number 0.0 optional 包围球的半径。
See:

Members

static Cesium.BoundingSphere.packedLength : number

用于将对象打包到数组中的元素数量。
球体的中心点。
Default Value: Cartesian3.ZERO
球体的半径。
Default Value: 0.0

Methods

static Cesium.BoundingSphere.clone(sphere, result)BoundingSphere

复制一个 BoundingSphere 实例。
Name Type Description
sphere BoundingSphere 要复制的包围球。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。(如果 sphere 为 undefined,则返回 undefined)

static Cesium.BoundingSphere.computePlaneDistances(sphere, position, direction, result)Interval

由包围球中心到在方向上投影到位置的向量计算出的距离,加上/减去包围球的半径。
如果想象无限数量的法线方向的平面,这将计算与位置相交的包围球最近和最远平面的最小距离。
Name Type Description
sphere BoundingSphere 要计算距离的包围球。
position Cartesian3 要计算距离的起始位置。
direction Cartesian3 从位置出发的方向。
result Interval optional 用于存储最近和最远距离的区间。
Returns:
从位置沿指定方向到包围球的最近和最远距离。

static Cesium.BoundingSphere.distanceSquaredTo(sphere, cartesian)number

计算包围球上到指定点的最近点的估计平方距离。
Name Type Description
sphere BoundingSphere 包围球。
cartesian Cartesian3 指定的点。
Returns:
从包围球到点的平方距离。如果点在球体内部,则返回 0。
Example:
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return Cesium.BoundingSphere.distanceSquaredTo(b, camera.positionWC) - Cesium.BoundingSphere.distanceSquaredTo(a, camera.positionWC);
});

static Cesium.BoundingSphere.equals(left, right)boolean

逐个比较提供的 BoundingSphere 并返回 如果相等则为 true,否则为 false
Name Type Description
left BoundingSphere optional 第一个 BoundingSphere。
right BoundingSphere optional 第二个 BoundingSphere。
Returns:
如果两个矩形相等,则返回 true,否则返回 false

static Cesium.BoundingSphere.expand(sphere, point, result)BoundingSphere

通过扩大提供的球体来计算一个包围球,以包含指定点。
Name Type Description
sphere BoundingSphere 要扩展的球体。
point Cartesian3 要包围在包围球中的点。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromBoundingSpheres(boundingSpheres, result)BoundingSphere

计算一个紧密包围提供的包围球数组的包围球。
Name Type Description
boundingSpheres Array.<BoundingSphere> optional 包围球的数组。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromCornerPoints(corner, oppositeCorner, result)BoundingSphere

从轴对齐包围盒的角点计算出包围球。该球体紧密而完全地包围盒子。
Name Type Description
corner Cartesian3 optional 矩形的最小高度。
oppositeCorner Cartesian3 optional 矩形的最大高度。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
Example:
// Create a bounding sphere around the unit cube
const sphere = Cesium.BoundingSphere.fromCornerPoints(new Cesium.Cartesian3(-0.5, -0.5, -0.5), new Cesium.Cartesian3(0.5, 0.5, 0.5));

static Cesium.BoundingSphere.fromEllipsoid(ellipsoid, result)BoundingSphere

创建一个包围椭球体的包围球。
Name Type Description
ellipsoid Ellipsoid 要围绕其创建包围球的椭球体。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
Example:
const boundingSphere = Cesium.BoundingSphere.fromEllipsoid(ellipsoid);

static Cesium.BoundingSphere.fromEncodedCartesianVertices(positionsHigh, positionsLow, result)BoundingSphere

计算一个紧密包围给定 EncodedCartesian3s 列表的包围球,这些点存储在并行的平坦数组中,顺序为 X, Y, Z。 包围球的计算通过运行两种算法,一种是简单算法,另一种是 Ritter 的算法。 使用两个球体中较小的一个以确保紧密贴合。
Name Type Description
positionsHigh Array.<number> optional 一个包含编码 Cartesian 的高位部分的数组,包围球将包含这些点。每个点由数组中的三个元素组成,顺序为 X, Y, Z。
positionsLow Array.<number> optional 一个包含编码 Cartesian 的低位部分的数组,包围球将包含这些点。每个点由数组中的三个元素组成,顺序为 X, Y, Z。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
See:

static Cesium.BoundingSphere.fromOrientedBoundingBox(orientedBoundingBox, result)BoundingSphere

计算一个紧密包围提供的定向包围盒的包围球。
Name Type Description
orientedBoundingBox OrientedBoundingBox 定向包围盒。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromPoints(positions, result)BoundingSphere

计算一个紧密包围给定 3D 直角坐标点列表的包围球。 包围球是通过运行两个算法来计算的,一个是简单算法,另一个是 Ritter 的算法。 使用两个球体中较小的一个以确保紧密贴合。
Name Type Description
positions Array.<Cartesian3> optional 一个包含要被包围的点的数组。每个点必须具有 xyz 属性。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
See:

static Cesium.BoundingSphere.fromRectangle2D(rectangle, projection, result)BoundingSphere

从投影到二维的矩形计算出包围球。
Name Type Default Description
rectangle Rectangle optional 要围绕其创建包围球的矩形。
projection object GeographicProjection optional 用于将矩形投影到二维的投影。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromRectangle3D(rectangle, ellipsoid, surfaceHeight, result)BoundingSphere

从三维矩形计算出包围球。包围球是使用矩形上椭球体的点的子样本创建的。 对于所有类型的椭球体,可能并不适用于所有矩形。
Name Type Default Description
rectangle Rectangle optional 用于创建包围球的有效矩形。
ellipsoid Ellipsoid Ellipsoid.default optional 用于确定矩形位置的椭球体。
surfaceHeight number 0.0 optional 椭球体表面之上的高度。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromRectangleWithHeights2D(rectangle, projection, minimumHeight, maximumHeight, result)BoundingSphere

从投影到二维的矩形计算出包围球。包围球考虑了矩形上物体的最小和最大高度。
Name Type Default Description
rectangle Rectangle optional 要围绕其创建包围球的矩形。
projection object GeographicProjection optional 用于将矩形投影到二维的投影。
minimumHeight number 0.0 optional 矩形上的最小高度。
maximumHeight number 0.0 optional 矩形上的最大高度。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromTransformation(transformation, result)BoundingSphere

计算一个紧密包围提供的仿射变换的包围球。
Name Type Description
transformation Matrix4 该仿射变换。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.fromVertices(positions, center, stride, result)BoundingSphere

计算一个紧密包围给定 3D 点列表的包围球,这些点存储在一个平坦的数组中,顺序为 X, Y, Z。 包围球的计算通过运行两种算法,一种是简单算法,另一种是 Ritter 的算法。 使用两个球体中较小的一个以确保紧密贴合。
Name Type Default Description
positions Array.<number> optional 一个包含要被包围的点的数组。每个点由数组中的三个元素组成,顺序为 X, Y, Z。
center Cartesian3 Cartesian3.ZERO optional 点的位置相对于的基准位置,不必是坐标系的原点。 这在点将用于相对于中心 (RTC) 渲染时非常有用。
stride number 3 optional 每个顶点的数组元素数量。必须至少为 3,但可以更高。 无论此参数的值如何,第一个位置的 X 坐标位于数组索引 0,Y 坐标位于数组索引 1, Z 坐标位于数组索引 2。当 stride 为 3 时,下一个位置的 X 坐标则从数组索引 3 开始。 如果 stride 为 5,则会跳过两个数组元素,下一个位置从数组索引 5 开始。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
Example:
// Compute the bounding sphere from 3 positions, each specified relative to a center.
// In addition to the X, Y, and Z coordinates, the points array contains two additional
// elements per point which are ignored for the purpose of computing the bounding sphere.
const center = new Cesium.Cartesian3(1.0, 2.0, 3.0);
const points = [1.0, 2.0, 3.0, 0.1, 0.2,
              4.0, 5.0, 6.0, 0.1, 0.2,
              7.0, 8.0, 9.0, 0.1, 0.2];
const sphere = Cesium.BoundingSphere.fromVertices(points, center, 5);
See:

static Cesium.BoundingSphere.intersectPlane(sphere, plane)Intersect

确定一个球体位于平面的哪一侧。
Name Type Description
sphere BoundingSphere 要测试的包围球。
plane Plane 要测试的平面。
Returns:
如果整个球体位于平面法线指向的一侧,则返回 Intersect.INSIDE; 如果整个球体位于相反的一侧,则返回 Intersect.OUTSIDE; 如果球体与平面相交,则返回 Intersect.INTERSECTING

static Cesium.BoundingSphere.isOccluded(sphere, occluder)boolean

判断一个球体是否被遮挡物遮挡而不可见。
Name Type Description
sphere BoundingSphere 包围被遮挡对象的包围球。
occluder Occluder 遮挡物。
Returns:
如果球体不可见则返回 true;否则返回 false

static Cesium.BoundingSphere.pack(value, array, startingIndex)Array.<number>

将提供的实例存储到提供的数组中.
Name Type Default Description
value BoundingSphere 要打包的值.
array Array.<number> 要打包到的数组.
startingIndex number 0 optional 开始打包元素的数组索引.
Returns:
被打包成的数组

static Cesium.BoundingSphere.projectTo2D(sphere, projection, result)BoundingSphere

从三维世界坐标中的包围球创建一个二维包围球。
Name Type Default Description
sphere BoundingSphere 要转换为二维的包围球。
projection object GeographicProjection optional 用于投影到二维的投影。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.transform(sphere, transform, result)BoundingSphere

对包围球应用一个 4x4 仿射变换矩阵。
Name Type Description
sphere BoundingSphere 要应用变换的包围球。
transform Matrix4 要应用于包围球的变换矩阵。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.transformWithoutScale(sphere, transform, result)BoundingSphere

对包围球应用一个 4x4 仿射变换矩阵,该变换不涉及缩放。 变换矩阵未验证是否具有统一的 1 的缩放。 此方法比使用 BoundingSphere.transform 计算一般的包围球变换要快。
Name Type Description
sphere BoundingSphere 要应用变换的包围球。
transform Matrix4 要应用于包围球的变换矩阵。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
Example:
const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid);
const boundingSphere = new Cesium.BoundingSphere();
const newBoundingSphere = Cesium.BoundingSphere.transformWithoutScale(boundingSphere, modelMatrix);

static Cesium.BoundingSphere.union(left, right, result)BoundingSphere

计算一个包围球,包含左侧和右侧的包围球。
Name Type Description
left BoundingSphere 要包围在包围球中的左侧球体。
right BoundingSphere 要包围在包围球中的右侧球体。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

static Cesium.BoundingSphere.unpack(array, startingIndex, result)BoundingSphere

从打包数组中检索实例。
Name Type Default Description
array Array.<number> 压缩数组。
startingIndex number 0 optional 需要解包的元素的起始索引。
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。
复制此 BoundingSphere 实例。
Name Type Description
result BoundingSphere optional 存储结果的对象。
Returns:
修改后的结果参数,如果未提供则返回一个新的 BoundingSphere 实例。

computePlaneDistances(position, direction, result)Interval

由包围球中心到在方向上投影到指定位置的向量计算出的距离,加上/减去包围球的半径。
如果想象无数个法线方向的平面,这将计算与指定位置相交的包围球最近和最远平面的最小距离。
Name Type Description
position Cartesian3 要计算距离的起始位置。
direction Cartesian3 从指定位置的方向。
result Interval optional 一个区间用于存储最近和最远的距离。
Returns:
从指定位置沿指定方向到包围球的最近和最远距离。

distanceSquaredTo(cartesian)number

计算从包围球上最近点到指定点的估计平方距离。
Name Type Description
cartesian Cartesian3 指定的点。
Returns:
从包围球到该点的估计平方距离。
Example:
// Sort bounding spheres from back to front
spheres.sort(function(a, b) {
    return b.distanceSquaredTo(camera.positionWC) - a.distanceSquaredTo(camera.positionWC);
});

equals(right)boolean

将此 BoundingSphere 与提供的 BoundingSphere 逐个比较,并返回 如果相等则为 true,否则为 false
Name Type Description
right BoundingSphere optional 右侧的 BoundingSphere。
Returns:
如果两个矩形相等,则返回 true,否则返回 false
确定一个球体位于平面的哪一侧。
Name Type Description
plane Plane 要测试的平面。
Returns:
如果整个球体位于平面法线指向的一侧,则返回 Intersect.INSIDE; 如果整个球体位于相反的一侧,则返回 Intersect.OUTSIDE; 如果球体与平面相交,则返回 Intersect.INTERSECTING

isOccluded(occluder)boolean

判断一个球体是否被遮挡物遮挡而不可见。
Name Type Description
occluder Occluder 遮挡物。
Returns:
如果球体不可见则返回 true;否则返回 false
计算包围球的半径。
Returns:
包围球的半径。
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.