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();

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

                         最后附上两张火焰照片

在这里插入图片描述
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白学过的代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值