其实是在元素上绘制了一条线,然后利用canvas 的createLinearGradient函数不断移动线段的样式位置来实现。

因此首先绘制线段

ctx.beginPath();

ctx.moveTo(100, 0);

ctx.lineTo(100, 700);

由于要不断改变其样式,因此要记录起起始位置,然后利用定时器不断重置其位置来实现。

var start = 0;

//改变样式的函数

function auto() {

var grd = ctx.createLinearGradient(0, start, 0, start + 200);

grd.addColorStop(0, "#5BC0DE");

grd.addColorStop(0.5, "#ffff00");

grd.addColorStop(1, "#5BC0DE");

ctx.lineWidth = 5;

ctx.strokeStyle = grd;

ctx.stroke();

ctx.closePath();

if (start >= 700) {

start = 0;

} else {

start = start + 50;

}

}

定时器触发

setInterval(

auto

, 100);

下一步就是将地理坐标转换为屏幕坐标,然后来不断添加飞线,即可完成迁徙图

Canvas 通过改变渐变线的起始点做飞线效果

您的浏览器不支持 HTML5 canvas 标签。

var c = document.getElementById("myCanvas");

var ctx = c.getContext("2d");

var start = 0;

ctx.beginPath();

ctx.moveTo(100, 0);

ctx.lineTo(100, 700);

function auto() {

var grd = ctx.createLinearGradient(0, start, 0, start + 200);

grd.addColorStop(0, "#5BC0DE");

grd.addColorStop(0.5, "#ffff00");

grd.addColorStop(1, "#5BC0DE");

ctx.lineWidth = 5;

ctx.strokeStyle = grd;

ctx.stroke();

ctx.closePath();

if (start >= 700) {

start = 0;

} else {

start = start + 50;

}

}

setInterval(

auto

, 100);

html怎么绘制飞线,绘制飞线,echarts迁徙图原理相关推荐

  1. AMap + echarts、google map + d3.js分别实现数据可视化中的飞线图(迁徙图)

    首先肯定是给出demo啦: 演示demo 直接到左侧选择框中选择View taxi flow里面随便选个日期 总体介绍 最近由于工作室项目需要做一个数据可视化平台,这个平台最终是交由国外人使用的.而国 ...

  2. 飞线5根连接图_“飞线”和“跳线”有什么区别,你用对了吗?电路故障的排查方法...

    短路和开路 上面两张图,左侧是一个完整的电路,灯会点亮.右侧红色的线断开了,导致灯熄灭,这种线路故障叫做开路或者断路. 短路的意思就是电流不经过用电器,电流从正极出来直接走导线,然后回到负极.相当于图 ...

  3. R语言使用ggpubr包的ggline函数绘制各种漂亮形式的线图实战

    R语言使用ggpubr包的ggline函数绘制各种漂亮形式的线图实战 目录 R语言使用ggpubr包的ggline函数绘制各种漂亮形式的线图实战

  4. 【OpenGL】十二、OpenGL 绘制线段 ( 绘制单条线段 | 绘制多条线段 | 依次连接的点组成的线 | 绘制圈 | 绘制彩色的线 )

    文章目录 一.设置线宽度 二.绘制单条线段 GL_LINES 三.绘制多条线段 GL_LINES 四.绘制依次连接的点组成的线 GL_LINE_STRIP 五.绘制圈 GL_LINE_LOOP ( 偶 ...

  5. Coding Party 邀你出战!飞桨黑客马拉松线下场来啦

    12月4-5日,这48H,与100+开发者HACK Together "黑客"很酷?和"黑客"一起"战斗"是种什么样的体验?你参与这场&qu ...

  6. 绘制自己组合的k线图_短线投资者必备的四种双K线组合抄底技巧,次次选中黑马股,精准率超高...

    (本文由公众号越声投研(yslcwh)整理,仅供参考,不构成操作建议.如自行操作,注意仓位控制和风险自负.) 股市里有一句话叫做:"新手死于追高,老手死于抄底",讲的是股市里大多数 ...

  7. VC++ 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor

    目录 利用MFC的CWindowDC类实现画线功能 在桌面窗口中画线 绘制彩色线条 CPen nPenStyle nWidth crColor 接上:VC++ 绘制线条 OnLButtonDown函数 ...

  8. Qt (高仿Visio)流程图组件开发(二) 基本图元绘制 图元间连线绘制

    文章目录 本系列目录 前言 一.如何绘制图元 二.两图元之间如何连线 三.如何实现线跟随图元移动 四.线的位置判断 总结 本系列目录 Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框 ...

  9. 神奇的canvas——点与线绘制的绚丽动画效果

    代码地址如下: http://www.demodashi.com/demo/11636.html 前言 之前在某网站上看到了一个canvas绘制的动画效果,虽然组成的元素很简单,只有点和线,但是视觉效 ...

最新文章

  1. LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
  2. python画五角星填充不同颜色_Python绘制分形树(一)
  3. 使用android快速开发框架afinal的FinalDb操作android数据库
  4. Java基础知识学习(七)
  5. wince -- 线程中SetEvent及WaitForSingleObject用法
  6. SparkStreaming读取Hdfs文件完成wordCount
  7. 软件测试前景和发展方向
  8. 计算机教案 认识键盘,《认识电脑键盘》教案
  9. Spark RDD的Transformation操作
  10. NandFlash驱动移植基础知识
  11. Ayla CEO大卫.弗里德曼:你应该了解的五种物联网大数据!
  12. Silvaco TCAD——二维工艺仿真
  13. unity 音频可视化方案
  14. web学习一——We简介、Tomcat、HTTP协议
  15. 带参宏和带参函数的比较(C语言)
  16. java.sql.SQLException: Access denied for user 'pc'@'localhost' (using passw
  17. java孙膑与庞涓_鬼谷子数问题的JAVA实现
  18. 【ecshop---新增包邮卡功能】
  19. mysql树形结构 无限分类_使用 authenticationDatabase 参数连接 aliyun 上的 MongoDB - SegmentFault 思否...
  20. 用户体验是个什么东西?用户体验如何评价好坏?怎样用一句话描述用户体验评价方法的核心?

热门文章

  1. 最常用的网络应用工具之寻线仪
  2. Swift 后端开发
  3. POJ 1065 Wooden Sticks(LIS,最少链划分)
  4. 在layoutsubviews中设置子控件的frame,保证执行alpha和frame动画流畅度
  5. Nginx+Tomcat搭建高性能负载均衡集群的实现方法
  6. 于无声处 启明星辰吹响工控安全号角
  7. junit单元测试诡异问题
  8. An unknown error occurred.
  9. python-55: 验证码的生成机制
  10. 零点起飞学Visual C++