ParticleSystem

new Cesium.ParticleSystem(options)

粒子系统管理一组粒子的更新和显示。
Name Type Description
options object optional 具有以下属性的对象:
Name Type Default Description
show boolean true optional 是否显示粒子系统。
updateCallback ParticleSystem.updateCallback optional 每帧调用的回调函数,用于更新粒子。
emitter ParticleEmitter new CircleEmitter(0.5) optional 此系统的粒子发射器。
modelMatrix Matrix4 Matrix4.IDENTITY optional 将粒子系统从模型坐标转换到世界坐标的 4x4 变换矩阵。
emitterModelMatrix Matrix4 Matrix4.IDENTITY optional 在粒子系统局部坐标系中转换粒子系统发射器的 4x4 变换矩阵。
emissionRate number 5 optional 每秒发射的粒子数量。
bursts Array.<ParticleBurst> optional 一个 ParticleBurst 数组,在固定时间间隔内发射粒子弹幕。
loop boolean true optional 粒子系统完成时是否循环其弹幕。
scale number 1.0 optional 设置粒子在其生命周期内图像的缩放比例。
startScale number optional 粒子生命周期开始时应用于其图像的初始缩放比例。
endScale number optional 粒子生命周期结束时应用于其图像的最终缩放比例。
color Color Color.WHITE optional 设置粒子在其生命周期内的颜色。
startColor Color optional 粒子生命周期开始时的颜色。
endColor Color optional 粒子生命周期结束时的颜色。
image object optional 用于广告牌的 URI、HTMLImageElement 或 HTMLCanvasElement。
imageSize Cartesian2 new Cartesian2(1.0, 1.0) optional 如果设置,将覆盖最小图像尺寸和最大图像尺寸,以像素为单位缩放粒子图像的尺寸。
minimumImageSize Cartesian2 optional 设置最小边界(宽度和高度),超过此边界随机缩放粒子图像的尺寸(以像素为单位)。
maximumImageSize Cartesian2 optional 设置最大边界(宽度和高度),低于此边界随机缩放粒子图像的尺寸(以像素为单位)。
sizeInMeters boolean optional 设置粒子的大小是以米还是像素为单位。true 表示粒子以米为单位;否则,大小以像素为单位。
speed number 1.0 optional 如果设置,将使用此值覆盖最小速度和最大速度输入。
minimumSpeed number optional 设置粒子实际速度随机选择的最小边界(以米每秒为单位)。
maximumSpeed number optional 设置粒子实际速度随机选择的最大边界(以米每秒为单位)。
lifetime number Number.MAX_VALUE optional 粒子系统发射粒子的持续时间(以秒为单位)。
particleLife number 5.0 optional 如果设置,将使用此值覆盖最小粒子生命周期和最大粒子生命周期输入。
minimumParticleLife number optional 设置粒子生命周期的最小边界(以秒为单位)。粒子的实际生命周期将在此值之上随机选择。
maximumParticleLife number optional 设置粒子生命周期的最大边界(以秒为单位)。粒子的实际生命周期将在此值之下随机选择。
mass number 1.0 optional 设置粒子的最小和最大质量(以千克为单位)。
minimumMass number optional 设置粒子的质量的最小边界(以千克为单位)。粒子的实际质量将在此值之上随机选择。
maximumMass number optional 设置粒子的最大质量(以千克为单位)。粒子的实际质量将在此值之下随机选择。
Demo:

Members

一个 ParticleBurst 数组,在固定时间间隔内发射粒子弹幕。
Default Value: undefined
当粒子系统到达其生命周期的结束时触发事件。
每秒发射的粒子数量。
Default Value: 5
此系统的粒子发射器。
Default Value: CircleEmitter
在粒子系统局部坐标系中转换粒子系统发射器的 4x4 变换矩阵。
Default Value: Matrix4.IDENTITY
粒子生命周期结束时的颜色。
Default Value: Color.WHITE
粒子生命周期结束时应用于其图像的最终缩放比例。
Default Value: 1.0
用于广告牌的 URI、HTMLImageElement 或 HTMLCanvasElement。
Default Value: undefined
true 时,粒子系统已达到其生命周期的结束;false 否则。
粒子系统将发射粒子的持续时间(以秒为单位)。
Default Value: Number.MAX_VALUE
粒子系统完成时是否循环其弹幕。
Default Value: true
设置最大边界(宽度和高度),低于此边界随机缩放粒子图像的尺寸(以像素为单位)。
Default Value: new Cartesian2(1.0, 1.0)
设置粒子的最大质量(以千克为单位)。
Default Value: 1.0

maximumParticleLife : number

设置粒子生命周期的最大边界(以秒为单位),粒子的实际生命周期将在此值之下随机选择。
Default Value: 5.0
设置粒子实际速度随机选择的最大边界(以米每秒为单位)。
Default Value: 1.0
设置最小边界(宽度和高度),超过此边界随机缩放粒子图像的尺寸(以像素为单位)。
Default Value: new Cartesian2(1.0, 1.0)
设置粒子的最小质量(以千克为单位)。
Default Value: 1.0

minimumParticleLife : number

设置粒子生命周期的最小边界(以秒为单位),粒子的实际生命周期将在此值之上随机选择。
Default Value: 5.0
设置粒子实际速度随机选择的最小边界(以米每秒为单位)。
Default Value: 1.0
将粒子系统从模型坐标转换到世界坐标的 4x4 变换矩阵。
Default Value: Matrix4.IDENTITY
是否显示粒子系统。
Default Value: true
获取或设置粒子的大小是否以米为单位或像素为单位。true 表示以米为单位;否则,大小以像素为单位。
Default Value: false
粒子生命周期开始时的颜色。
Default Value: Color.WHITE
粒子生命周期开始时应用于其图像的初始缩放比例。
Default Value: 1.0
一个包含力回调函数的数组。回调函数接收一个 Particle 和自上次调用以来的差值。
Default Value: undefined

Methods

销毁此对象持有的 WebGL 资源。销毁对象可以确定性地释放 WebGL 资源,而不是依赖垃圾回收器来销毁该对象。

一旦对象被销毁,就不应使用它;调用除 isDestroyed 之外的任何函数将导致 DeveloperError 异常。因此, 将返回值(undefined)分配给对象,如示例所示。
Throws:
See:

isDestroyed()boolean

如果该对象已被销毁,则返回 true;否则返回 false。

如果该对象已被销毁,则不应使用它;调用除 isDestroyed 之外的任何函数将导致 DeveloperError 异常。
Returns:
true 如果该对象已被销毁;否则,false
See:

Type Definitions

Cesium.ParticleSystem.updateCallback(particle, dt)

A function used to modify attributes of the particle at each time step. This can include force modifications, color, sizing, etc.
Name Type Description
particle Particle The particle being updated.
dt number The time in seconds since the last update.
Example:
function applyGravity(particle, dt) {
   const position = particle.position;
   const gravityVector = Cesium.Cartesian3.normalize(position, new Cesium.Cartesian3());
   Cesium.Cartesian3.multiplyByScalar(gravityVector, GRAVITATIONAL_CONSTANT * dt, gravityVector);
   particle.velocity = Cesium.Cartesian3.add(particle.velocity, gravityVector, particle.velocity);
}
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.