具有中心和半径的边界球体。
Name | Type | Default | Description |
---|---|---|---|
center
|
Cartesian3 |
Cartesian3.ZERO
|
可选 边界球的中心。 |
radius
|
Number |
0.0
|
可选 边界球的半径。 |
Members
用于将对象打包到数组中的元素数。
center : Cartesian3
球体的中心点。
-
Default Value:
Cartesian3.ZERO
球体的半径。
-
Default Value:
0.0
Methods
static Cesium.BoundingSphere.clone (sphere, result ) → BoundingSphere
复制一个 BoundingSphere 实例。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 要复制的边界球体。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。 (如果球体未定义,则返回未定义)
static Cesium.BoundingSphere.computePlaneDistances (sphere, position, direction, result ) → Interval
由向量计算的距离,从边界球的中心到投影到方向上的位置加上/减去边界球的半径。
如果您想象无限数量的具有法线方向的平面,这将计算与边界球相交的位置到最近和最远平面的最小距离。
如果您想象无限数量的具有法线方向的平面,这将计算与边界球相交的位置到最近和最远平面的最小距离。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 要计算到的距离的边界球。 |
position
|
Cartesian3 | 计算距离的位置。 |
direction
|
Cartesian3 | 从位置的方向。 |
result
|
Interval | 可选 用于存储最近和最远距离的间隔。 |
Returns:
边界球上距离位置方向最近和最远的距离。
计算从边界球体上最近的点到点的估计距离平方。
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);
});
比较提供的 BoundingSphere 组件,如果它们相等则返回
true
,否则返回
false
。
Name | Type | Description |
---|---|---|
left
|
BoundingSphere | 可选 第一个 BoundingSphere。 |
right
|
BoundingSphere | 可选 第二个BoundingSphere。 |
Returns:
如果左右相等,则为
true
,否则为
false
。
static Cesium.BoundingSphere.expand (sphere, point, result ) → BoundingSphere
通过扩大提供的球体以包含提供的点来计算边界球体。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 一个要扩展的球体。 |
point
|
Cartesian3 | 包围在边界球体中的点。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
static Cesium.BoundingSphere.fromBoundingSpheres ( boundingSpheres , result ) → BoundingSphere
计算一个紧密拟合的包围球,包围提供的包围球数组。
Name | Type | Description |
---|---|---|
boundingSpheres
|
Array.< BoundingSphere > | 可选 边界球的数组。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromCornerPoints ( corner , oppositeCorner , result ) → BoundingSphere
从轴对齐边界框的角点计算边界球体。球体紧紧地完全包围了盒子。
Name | Type | Description |
---|---|---|
corner
|
Cartesian3 | 可选 矩形上的最小高度。 |
oppositeCorner
|
Cartesian3 | 可选 矩形上的最大高度。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
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 | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
Example:
const boundingSphere = Cesium.BoundingSphere.fromEllipsoid(ellipsoid);
static Cesium.BoundingSphere.fromEncodedCartesianVertices ( positionsHigh , positionsLow , result ) → BoundingSphere
计算一个包含 EncodedCartesian3 列表的紧合边界球,其中的点以 X、Y、Z 顺序存储在平行平面数组中。边界球是通过运行两种算法来计算的,一种朴素算法和 Ritter 算法。两个球体中较小的一个用于确保紧密配合。
Name | Type | Description |
---|---|---|
positionsHigh
|
Array.<Number> | 可选 包围球将包围的编码笛卡尔的高位数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 |
positionsLow
|
Array.<Number> | 可选 包围球将包围的编码笛卡尔的低位数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromOrientedBoundingBox (orientedBoundingBox, result ) → BoundingSphere
计算一个紧密拟合的包围球,包围提供的定向边界框。
Name | Type | Description |
---|---|---|
orientedBoundingBox
|
OrientedBoundingBox | 定向边界框。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
static Cesium.BoundingSphere.fromPoints ( positions , result ) → BoundingSphere
计算一个包含 3D 笛卡尔点列表的紧合边界球。边界球是通过运行两种算法来计算的,一种朴素算法和 Ritter 算法。两个球体中较小的一个用于确保紧密配合。
Name | Type | Description |
---|---|---|
positions
|
Array.< Cartesian3 > |
可选
包围球将包围的点数组。每个点必须具有
x
、
y
和
z
属性。
|
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromRectangle2D ( rectangle , projection , result ) → BoundingSphere
从二维投影的矩形计算边界球体。
Name | Type | Default | Description |
---|---|---|---|
rectangle
|
Rectangle | 可选 围绕其创建边界球体的矩形。 | |
projection
|
Object |
GeographicProjection
|
可选 用于将矩形投影为 2D 的投影。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromRectangle3D ( rectangle , ellipsoid , surfaceHeight , result ) → BoundingSphere
从 3D 矩形计算边界球体。边界球体是使用椭圆体上的点的子样本创建的,并包含在矩形中。对于所有类型的椭球体上的所有矩形,它可能并不准确。
Name | Type | Default | Description |
---|---|---|---|
rectangle
|
Rectangle | 可选 用于创建边界球体的有效矩形。 | |
ellipsoid
|
Ellipsoid |
Ellipsoid.WGS84
|
可选 用于确定矩形位置的椭球体。 |
surfaceHeight
|
Number |
0.0
|
可选 椭圆体表面上方的高度。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromRectangleWithHeights2D ( rectangle , projection , minimumHeight , maximumHeight , result ) → BoundingSphere
从二维投影的矩形计算边界球体。边界球体说明了对象在矩形上的最小和最大高度。
Name | Type | Default | Description |
---|---|---|---|
rectangle
|
Rectangle | 可选 围绕其创建边界球体的矩形。 | |
projection
|
Object |
GeographicProjection
|
可选 用于将矩形投影为 2D 的投影。 |
minimumHeight
|
Number |
0.0
|
可选 矩形上的最小高度。 |
maximumHeight
|
Number |
0.0
|
可选 矩形上的最大高度。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.fromTransformation (transformation, result ) → BoundingSphere
计算一个包含所提供的仿射变换的紧密边界球。
Name | Type | Description |
---|---|---|
transformation
|
Matrix4 | 仿射变换。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
static Cesium.BoundingSphere.fromVertices ( positions , center , stride , result ) → BoundingSphere
计算一个包含 3D 点列表的紧密边界球体,其中点以 X、Y、Z 顺序存储在平面数组中。边界球是通过运行两种算法来计算的,一种朴素算法和 Ritter 算法。两个球体中较小的一个用于确保紧密配合。
Name | Type | Default | Description |
---|---|---|---|
positions
|
Array.<Number> | 可选 包围球将包围的点数组。每个点由数组中的三个元素组成,顺序为 X、Y、Z。 | |
center
|
Cartesian3 |
Cartesian3.ZERO
|
可选 位置相对的位置,不必是坐标系的原点。当位置用于相对中心 (RTC) 渲染时,这很有用。 |
stride
|
Number |
3
|
可选 每个顶点的数组元素数。它必须至少为 3,但可能更高。无论该参数的值如何,第一个位置的 X 坐标在数组索引 0 处,Y 坐标在数组索引 1 处,Z 坐标在数组索引 2 处。当 stride 为 3 时,第一个位置的 X 坐标然后下一个位置从数组索引 3 开始。但是,如果步幅为 5,则跳过两个数组元素,下一个位置从数组索引 5 开始。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
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
。
确定球体是否被遮挡物隐藏在视野之外。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 围绕被遮挡对象的边界球。 |
occluder
|
Occluder | 封堵器。 |
Returns:
如果球体不可见,则为
true
;否则
false
。
将提供的实例存储到提供的数组中。
Name | Type | Default | Description |
---|---|---|---|
value
|
BoundingSphere | 要打包的值。 | |
array
|
Array.<Number> | 要打包的数组。 | |
startingIndex
|
Number |
0
|
可选 开始打包元素的数组索引。 |
Returns:
装入的数组
static Cesium.BoundingSphere.projectTo2D (sphere, projection , result ) → BoundingSphere
从 3D 世界坐标中的边界球体创建 2D 边界球体。
Name | Type | Default | Description |
---|---|---|---|
sphere
|
BoundingSphere | 要转换为 2D 的边界球。 | |
projection
|
Object |
GeographicProjection
|
可选 2D 投影。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
static Cesium.BoundingSphere.transform (sphere, transform, result ) → BoundingSphere
将 4x4 仿射变换矩阵应用于边界球体。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 应用变换的边界球。 |
transform
|
Matrix4 | 应用于边界球体的变换矩阵。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
static Cesium.BoundingSphere.transformWithoutScale (sphere, transform, result ) → BoundingSphere
将 4x4 仿射变换矩阵应用于没有尺度的边界球体 未验证变换矩阵具有统一尺度 1。此方法比使用
BoundingSphere.transform
计算一般边界球体变换更快。
Name | Type | Description |
---|---|---|
sphere
|
BoundingSphere | 应用变换的边界球。 |
transform
|
Matrix4 | 应用于边界球体的变换矩阵。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
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 | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
static Cesium.BoundingSphere.unpack (array, startingIndex , result ) → BoundingSphere
从打包数组中检索实例。
Name | Type | Default | Description |
---|---|---|---|
array
|
Array.<Number> | 打包的数组。 | |
startingIndex
|
Number |
0
|
可选 要解包的元素的起始索引。 |
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
修改后的结果参数或新的 BoundingSphere 实例(如果未提供)。
clone ( result ) → BoundingSphere
复制此 BoundingSphere 实例。
Name | Type | Description |
---|---|---|
result
|
BoundingSphere | 可选 存储结果的对象。 |
Returns:
如果未提供修改的结果参数或新的 BoundingSphere 实例。
computePlaneDistances (position, direction, result ) → Interval
由向量计算的距离,从边界球的中心到投影到方向上的位置加上/减去边界球的半径。
如果您想象无限数量的具有法线方向的平面,这将计算与边界球相交的位置到最近和最远平面的最小距离。
如果您想象无限数量的具有法线方向的平面,这将计算与边界球相交的位置到最近和最远平面的最小距离。
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 计算距离的位置。 |
direction
|
Cartesian3 | 从位置的方向。 |
result
|
Interval | 可选 用于存储最近和最远距离的间隔。 |
Returns:
边界球上距离位置方向最近和最远的距离。
计算从边界球体上最近的点到点的估计距离平方。
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);
});
将此 BoundingSphere 与提供的 BoundingSphere 组件进行比较,如果它们相等则返回
true
,否则返回
false
。
Name | Type | Description |
---|---|---|
right
|
BoundingSphere | 可选 右手边的 BoundingSphere。 |
Returns:
如果它们相等,则为
true
,否则为
false
。
intersectPlane (plane) → Intersect
确定球体位于平面的哪一侧。
Name | Type | Description |
---|---|---|
plane
|
Plane | 要测试的飞机。 |
Returns:
如果整个球体在法线指向的平面的一侧,则
Intersect.INSIDE
,如果整个球体在另一侧,则
Intersect.OUTSIDE
,如果球体与平面相交,则
Intersect.INTERSECTING
。
确定球体是否被遮挡物隐藏在视野之外。
Name | Type | Description |
---|---|---|
occluder
|
Occluder | 封堵器。 |
Returns:
如果球体不可见,则为
true
;否则
false
。
计算 BoundingSphere 的半径。
Returns:
BoundingSphere 的半径。