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 设置在粒子生命周期内应用到粒子图像的缩放比例。
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 和 maximumImageSize 输入,这些输入会按像素缩放粒子图像的尺寸。
minimumImageSize Cartesian2 optional 设置最小边界(宽 x 高),粒子图像的尺寸将在这个范围以上随机缩放。
maximumImageSize Cartesian2 optional 设置最大边界(宽 x 高),粒子图像的尺寸将在这个范围以下随机缩放。
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.