BoxEmitter
是CesiumJS中的一个类,用于在一个矩形区域内随机发射粒子。该类在ParticleEmitter
类的基础上进行了扩展。
可以通过以下方式创建一个BoxEmitter
对象:
var emitter = new Cesium.BoxEmitter(rectangle);
其中,rectangle
是一个Cesium.Rectangle对象,代表发射粒子的矩形区域。
可以通过以下方式设置BoxEmitter
的属性:
emitter.emitRate = 10;
emitter.minHeight = 1000;
emitter.maxHeight = 2000;
// ...
BoxEmitter
的完整属性如下:
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
rectangle |
Cesium.Rectangle | 必需 | 发射粒子的矩形区域 |
emitRate |
Number | 5 | 每秒发射的粒子数 |
particleLife |
Number | 5.0 | 每个粒子的生命周期(秒) |
minimumSpeed |
Number | 1.0 | 粒子运动的最小速度(米/秒) |
maximumSpeed |
Number | 100.0 | 粒子运动的最大速度(米/秒) |
startScale |
Number | 1.0 | 粒子的初始大小比例 |
endScale |
Number | 1.0 | 粒子的终止大小比例 |
minimumRadius |
Number | 1.0 | 粒子的绕线半径的最小值 |
maximumRadius |
Number | 10.0 | 粒子的绕线半径的最大值 |
minimumAltitude |
Number | 0.0 | 粒子绕线轨迹的最低高度(米) |
maximumAltitude |
Number | 1000.0 | 粒子绕线轨迹的最高高度(米) |
minimumMass |
Number | 1.0 | 粒子的最小质量(千克) |
maximumMass |
Number | 10.0 | 粒子的最大质量(千克) |
minimumEmitterHeight |
Number | 0.0 | 发射器的最低高度(米) |
maximumEmitterHeight |
Number | 0.0 | 发射器的最高高度(米) |
minOmega |
Number | 0.0 | 粒子的绕线速度的最小值(弧度/秒) |
maxOmega |
Number | 0.0 | 粒子的绕线速度的最大值(弧度/秒) |
minPitch |
Number | 0.0 | 粒子的最小偏航角(弧度) |
maxPitch |
Number | 0.0 | 粒子的最大偏航角(弧度) |
minRoll |
Number | 0.0 | 粒子的最小翻滚角(弧度) |
maxRoll |
Number | 0.0 | 粒子的最大翻滚角(弧度) |
minInitialSpeed |
Number | 0.0 | 粒子的最小初始速度(米/秒) |
maxInitialSpeed |
Number | 0.0 | 粒子的最大初始速度(米/秒) |
minAccel |
Number | 0.0 | 粒子的最小加速度(米/秒/秒) |
maxAccel |
Number | 0.0 | 粒子的最大加速度(米/秒/秒) |
minMassChangeRate |
Number | 0.0 | 粒子质量变化的最小速率(千克/秒) |
maxMassChangeRate |
Number | 0.0 | 粒子质量变化的最大速率(千克/秒) |
minVolumeChangeRate |
Number | 0.0 | 粒子体积变化的最小速率(米³/秒) |
maxVolumeChangeRate |
Number | 0.0 | 粒子体积变化的最大速率(米³/秒) |
minColor |
Cesium.Color | [1.0, 1.0, 1.0, 1.0] | 粒子的最小颜色 |
maxColor |
Cesium.Color | [1.0, 1.0, 1.0, 1.0] | 粒子的最大颜色 |
BoxEmitter
的方法如下:
方法 | 描述 |
---|---|
update(time) → [Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean) |
更新粒子状态。其中,time 是距离前一次更新的时间间隔(秒)。返回值表示是否还有活着的粒子。 |
reset() |
重置所有粒子状态,使它们重新从初始状态开始运动。 |
以下是一个使用BoxEmitter
的简单示例:
var viewer = new Cesium.Viewer('cesiumContainer');
var rectangle = Cesium.Rectangle.fromDegrees(-115.0, 30.0, -85.0, 50.0);
var emitter = new Cesium.BoxEmitter(rectangle);
var particleSystem = new Cesium.ParticleSystem({
emitter: emitter,
startScale: 0.5,
endScale: 1.5,
particleLife: 8.0
});
viewer.scene.primitives.add(particleSystem);
在该示例中,我们从-115.0
W,30.0
N到-85.0
W,50.0
N的矩形区域内随机发射粒子。每个粒子的生命周期为8秒,初始大小为0.5倍,结束大小为1.5倍。