PerspectiveOffCenterFrustum

new Cesium.PerspectiveOffCenterFrustum(options)

The viewing frustum is defined by 6 planes. Each plane is represented by a Cartesian4 object, where the x, y, and z components define the unit vector normal to the plane, and the w component is the distance of the plane from the origin/camera position.
参数名称 类型 描述信息
options object 可选 An object with the following properties:
参数名称 类型 默认值 描述信息
left number 可选 The left clipping plane distance.
right number 可选 The right clipping plane distance.
top number 可选 The top clipping plane distance.
bottom number 可选 The bottom clipping plane distance.
near number 1.0 可选 The near clipping plane distance.
far number 500000000.0 可选 The far clipping plane distance.
使用示例:
const frustum = new Cesium.PerspectiveOffCenterFrustum({
    left : -1.0,
    right : 1.0,
    top : 1.0,
    bottom : -1.0,
    near : 1.0,
    far : 100.0
});
参考:

成员(属性)

Defines the bottom clipping plane.
默认值: undefined
The distance of the far plane.
默认值: 500000000.0
Gets the perspective projection matrix computed from the view frustum with an infinite far plane.
参考:
Defines the left clipping plane.
默认值: undefined
The distance of the near plane.
默认值: 1.0
Gets the perspective projection matrix computed from the view frustum. The projection matrix will be recomputed if any frustum parameters have changed.
参考:
Defines the right clipping plane.
默认值: undefined
Defines the top clipping plane.
默认值: undefined

方法

Returns a duplicate of a PerspectiveOffCenterFrustum instance.
参数名称 类型 描述信息
result PerspectiveOffCenterFrustum 可选 The object onto which to store the result.
返回值:
The modified result parameter or a new PerspectiveFrustum instance if one was not provided.

computeCullingVolume(position, direction, up)CullingVolume

Creates a culling volume for this frustum.
参数名称 类型 描述信息
position Cartesian3 The eye position.
direction Cartesian3 The view direction.
up Cartesian3 The up direction.
返回值:
A culling volume at the given position and orientation.
使用示例:
// Check if a bounding volume intersects the frustum.
const cullingVolume = frustum.computeCullingVolume(cameraPosition, cameraDirection, cameraUp);
const intersect = cullingVolume.computeVisibility(boundingVolume);
Compares the provided PerspectiveOffCenterFrustum componentwise and returns true if they are equal, false otherwise.
参数名称 类型 描述信息
other PerspectiveOffCenterFrustum 可选 The right hand side PerspectiveOffCenterFrustum.
返回值:
true if they are equal, false otherwise.

equalsEpsilon(other, relativeEpsilon, absoluteEpsilon)boolean

Compares the provided PerspectiveOffCenterFrustum componentwise and returns true if they pass an absolute or relative tolerance test, false otherwise.
参数名称 类型 默认值 描述信息
other PerspectiveOffCenterFrustum The right hand side PerspectiveOffCenterFrustum.
relativeEpsilon number The relative epsilon tolerance to use for equality testing.
absoluteEpsilon number relativeEpsilon 可选 The absolute epsilon tolerance to use for equality testing.
返回值:
true if this and other are within the provided epsilon, false otherwise.

getPixelDimensions(drawingBufferWidth, drawingBufferHeight, distance, pixelRatio, result)Cartesian2

Returns the pixel's width and height in meters.
参数名称 类型 描述信息
drawingBufferWidth number The width of the drawing buffer.
drawingBufferHeight number The height of the drawing buffer.
distance number The distance to the near plane in meters.
pixelRatio number The scaling factor from pixel space to coordinate space.
result Cartesian2 The object onto which to store the result.
返回值:
The modified result parameter or a new instance of Cartesian2 with the pixel's width and height in the x and y properties, respectively.
Throws:
使用示例s:
// Example 1
// Get the width and height of a pixel.
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, 1.0, scene.pixelRatio, new Cesium.Cartesian2());
// Example 2
// Get the width and height of a pixel if the near plane was set to 'distance'.
// For example, get the size of a pixel of an image on a billboard.
const position = camera.position;
const direction = camera.direction;
const toCenter = Cesium.Cartesian3.subtract(primitive.boundingVolume.center, position, new Cesium.Cartesian3());      // vector from camera to a primitive
const toCenterProj = Cesium.Cartesian3.multiplyByScalar(direction, Cesium.Cartesian3.dot(direction, toCenter), new Cesium.Cartesian3()); // project vector onto camera direction vector
const distance = Cesium.Cartesian3.magnitude(toCenterProj);
const pixelSize = camera.frustum.getPixelDimensions(scene.drawingBufferWidth, scene.drawingBufferHeight, distance, scene.pixelRatio, new Cesium.Cartesian2());