canvas实现一个线性图
先写一个借用图片的简单线性图
方法 drawImage(image, x, y)
其中 image
是 image 对象,x
和 y 是其在目标 canvas 里的起始坐标。
var canvas = document.getElementById('canvas');canvas.width='300';canvas.height='300';var ctx = canvas.getContext('2d');draw()function draw(){var image = new Image();//创建Image对象image.src='images/1.png';//指定路径image.onload=function(){//图片加载完成后执行的函数ctx.drawImage(image,0,0);//绘制图片ctx.beginPath();//这里开始画线条ctx.moveTo(30,106);ctx.lineTo(70,46);ctx.lineTo(103,76);ctx.lineTo(170,15);//执行绘画ctx.stroke();}}
结果如下
来一个全部自己划线的(包括坐标)
var canvas = document.getElementById('canvas');canvas.width='600';canvas.height='300';var ctx = canvas.getContext('2d');var x0=30,//x轴0处坐标y0=280,//y轴0处坐标x1=560,//x轴顶处坐标y1=30,//y轴顶处坐标dis=30;draw();function draw(){//先绘制X和Y轴ctx.beginPath();ctx.lineWidth=1; ctx.moveTo(x0,y1);//笔移动到Y轴的顶部ctx.lineTo(x0,y0);//绘制Y轴ctx.lineTo(x1,y0);//绘制X轴ctx.stroke();//绘制虚线和Y轴值 var yDis = y0-y1;var n=1;ctx.fillText(0,x0-20,y0);//x,y轴原点显示0ctx.save();while(yDis>dis){ctx.beginPath();//每隔30划一个虚线ctx.setLineDash([2,2]);//实线和空白的比例ctx.moveTo(x1,y0-dis);ctx.lineTo(x0,y0-dis);ctx.fillText(dis,x0-20,y0-dis);//每隔30划一个虚线dis+=30;ctx.stroke();}ctx.restore();var xDis=90//设定月份之前的间距//绘线条、底部的月份、数据值ctx.beginPath();for(var i=0;i<6;i++){//假设有6个月var height = Math.round(Math.random()*220+20);//在一定范围内随机高度var rectX=x0+xDis*i,//x位置rectY=height;//y位置ctx.lineTo(rectX,y0-rectY);//设定线的走向ctx.fillText((i+1)+'月份',rectX-10,y0+15);//绘制最下面的月份ctx.fillText(rectY,rectX,y0-rectY-5);//显示值}//最后统一划线ctx.stroke();}
效果图
canvas实现一个线性图相关推荐
- python程序、画一个笑脸_使用Canvas绘制一个笑脸图
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 var data = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ...
- 用canvas画一个太极图(八卦图)
用canvas画一个太极图(八卦图) 源码展示链接: https://yanhappiness.github.io/Notes/canvas_src.html 理解什么是canvas canvas是H ...
- html5 自动扣图,利用canvas实现一个抠图小工具
本文作者:IMWeb 孙世吉 未经同意,禁止转载 利用canvas实现一个抠图小工具 0 前言 作为新一代的前端开发工程师,PS抠图切图已经不是必备技能了,我们有UI/交互/视觉等更专业的设计同学帮我 ...
- 第166天:canvas绘制饼状图动画
canvas绘制饼状图动画 1.HTML 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 < ...
- 封装构造函数,用canvas写饼状图和柱状图
封装构造函数,用canvas写饼状图和柱状图 封装函数 // 场景 function XDLScence( options ) {this.stage = options.stage;//执行场景的初 ...
- 利用微软平台生成报表,线性图,柱形图
说来惭愧,以前的工作中一直借助第三方dll进行报表制作,比如线性图,柱形图. 因为现在工作的这家公司不允许随便引入第三方dll,听同事说起可以建rdl类型文件进行引入到winform窗体中,窗体上使用 ...
- canvas 封装一个自己的 icon 库
canvas 封装一个自己的 icon 库 1. 概述 2. 实验目标 3. 实现思路解析与代码 3.1 创建文件 3.2 实现思路 3.3 完整代码 4. end 1. 概述 一个好的前端,是能够在 ...
- 用canvas实现九宫格切图之手把手教学(uniapp+ts)
uniapp用canvas实现九宫格切图(typescript) 前言 上传图片 展示图片 画布 下载图片 最终效果 总结 前言 这几天工作比较轻松,所以就有时间发下呆,突然想起前段时间用了一个九宫格 ...
- 小程序利用canvas实现波浪动态图,原生canvas的部分限制
小程序利用canvas实现波浪动态图 小程序的canvas与该动态图的问题 首先上效果图片 下面直接上代码 小程序的canvas与该动态图的问题 小程序的canvas与html的canvas实现是完全 ...
最新文章
- 检查linux是否安装zlib,Linux下安装zlib
- es6中组件属性的形式
- [翻译][1.4.2]Flask-Admin入门介绍
- 子类如果不实例化则不会调用它自身的静态构造函数
- Java和JavaScript区别与联系
- Android一个自定义的进度环:ProgressChart
- 孵化业务快速落地与优化
- 浅谈种子搜索算法及C++实现方法
- 一个很好用的DBHelper类(包括使用SQL语句 存储过程 事务 做相关操作) 入门级
- Chrome浏览器 开发者工具中的 Performance
- Win7 局域网内简单共享的设置
- 惠普服务器如何修改ip地址,HP网络打印机如何设置IP地址
- 条形码类型及常见条形码介绍
- 计算机组装与维护研究内容,计算机组装与维护论文大纲格式模板 计算机组装与维护论文提纲怎么写...
- postman中文汉化版
- 二层交换机与三层交换机区别
- 带宽叠加是什么意思?
- 求解函数最值的几种算法,梯度下降法python实现
- Java小白 前端后端开发 环境搭建【jdk+idea+webstorm+maven+nodejs+vue+mysql】
- JSP——猜英文小写字母的Web小游戏