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 用于 billboard 的 URI、HTMLImageElement 或 HTMLCanvasElement。
imageSize Cartesian2 new Cartesian2(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
用于 billboard 的 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)

用于在每个时间步修改粒子属性的函数。可以包括力的修改、 颜色、大小等。
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.