文章目录

  • 1.实现效果
  • 2.实现方法
    • 2.1材质实现
    • 2.2代码调用

Cesium实战系列文章总目录: 传送门

1.实现效果

2.实现方法

2.1材质实现

创建螺旋圆的材质circleSpiralMaterialProperty.js:

/** @Description: 螺旋圆效果(参考开源代码)* @Version: 1.0* @Author: Julian* @Date: 2022-03-03 18:38:39* @LastEditors: Julian* @LastEditTime: 2022-03-03 18:50:00*/
class CircleSpiralMaterialProperty {constructor(options) {this._definitionChanged = new Cesium.Event();this._color = undefined;this._speed = undefined;this.color = options.color;this.speed = options.speed;};get isConstant() {return false;}get definitionChanged() {return this._definitionChanged;}getType(time) {return Cesium.Material.CircleSpiralMaterialType;}getValue(time, result) {if (!Cesium.defined(result)) {result = {};}result.color = Cesium.Property.getValueOrDefault(this._color, time, Cesium.Color.RED, result.color);result.speed = Cesium.Property.getValueOrDefault(this._speed, time, 10, result.speed);return result}equals(other) {return (this === other ||(other instanceof CircleSpiralMaterialProperty &&Cesium.Property.equals(this._color, other._color) &&Cesium.Property.equals(this._speed, other._speed)))}
}Object.defineProperties(CircleSpiralMaterialProperty.prototype, {color: Cesium.createPropertyDescriptor('color'),speed: Cesium.createPropertyDescriptor('speed')
})Cesium.CircleSpiralMaterialProperty = CircleSpiralMaterialProperty;
Cesium.Material.CircleSpiralMaterialProperty = 'CircleSpiralMaterialProperty';
Cesium.Material.CircleSpiralMaterialType = 'CircleSpiralMaterialType';
Cesium.Material.CircleSpiralMaterialSource = `uniform vec4 color;uniform float speed;#define PI 3.14159265359vec2 rotate2D (vec2 _st, float _angle) {_st =  mat2(cos(_angle),-sin(_angle),  sin(_angle),cos(_angle)) * _st;return _st;}czm_material czm_getMaterial(czm_materialInput materialInput){czm_material material = czm_getDefaultMaterial(materialInput);vec2 st = materialInput.st * 2.0 - 1.0;st *= 1.6;float time = czm_frameNumber * speed / 1000.0;float r = length(st);float w = .3;st = rotate2D(st,(r*PI*6.-time*2.));float a = smoothstep(-w,.2,st.x) * smoothstep(w,.2,st.x);float b = abs(1./(sin(pow(r,2.)*2.-time*1.3)*6.))*.4;material.alpha = a * b ;material.diffuse = color.rgb * a * b  * 3.0;return material;}`Cesium.Material._materialCache.addMaterial(Cesium.Material.CircleSpiralMaterialType, {fabric: {type: Cesium.Material.CircleSpiralMaterialType,uniforms: {color: new Cesium.Color(1.0, 0.0, 0.0, 1.0),speed: 10.0},source: Cesium.Material.CircleSpiralMaterialSource},translucent: function(material) {return true;}
})

2.2代码调用

引入材质js文件后,使用entity方式创建圆,并设置其材质即可。

// 螺旋圆特效
this.viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(113.9236839, 22.528061),name: "螺旋圆",ellipse: {semiMinorAxis: 1000.0,semiMajorAxis: 1000.0,material: new Cesium.CircleSpiralMaterialProperty({color: new Cesium.Color(1, 1, 0, 0.7),speed: 12.0,})}})

