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();
说明一下:我这是在模型上面单击位置准确,如果你要在地图上位置准确修改获取经纬度方法
最后附上两张火焰照片
以上是关于Cesium 粒子的主要内容,如果未能解决你的问题,请参考以下文章