ParticleSystem

new Cesium.ParticleSystem(options)

ParticleSystem 管理粒子集合的更新和显示。
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 设置在粒子的 particleLife 持续时间内应用于粒子图像的比例。
startScale number optional 应用于粒子生命周期开始时图像的初始比例。
endScale number optional 应用于粒子生命周期结束时图像的最终缩放。
color Color Color.WHITE optional 设置粒子在其 particleLife 持续时间内的颜色。
startColor Color optional 粒子在其生命周期开始时的颜色。
endColor Color optional 粒子在其生命周期结束时的颜色。
image object optional 用于公告牌的 URI、HTMLImageElement 或 HTMLCanvasElement。
imageSize Cartesian2 new Cartesian(1.0, 1.0) optional 如果设置,则覆盖缩放粒子图像尺寸(以像素为单位)的 minimumImageSize 和 maximumImageSize 输入。
minimumImageSize Cartesian2 optional 设置最小边界,宽度乘高度,超过该边界后,以像素为单位随机缩放粒子图像的尺寸。
maximumImageSize Cartesian2 optional 设置最大边界(宽度乘高度),低于该边界时,可以随机缩放粒子图像的尺寸(以像素为单位)。
sizeInMeters boolean optional 设置粒子的大小是以米为单位还是以像素为单位。true 以米为单位调整颗粒大小;否则,大小以像素为单位。
speed number 1.0 optional 如果设置,则用此值覆盖 minimumSpeed 和 maximumSpeed 输入。
minimumSpeed number optional 设置以米/秒为单位的最小限制,超过该限制时,将随机选择粒子的实际速度。
maximumSpeed number optional 设置以米/秒为单位的最大边界,低于该边界将随机选择粒子的实际速度。
lifetime number Number.MAX_VALUE optional 粒子系统发射粒子的时间,以秒为单位。
particleLife number 5.0 optional 如果设置,则使用此值覆盖 minimumParticleLife 和 maximumParticleLife 输入。
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,则粒子系统已达到其生命周期的终点;<否则code>false
粒子系统发射粒子的时间(以秒为单位)。
Default Value: Number.MAX_VALUE
粒子系统是否应该在完成时循环它的爆发。
Default Value: true
设置最大边界 width x height,低于该边界时,将随机缩放粒子图像的尺寸(以像素为单位)。
Default Value: new Cartesian2(1.0, 1.0)
设置粒子的最大质量(以千克为单位)。
Default Value: 1.0

maximumParticleLife : number

设置粒子寿命可能持续时间的最大限制(以秒为单位),低于该限制时将随机选择粒子的实际寿命。
Default Value: 5.0
设置最大限制(以米/秒为单位),低于该限制时将随机选择粒子的实际速度。
Default Value: 1.0
设置最小边界 width x height,超过该边界时,将随机缩放粒子图像的尺寸(以像素为单位)。
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
获取或设置是否粒子大小以米或像素为单位。以米为单位的颗粒大小为 ;否则,大小以像素为单位。
Default Value: false
粒子在其生命周期开始时的颜色。
Default Value: Color.WHITE
应用于粒子生命周期开始时图像的初始比例。
Default Value: 1.0
force 回调数组。回调将传递 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)

用于在每个时间步长修改粒子属性的函数。这可能包括 force 修改、 颜色、尺寸等。
Name Type Description
particle Particle 正在更新的粒子。
dt number 自上次更新以来的时间(以秒为单位)。
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);
}
Need help? The fastest way to get answers is from the community and team on the Cesium Forum.