Skip to content

概述

javascript
const viewer = new Cesium.Viewer('cesiumContainer', {
  shouldAnimate: true,
})

const pointEntity = viewer.entities.add({
  id: "point1",
  position: Cesium.Cartesian3.fromDegrees(121.47, 31.23, 500),
  point: {
    pixelSize: 12,
    color: Cesium.Color.YELLOW,
  }
})

viewer.scene.primitives.add(
  new Cesium.ParticleSystem({
    image: "/smoke.png",
    // 每秒多少个粒子
    emissionRate: 5.0,  
    // 设置每个粒子的大小,单位是 像素
    imageSize: new Cesium.Cartesian2(25.0, 25.0),
    // 粒子显示在实体对应位置
    modelMatrix: pointEntity.computeModelMatrix(
      viewer.clock.startTime,
      new Cesium.Matrix4()
    ),
    // 粒子速度
    speed: 5.0,
    // lifetime需要和loop配合使用,否则会无线循环
    lifetime: 10.0,
    loop: false,
    // 指定时间发射粒子爆发数
    bursts: [
      new Cesium.ParticleBurst({ time: 5.0, minimum: 300, maximum: 500 }),
      new Cesium.ParticleBurst({ time: 10.0, minimum: 300, maximum: 500 }),
      new Cesium.ParticleBurst({ time: 15.0, minimum: 300, maximum: 500 }),
    ],
    // 粒子样式
    startColor: Cesium.Color.YELLOW,
    endColor: Cesium.Color.BLUE,
  })
)

viewer.trackedEntity = pointEntity
/