html界面
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Weather</title>
- <script src="../Build/Cesium/Cesium.js"></script>
- <style>
- @import url(../Build/CesiumUnminified/Widgets/widgets.css);
- html,
- body,
- #cesiumContainer {
- width: 100%;
- height: 100%;
- margin: 0;
- padding: 0;
- overflow: hidden;
- }
- </style>
- </head>
- <body>
- <div id="cesiumContainer"></div>
- <script src="nineparticle.js"></script>
- </body>
- </html>
JavaScript代码
- viewer = new Cesium.Viewer('cesiumContainer');
- //创建雨
- function CreateRain() {
- var scene = viewer.scene;
- scene.camera.setView({
- destination: new Cesium.Cartesian3(277096.634865404, 5647834.481964232, 2985563.7039122293),
- orientation: {
- heading: 4.731089976107251,
- pitch: -0.32003481981370063
- }
- });
- //雨更新函数,雪粒子受重力下落
- var rainGravityScratch = new Cesium.Cartesian3();
- var rainUpdate = function (particle, dt) {
- rainGravityScratch = Cesium.Cartesian3.normalize(particle.position, rainGravityScratch);
- rainGravityScratch = Cesium.Cartesian3.multiplyByScalar(rainGravityScratch,-1050.0,rainGravityScratch);
- particle.position = Cesium.Cartesian3.add(particle.position, rainGravityScratch, particle.position);
- };
- //scene.skyAtmosphere.hueShift = -0.97; //光谱颜色
- //scene.skyAtmosphere.saturationShift = 0.25; //实际明暗分界线
- //scene.skyAtmosphere.brightnessShift = -0.4; //颜色对比强烈
- //scene.fog.density = 0.00025; //雾效果浓度
- //scene.fog.minimumBrightness = 0.01; //雾效透明度
- //雨粒子
- var rainParticleSize = scene.drawingBufferWidth / 100.0; //粒子系统大小
- var rainRadius = 100000.0; //半径
- rainSystem = new Cesium.ParticleSystem({
- modelMatrix: new Cesium.Matrix4.fromTranslation(scene.camera.position),
- speed: -1.0,
- lifetime: 15.0,
- emitter: new Cesium.SphereEmitter(rainRadius),
- startScale: 1.0,
- endScale: 0.0,
- image: "../Apps/SampleData/circular_particle.png",
- emissionRate: 9000.0,
- startColor: new Cesium.Color(0.27, 0.5, 0.70, 0.0),
- endColor: new Cesium.Color(0.27, 0.5, 0.70, 0.98),
- imageSize: new Cesium.Cartesian2(rainParticleSize, rainParticleSize * 2),
- updateCallback: rainUpdate
- });
- scene.primitives.add(rainSystem);
- }
- CreateRain();