cesium火源特效。可挂在经纬度坐标

本文介绍了如何在Cesium地图视图中开启动画效果,并详细展示了如何创建一个粒子系统,包括设置模型矩阵和粒子发射器,以及如何在CesiumViewer中添加粒子效果。
摘要由CSDN通过智能技术生成

首先很重要的一点,一定要在配置地图的时候将动画效果打开。

   const viewer = new Cesium.Viewer('cesiumContainer', {

        shouldAnimate: true,//打开动画效果 important 

    })

下面看粒子源码

import * as Cesium from 'cesium'

export default function particle(urlimg:string) {

    function computeModelMatrix(position: { lon: any; lat: any; alt: any; }) {

        const center = Cesium.Cartesian3.fromDegrees(position.lon, position.lat, position.alt)

        const matrix = Cesium.Transforms.eastNorthUpToFixedFrame(center)

        return matrix

      }

   

      function computeEmitterModelMatrix() {

        let hpr = Cesium.HeadingPitchRoll.fromDegrees(0.0, 0.0, 0.0);//朝向

        let trs = new Cesium.TranslationRotationScale()

        trs.translation = Cesium.Cartesian3.fromElements(0.0,0.0,0.0);

        trs.rotation = Cesium.Quaternion.fromHeadingPitchRoll(hpr);

        let result = Cesium.Matrix4.fromTranslationRotationScale(trs)

        return result

      }

      let particlefire =  new Cesium.ParticleSystem({

        image: '/public/cesium/data/img/fire.png',

        // image: urlimg,

        startColor:Cesium.Color.RED.withAlpha(0.1),//粒子在其生命初期的颜色。

        endColor:Cesium.Color.YELLOW.withAlpha(0.5),//粒子寿命结束时的颜色。

        imageSize: new Cesium.Cartesian2(5, 5),//图片比例 宽高

        startScale: 0.5,//开始大小

        endScale: 4.0,//结束大小

        minimumParticleLife:1.5,//最短存活时间

        maximumParticleLife:3,//最长存活时间

        // lifetime: 16.0,//粒子系统发射粒子的时间

        minimumSpeed:29,

        maximumSpeed:30,

        emissionRate: 100.0,//粒子数

        // particleLife: 1.0,//粒子生命

        // speed: 5.0,//发射速度

        emitter:new Cesium.CircleEmitter(10.0),//生成区域 粒子发射器。

        sizeInMeters:true,//true 米为单位 false 像素为单位,大小不变

        modelMatrix:computeModelMatrix({lon:116.491,lat:39.939,alt:0}),//位置 (世界矩阵)

        // modelMatrix: entity.computeModelMatrix(viewer.clock.startTime, new Cesium.Matrix4()),

        emitterModelMatrix: computeEmitterModelMatrix(),//模型矩阵

      })

      console.log('particlefire',particlefire);

      return particlefire

}

使用直接导入

import particle from '../../resoure/ParticleSystem.ts'

    let particlefire = particle('/public/cesium/data/img/fire.png')

    viewer.scene.primitives.add(particlefire)

即可

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值