在Cesium中,我想做一个半径动态增大和缩小的圆。一开始我考虑使用requestAnimationFrame,不断的调整半径的大小,也就是直接更改Ellipsoid对象的长短轴大小。但是效果不理想,半径调整后这个圆会消失,然后出现调整之后的圆,给人的感觉就是“卡顿”。

直到我看到了这篇文章 Cesium的Property机制总结, 完整了这个功能。

效果图

实现原理

  1. 动态圆
    semiMinorAxissemiMajorAxis指定一个CallbackProperty对象,并返回半径大小。由于要做的是要给圆,长短轴相同,可以抽出一个共同的方法getRadius()。 在CallbackProperty的回调函数中,不断的调整半径的大小,这个就和我们平时常用的requestAnimationFrame一样了。

  2. 颜色渐变
    使用ColorMaterialProperty,根据半径的大小,调整透明度。半径越大,透明度越高。

源码

var r = 0,up = trueconst pos = Cesium.Cartesian3.fromDegrees(120.191, 30.255, 100)const maxRadius = 50const minRadius = 10const step = 1function getRadius() {return new Cesium.CallbackProperty(function (time, result) {if (up) {r += step} else {r -= step}if (r >= maxRadius) {up = false}if (r <= minRadius) {up = true}return r}, false)}viewer.entities.add({position: pos,ellipse: {semiMinorAxis: getRadius(),semiMajorAxis: getRadius(),material: new Cesium.ColorMaterialProperty(new Cesium.CallbackProperty(function (time, result) {return new Cesium.Color(1, 0, 0, 1 - r / maxRadius)})),height: this.target[2],outline: false}})

其他

如果你还有什么问题:

  1. 查看 Cesium的Property机制总结,这个对动画的描述很全面。
  2. 在评论区发言,我会尽量提供我所知道的答案。

Cesium自定义动画相关推荐

  1. Cesium自定义天空盒子图片

    Cesium自定义天空盒子图片 效果图 改造SkyBox代码 const {BoxGeometry,Cartesian3,defaultValue,defined,destroyObject,Deve ...

  2. android 自定义loading,Android自定义动画-StarLoadingView

    今天来分享第二个自定义loading的动画,起了个名字叫 蹦跶的星星 ,还是老规矩先介绍,后上图. 实现效果在最后,GIF有点大,手机流量慎重. 介绍 首先声明做这个动画的初衷是为了学习和分享,所以从 ...

  3. html文字中横线_谈PPT课件中自定义动画应用之内容控制

    本案例来源于一位资深政治教师的课件应用经验. 在她的朋友圈看到: 讲解高考政治主观题课件要这样做才好,材料全部显示完后,再把一些关键字词句用彩色字标注或横线或圆圈标注,然后再分析归纳,哪些字词句是设问 ...

  4. Android 动画汇总-自定义动画

    为什么80%的码农都做不了架构师?>>>    android自定义动画步骤 继承Animation,重写里面的initialize和applyTransformation,在ini ...

  5. [Android]Fragment自定义动画、动画监听以及兼容性包使用

    Fragment是Android在API 11之后加入的一个组件,对提高Android开发中的布局合理性和布局效率都有很大作用,尤其是在Android平板等大屏幕设备的开发中,Fragment的引入能 ...

  6. 自定义动画 animate || 案例:王者荣耀手风琴效果分析

    自定义动画 animate <!DOCTYPE html> <html lang="en"><head><meta charset=&qu ...

  7. jQuery学习笔记系列(一)——入口函数,jQuery对象和DOM对象,jQuery选择器、样式操作、效果(显示隐藏、滑入滑出、淡入淡出、自定义动画、停止动画队列)

    day01 - jQuery 学习目标: 能够说出什么是 jQuery 能够说出 jQuery 的优点 能够简单使用 jQuery 能够说出 DOM 对象和 jQuery 对象的区别 能够写出常用的 ...

  8. 自定义动画属性java_创建酷炫动画效果的10个JavaScript库

    原标题:创建酷炫动画效果的10个JavaScript库 1) Dynamics.jsDynamics.js是设计基于物理规律的动画的重要Java库.它可以赋予生命给所有包含CSS 和SVG属性的DOM ...

  9. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效

    之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...

最新文章

  1. HDFS Java 客户端使用(Windows开发环境)
  2. Vertica数据库
  3. JavaScript复习笔记(1)——AJAX
  4. rhel5 配置yum到centos源
  5. emwin修改text字体颜色_Rggplot2 绘制带颜色条的相关性散点图
  6. java使用httpclient调用上传图片接口[示例]
  7. Android应用程序消息处理机制(Looper、Handler)分析
  8. spark 把一列数据合并_Spark DataFrame列的合并与拆分
  9. kafka消费的三种模式_kafka消费者的三种模式(最多/最少/恰好消费一次)
  10. 层次狄利克雷过程HDP(Hierarchical Dirichlet Processes)
  11. 数据分析案例:预测乳腺癌是否复发
  12. java新手笔记7 找最小、最大、排序
  13. VS的QT插件下载与qt版本下载
  14. 重启验证的三种形式及其解决方法
  15. C++车辆管理系统课程设计
  16. 测国外服务器速度的网站,美国服务器如何测试速度?
  17. 计算机组成实验箱控制信号测,计算机组成原理实验报告-杨睿.doc
  18. linux下安装nvm
  19. echarts 2.0 macarons主题安装
  20. 哈工大计算机学院非全日制,哈尔滨工业大学非全日制研究生上课方式

热门文章

  1. java设定时间实现倒计时_Java 获取当前时间及实现时间倒计时功能【推荐】
  2. python求组合数cnm公式_组合数公式推导Cnm = n! / [(n-m)! * m!]
  3. PytorchStreamReader failed reading zip archive: failed finding central directory
  4. Laya2.0 集成 Protobuf
  5. java代码实现二元一次方程
  6. c++某种文件格式的读取与写入范例[stl]
  7. 如何安装chrome wiz笔记扩展
  8. 三国志2霸王的大陆7个君主的战力
  9. 如何构建一套高可用的移动消息推送平台?
  10. 图像语义分割(3)- Dilated Convolutions