参考文档:

https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial/Using_images

图形效果:

代码实现:

                        var cartFlag = true;var personFlag = true;if (personFlag) {// 人的图形canvas.beginPath();  // 开始一个新的路径canvas.rect(0, 0, 60, 60);canvas.fillStyle = rgb; //"rgba(255,255,255,0.6)"; //fillcolor + "88";canvas.fill();  // 路径填充方法canvas.closePath(); // 闭合路径,会把路径最后位置和开始点直线相邻,形成闭合区域// 人图片填充var img = new Image();   // 创建一个<img>元素img.onload = function(){canvas.drawImage(img,-10,5,50,50);}img.src = "/assets/images/person.png";// 当前在线人数canvas.fillStyle = '#FF0000';canvas.textAlign = 'right';  //文本绘制时,指定文本的水平对齐方式canvas.textBaseline = 'center'; // 文本绘制时,指定文本对齐的基线canvas.font = '10px sans-serif';  // 在canvas文本绘制时的字号字体控制canvas.fillText(this.population, 40, 20, 20); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度// 绘制总数canvas.fillStyle = 'blue';canvas.textAlign = 'right';  //文本绘制时,指定文本的水平对齐方式canvas.textBaseline = 'center'; // 文本绘制时,指定文本对齐的基线canvas.font = '10px sans-serif';  // 在canvas文本绘制时的字号字体控制canvas.fillText("/", 44, 25, 5); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度canvas.fillText(90, 54, 35, 15); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度// 绘制进度条canvas.beginPath();var fillcolor = that.getfillclolr(this.population);var rgb = `rgba(${fillcolor.r},${fillcolor.g},${fillcolor.b},1)`;canvas.rect(30,42,28,5);canvas.fillStyle = 'blue'; //"rgba(255,255,255,0.6)"; //fillcolor + "88";canvas.fill();  // 路径填充方法canvas.closePath();// 绘制当前在线占比var activeWidth = this.population*28/90;canvas.beginPath();canvas.rect(30,42,activeWidth,5);canvas.fillStyle = 'red';canvas.fill();  // 路径填充方法canvas.closePath();}if (cartFlag) {// 车的图形canvas.beginPath();canvas.rect(60, 0, 60, 60);canvas.fillStyle = rgb;canvas.fill();canvas.closePath();// 车图片填充var imgCart = new Image();   // 创建一个<img>元素imgCart.onload = function(){canvas.drawImage(imgCart,60,10,30,40);}imgCart.src = "/assets/images/cart.png";// 当前在线车canvas.fillStyle = '#FF0000';canvas.textAlign = 'right';  //文本绘制时,指定文本的水平对齐方式canvas.textBaseline = 'center'; // 文本绘制时,指定文本对齐的基线canvas.font = '10px sans-serif';  // 在canvas文本绘制时的字号字体控制canvas.fillText(this.population, 100, 20, 20); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度// 绘制总数车canvas.fillStyle = 'blue';canvas.textAlign = 'right';  //文本绘制时,指定文本的水平对齐方式canvas.textBaseline = 'center'; // 文本绘制时,指定文本对齐的基线canvas.font = '10px sans-serif';  // 在canvas文本绘制时的字号字体控制canvas.fillText("/", 104, 25, 5); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度canvas.fillText(90, 114, 35, 15); // 用来填充文字,text:填充文本信息;x:起点横坐标;y:起点纵坐标,maxWidth:文本占据最大宽度// 绘制进度条canvas.beginPath();var fillcolor = that.getfillclolr(this.population);var rgb = `rgba(${fillcolor.r},${fillcolor.g},${fillcolor.b},1)`;canvas.rect(90,42,28,5);canvas.fillStyle = 'blue'; //"rgba(255,255,255,0.6)"; //fillcolor + "88";canvas.fill();  // 路径填充方法canvas.closePath();// 绘制当前在线占比var activeWidth = this.population*28/90;canvas.beginPath();canvas.rect(90,42,activeWidth,5);canvas.fillStyle = 'red';canvas.fill();  // 路径填充方法canvas.closePath();}

使用canvas画图形相关推荐

  1. Android Canvas画图形(更新中)

    一.Canvas的常用操作 操作类型 相关API 备注 绘制基本形状 drawPoint, drawPoints, drawLine, drawLines, drawRect, drawRoundRe ...

  2. 微信小程序使用canvas画不规则图形

    一.根据UI在海报中画不同的图片形状的路径,这中用css很简单,用canvas画的话就要了解canvas中的几个方法, 效果图: 代码如下: Page({canvasIdErrorCallback(e ...

  3. HTML5 装饰Canvas中图形

    装饰图形 Canvas为图形提供了一些默认样式,如线条.填充的默认颜色为黑色等.但是,这些默认样式无法满足所有用户的需求,也无法体现Canvas的灵活性,故Canvas为图形定义了一些属性,以便用户自 ...

  4. 如何用 canvas 画出分形图

    前言 分形是一门以非规则几何形态为研究对象的几何学,由曼德勃 罗(B.B.Mandelbrot)等人创立并命名. 分形图从整体上看,是处处不规律的.但从局部观察,图形的规则性又是相同的,即具有自相似的 ...

  5. Canvas画各种线

    Canvas画各种线 阅读数:562 在Canvas中绘制路径,最好加上beginPath()和closePath(). 结合lineTo()绘制不同的路径 closePath()方法创建从当前点到开 ...

  6. 网格画法:原生 Canvas 画网格,可拖动、可放大缩小、并带有坐标系 0 0 位置辅助线

    原生 Canvas 画网格 网格:一种可以在 canvas 面板上绘制图形的辅助线集合. 我们设定 canvas 初始化左上角顶点为 0,0 点,向右

  7. canvas画奥运五环 2019/10/29

    在HbuilderX中用canvas画一个奥运五环. 先用arc画出五个圆环,画布是后画的图形在顶层,再根据圆环相互串压的顺序,新添同心圆笔画,就能画出五环相互勾连的样子了. 基本完成任务,效果简陋, ...

  8. 【前端学习笔记—canvas标签和使用canvas画哆啦A梦案例】

    目录 canvas 1. canvas是H5新增标签 2.使用canvas画出矩形 (1)第一步,要新建画布 (2)第二步,要创建一支画笔 (3)第三步,用canvas画出矩形 3. 如何使用canv ...

  9. 使用canvas画折线图和曲线图

    使用canvas画折线图和曲线图 贝塞尔曲线如果想要在p0=>p2的过程中经过p1,那么需要计算出pc的值,在canvas之中作为控制点 二次贝塞尔曲线转换为三次 上面只是简单介绍,具体的参考文 ...

最新文章

  1. 使用ReaderWriterLock优化文件缓存
  2. 线程同步工具(七)在并发任务间交换数据
  3. python的__get__、__set__、__delete__(1)
  4. 1.2 Java系统流
  5. 127.0.0.1/dokuwiki/install.php,DokuWiki安装+集成markdown编辑器editor.md
  6. 基于supermap webgl三维楼层显隐控制思路
  7. LeetCode 1180. 统计只含单一字母的子串
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的手表销售系统
  9. .net与java之争
  10. 深入浅出 Java Concurrency - 目录 [转]
  11. 10 Seconds Count Down
  12. 【数学题】Multicolored Markers【codeforces-Round #506-div3-F】
  13. CentOS7环境下MySQL升级
  14. X86与X64之间的区别
  15. 程序员的自我修养_之四_曾国藩是如何脱胎换骨的
  16. ajax ruby,在Ruby on Rails中使用AJAX的教程
  17. APIO2019 打铁记
  18. MEION:锁相环锁定状态仿真与板载测试情况分析
  19. git提交规范图-提问的智慧图谱-React 学习路线图- 达克效应
  20. Ubuntu系统的内核架构介绍

热门文章

  1. 网站优化的九大技巧,助力您的SEO策略
  2. 作团队感悟(8)----有效沟通
  3. 腾讯云TDSQL,从数据库巨人身上撕开一道口子
  4. 政务微信内接H5页面,获取当前登录的用户信息
  5. VS自带工具:dumpbin的参数详解
  6. python飞机大战加背景音乐_python实现飞机大战小游戏 python飞机大战中的音频文件怎么改成MP3...
  7. electron+node+node-serialport nodeJs向串口发送数据,自定义收银客显设备
  8. webpack中的 loader
  9. linux(centos 65)下安装 git jdk maven tomcat nginx tomcat mongodb
  10. 【清晰】理解高内聚,低耦合