Cesium 粒子

Posted 游侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cesium 粒子相关的知识,希望对你有一定的参考价值。

鼠标左键单击实现添加 粒子特效,右击停止添加

代码如下:

function fireadd() {
   
     
     
	var firejingdu = 116.6554885;
	var fireweidu = 39.5454545;
	var fireheight = 0;
	var firedata;
	var boolen = true;
	//获取事件触发所在的  html Canvas容器
	firecanvas = viewer.scene.canvas;
	var handler = new Cesium.ScreenSpaceEventHandler(firecanvas);
	handler.setInputAction(function(evt) {
   
     
     
		var pickedObject = viewer.scene.pick(evt.position);
		var cartesian = viewer.scene.pickPosition(evt.position);
		if (Cesium.defined(cartesian)) {
   
     
     
			var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
			var lng = Cesium.Math.toDegrees(cartographic.longitude);
			var lat = Cesium.Math.toDegrees(cartographic.latitude);
			var height = cartographic.height; //模型高度  
			firedata = new Cesium.ParticleSystem({
   
     
     
				image: \'./img/fire1.png\',
				startColor: Cesium.Color.RED.withAlpha(0.7),
				endColor: Cesium.Color.YELLOW.withAlpha(0.3),
				startScale: 0,
				endScale: 10,
				//设定粒子寿命可能持续时间的最小限值(以秒为单位),在此限值之上将随机选择粒子的实际寿命。
				minimumParticleLife: 1,
				maximumParticleLife: 6,
				minimumSpeed: 1,
				maximumSpeed: 4,
				imageSize: new Cesium.Cartesian2(20, 20),
				// Particles per second.
				emissionRate: 4,
				lifetime: 160.0,
				emitter: new Cesium.CircleEmitter(5.0),
				modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(lng, lat,
					height)), //从模型转化成世界坐标

			});
			handler.setInputAction(function(click) {
   
     
     
				boolen = false
			}, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
			var firetileset1 = viewer.scene.primitives.add(firedata);
			firetileset1.show = boolen;

		}
	}, Cesium.ScreenSpaceEventType.LEFT_CLICK);
}

清除粒子特效:
第一种清除单个:

scene.primitives.remove(firedata);
第二种清除全部:
scene.primitives.removeAll();

说明一下:我这是在模型上面单击位置准确,如果你要在地图上位置准确修改获取经纬度方法

最后附上两张火焰照片

pic_9914bc62.png
pic_0e11d120.png

以上是关于Cesium 粒子的主要内容,如果未能解决你的问题,请参考以下文章

Cesium官方教程10--高级粒子特效

Cesium官方教程10--高级粒子特效

Cesium应用篇--添加雨雪天气

基于 React hooks + Typescript + Cesium 的 三维 webgis 实战系列教程

cesium 雷达扫描(附源码下载)

cesium贴地代码