Cesium 展示——绘制水面动态升高

102 篇文章 55 订阅 ¥59.90 ¥99.00

文章目录

需求

如图,绘制水面动态升高,作为洪水淹没的效果
在这里插入图片描述
在这里插入图片描述

分析

  1. 我们首先需要绘制一个面
  2. 然后给这个面一个高度,
  3. 在回调函数中进行动态设置值【这里有两种,一种是到达水面一定高度停止升高,一种是水面重新升高】
/**
 * @description :洪水淹没
 * @author : 'Hukang'
 * @param : 'viewer' 视图, 'renderArea':渲染区域
 * @date : 2024-08-22 18:11:42
 */
export function startFlood(viewer: any<
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Cesium是一个开源的3D地球可视化引擎,可以用来展示地球上的各种实体。在Cesium动态绘制实体水面需要以下步骤: 1. 导入Cesium库和相关的插件,比如Cesium.js和Cesium-terrain-builder等。 2. 创建一个Cesium Viewer对象,并设置地球的初始位置和视角。 3. 添加水面实体对象,可以使用Cesium的Entity对象来表示水面,其中的属性包括位置、高度、颜色、纹理等。 4. 使用Cesium的时间轴(TimeLine)控件来控制水面实体的动态变化,比如水位的上升和下降等。 5. 根据需要设置其他的场景参数,比如光照、阴影、雾气等。 下面是一个简单的示例代码,演示了如何在Cesium动态绘制实体水面: ```javascript // 创建Cesium Viewer对象 var viewer = new Cesium.Viewer('cesiumContainer', { terrainProvider: Cesium.createWorldTerrain() }); // 设置地球的初始位置和视角 viewer.camera.setView({ destination: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 20000), orientation: { heading: Cesium.Math.toRadians(20), pitch: Cesium.Math.toRadians(-20), roll: 0 } }); // 添加水面实体对象 var waterSurface = viewer.entities.add({ name: 'Water Surface', position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, 0), ellipsoid: { radii: new Cesium.Cartesian3(1000, 1000, 1000), material: new Cesium.Color(0, 0.5, 1, 0.5) } }); // 使用Cesium的时间轴控件来控制水面实体的动态变化 viewer.timeline.addEventListener('settime', function(e) { var time = e.timeJulian; var waterLevel = Math.sin(time) * 50; waterSurface.position = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883, waterLevel); }); // 设置其他的场景参数 viewer.scene.globe.enableLighting = true; viewer.scene.fog.enabled = true; ``` 在以上代码中,我们先创建了一个Cesium Viewer对象,并设置了地球的初始位置和视角。然后,我们添加了一个水面实体对象,使用了Cesium的Entity对象来表示水面,其中的属性包括位置、高度、颜色、纹理等。接着,我们使用Cesium的时间轴控件来控制水面实体的动态变化,根据时间变化来更新水面的高度。最后,我们设置了其他的场景参数,比如光照、阴影、雾气等,以增强场景的真实感和美观度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

博客zhu虎康

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

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

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

打赏作者

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

抵扣说明:

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

余额充值