ParticleSystem

new Cesium.ParticleSystem(options)

ParticleSystem 管理一组粒子的更新与显示。
Name Type Description
options object optional Object with the following properties:
Name Type Default Description
show boolean true optional 是否显示该粒子系统。
updateCallback ParticleSystem.updateCallback optional 每帧调用以更新一个粒子的回调函数。
emitter ParticleEmitter new CircleEmitter(0.5) optional 该系统的粒子发射器(particle emitter)。
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 粒子系统在完成后是否应循环其迸发(bursts)。
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 用于广告牌(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
粒子系统在完成后是否应循环其迸发(bursts)。
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
一组力回调(force callbacks)数组。回调会接收到一个 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);
}
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。