cesium实现动态圆效果之——螺旋圆相关推荐

  1. [cesium] 基于Cesium的动态泛光效果示例

    抽空将之前的功能单独抽出来写成一个模块,方便单独调用,配合单个模块写了一些示例 可以兼容各个基于cesium底层库的三方框架,引入即可. 效果 模型光源模拟 动态泛光墙 泛光面 城市泛光线 建筑物调整 ...

  2. cesium实现动态圆效果之——图片雷达

    文章目录 1.实现效果 2.实现方法 Cesium实战系列文章总目录:传送门 1.实现效果 2.实现方法 通过entity方式创建圆形,并使用回调函数旋转材质即可实现图片雷达效果. 具体代码如下,包含 ...

  3. 使用html制作圆弧正方形,JavaScript+html5 canvas制作的圆中圆效果实例

    本文实例讲述了JavaScript+html5 canvas制作的圆中圆效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: demo #canvas { background: ...

  4. 掌财社:前端接口怎么实现canvas动态图形效果?方法详情!

    我们在通过上个文章中的分享我们知道大概有关于如何利用canvas来进行图形绘制这方面的相关内容,那么今天我们接着来说说有关于"前端接口怎么实现canvas动态图形效果?"这个问题的 ...

  5. OpenGL 画出雷达动态扫描效果(二) 非底图

    OpenGL 画出雷达动态扫描效果(一)中给出了已一张图片作为底图的雷达扫面程序 如果有漂亮的雷达底图的话,效果应该非常不错的,另外也可以直接手绘雷达框架 效果如下 雷达主体代码 glLineWidt ...

  6. Cesium|xt3d动态轨迹线

    Cesium|xt3d动态轨迹线 效果 代码 预览地址 效果 代码 <!DOCTYPE html> <html lang="zh-CN"><head& ...

  7. cesium实现昼夜交替效果

    文章目录 1.实现效果 2.实现方法 2.1实现思路 2.2具体代码 Cesium实战系列文章总目录: 传送门 1.实现效果 2.实现方法 2.1实现思路 (1)加载两个图层 为模拟昼夜更替效果,首先 ...

  8. 实现类似表格内容动态滚动效果

    文章目录 需求背景 效果图 实现思路 示例代码 需求背景 在一些大屏首页展示上,通常会有一些表格展示,由于大屏的特殊性,不会有人专门去操作这个页面查看相应数据,一般都会采用动态滚动的效果.下面是具体的 ...

  9. 【CSON原创】HTML5字体动态粒子效果发布

    功能说明: 输入字体,按确定后,右侧画布出现字体的动态粒子效果. 效果预览: 输入显示内容: 实现分析: 之前看过hongru的事情没有想象中那么难--JX官网首页3D粒子效果,和当耐特砖家的HTML ...

最新文章

  1. 在CentOS 7.7 x86_64上安装python3的selenium 3模块实录
  2. 【Flask项目】项目准备之-创建User模型类
  3. “九韶杯”河科院程序设计协会第一届程序设计竞赛 【前六题解析】
  4. 拦截锚点修改url_前端系列课程(2)-网络基础概念(URL)
  5. Xtrabackup 安装使用
  6. linux—命令汇总
  7. 利用doc命令启动与关闭服务
  8. 计算机组成原理R0bus是什么,计算机组成原理实验 堆栈寄存器实验
  9. Mysql数据库名和表名的大小写敏感性问题
  10. 【转】在centos linux上安装jdk7
  11. 在windows 7上是否可以运行win 10的应用
  12. 计算机编程入门基础知识(计算机组成原理/操作系统/计算机网络)
  13. Linux Mint 19.2版安装教程
  14. Windows利用系统自带的Dism命令挂载wim文件
  15. 播放器无法挂载.VTT文件字幕(Coursera)
  16. knex.js中文文档
  17. 【转载】HTML之图像的处理(六)
  18. RTX4070ti-40系列显卡配置pytorch深度学习环境过程
  19. 腾讯手游助手链接资源更新服务器失败怎么办,腾讯手游助手更新刺激战场提示网络出现异常更新失败怎么办?...
  20. python基础练习之打飞机

热门文章

  1. 关于vs2019安全函数localtime_s()的用法
  2. 基于ImagePy工具的岩块图像二值化分割研究
  3. swoft框架,开发遇到基本坑
  4. 2015阿里实习生面试
  5. skywalking源码分析第十八篇一agent端Trace三部曲一Span栈桢机制
  6. 微信小程序搭建新闻列表(跟进上一篇博客案例)
  7. 中国无线物联网传感器市场现状研究分析与发展前景预测报告(2022)
  8. 表格的边框如何做到和EXCEL的外边框为粗线,内部为细线的效果
  9. 让用户输入一个三位数(若不是三位数则提示错误),判断该数是否是水仙花数。(水仙花数:每一位上的数字的立方和,等于该数本身)
  10. 【Python报错解决】from PIL import Image 提示调用_imaging失败,已解决