搞互联网开发特别是web开发的软件人员,如果遇到要做报表类的页面时,经常会遇到要绘制各种各样的图表。在html5出来之前,一般只能用各种js插件来节省开发周期,提高工作效率,今天我就介绍一种比较简便的方法,就是直接利用html5自带的标签canvas。
发表日期: 2020-07-22 09:32:33 浏览次数:254
宿迁网站推广【宿迁官网推广哪个效果好】宿迁百度竞价推广托管、宿迁百度优化推广外包、宿迁全网霸屏推广多少钱、宿迁网络推广一年大概多少费
宿迁,简称“宿”,别称水城,古称下相、宿豫、钟吾,江苏省地级市,是沿海地区向中西部辐射的重要门户城市,徐州都市圈、江淮生态经济区核心城市 ,一带一路节点城市、淮海经济区中心城市之一、中国重要的电子商务中心,是沿东陇海线经济带、沿海经济带和沿长江经济带的重要战略支点 。宿迁地处长三角北翼、江苏北部,南与淮安毗连,东与连云港接壤,北与徐州相连,西与宿州交界。坐拥骆马湖,洪泽湖两大淡水湖,享有“华东净土”、“江苏氧吧”的美誉,截至2018年,宿迁下辖2区、3县,总面积8555平方公里。
宿迁是西楚霸王项羽的故乡,有着5000多年的文明史和2700多年的建城史 ,曾是泗水国、钟吾国、宿国都城,历史悠久,人文荟萃,素有“华夏文明之脉、江苏文明之根、淮河文明之源、楚汉文化之魂”之称。境内下草湾文化遗址,是世界生物进化中心之一,也是人类起源中心之一,被誉为地球上的“生命圣地” 。
宿迁自古便有“北望齐鲁、南接江淮,居两水(即黄河、长江)中道、扼二京(即北京、南京)咽喉”之称 。乾隆六下江南五次驻跸于此,赞叹宿迁为“第一江山春好处”。中国大运河宿迁段及乾隆行宫遗产点入选世界遗产名录。
宿迁是首批12个社会信用体系建设示范城市之一,是中国优秀旅游城市、国家园林城市、国家卫生城市、国家城市设计试点城市、国家知识产权试点城市、联合国环保节能新型示范城市、全国文明城市、中国酒都,洋河、双沟两大名酒出产于此,中国百强城市。
搞互联网开发特别是web开发的软件人员,如果遇到要做报表类的页面时,经常会遇到要绘制各种各样的图表。在html5出来之前,一般只能用各种js插件来节省开发周期,提高工作效率,今天我就介绍一种比较简便的方法,就是直接利用html5自带的标签canvas。
在这里我借用已经写好的一个页面及其相关代码,介绍画直线已经谪仙的基本操作,更多的操作大家可以去网上查找更多资料,不管是学习还是工作,更多的我们要学会自己的学习更多的东西,没有一个人能教会你所有的技能,凡事最终还是得靠自己。
首先我们在自己的页面中写一个canvas标签,格式如下:
<canvas id="myCanvas"></canvas>
这样,我们就在自己的页面中,创建了一个画布。但如果只是这样,还不行,因为仅仅是这样的话你在页面中是看不到的,因为他没有大小,就相当于不可见,不管你做任何操作,都相当于是隐藏了的。所以我们要给他设置大小,代码如下:
<canvas id="myCanvas" width="1080px" height="450px" ></canvas>
这样在我们的页面中就有了一块宽1080px、高450px的画布,接下来我们就可以在这块画布中进行操作了。
因为我本身是要在异步画图,所以我写了以下的js方法。
function drawLine(n){
var mycanvas = document.getElementById("myCanvas");//--1
var mycontext = mycanvas.getContext('2d');//--2
for(var j=336;j>1;j=j-1){
mycontext.beginPath();//--3
mycontext.moveTo(3*(336-j), 450-_data[n][j-1]*30);//--4
mycontext.lineTo(3*(337-j), 450-_data[n][j-2]*30);//--5
if(n==0){
mycontext.strokeStyle = 'rgb(255,0,0)';//--6
}
mycontext.lineWidth = Math.floor(1);//--7
mycontext.save();//--8
mycontext.stroke();//--9
mycontext.restore();//--10
}
}
上面我做了标注,然后一一解释。
1:定义一个mycanvas,获取到页面的画布。
2:以2d的方式,拿到该画布的画笔,因为我们绘制的是2d图像。
3:告诉该画布,我要开始画图了,这样做的目的是让画笔结束之前的操作。如果没有改代码,那么第二次的绘图会连接第一次的绘图。
4:mycontext是一个画笔,moveto是一个方法,顾名思义是“移动到”,所以里面有两个坐标,也就是说画笔移动到坐标指定的点。
5:lineto就是画一条直线,怎么话呢,两点确定一条直线,所以lineto里面也有一个坐标,结合moveto方法,正好就是画一条从moveto方法确定的那个点到lineto方法确定的那个点的一条直线。
6:给画笔设置颜色,注意是rgb方式,我这里因为是画多条线,所以用了判断来设置不同颜色,后面省略了部分if判断的代码。
7:给画笔设置宽度,也就是画出来的线的粗细。
8、9、10:基本上属于固定写法,绘图完毕接上这几行代码,确保每一次绘图的独立性,要不然容易混乱。
上面的方法表面了我是怎么绘图的,有心的朋友可以看到我的方法中串了参数“n”,代码中有一个双重循环,局部变量“i、j”。其实我是画了10条线,根据n的不同话不同的线。而ij是循环控制变量,ij的最大值,配合lineto和moveto方法中移动量大大小,决定了绘制出来的折线图是否尖锐,简单说就是ij移动量越小,绘图次数越多,图像越平滑。以下是我的绘图效果。
最后,如果想重新绘图,调用
mycontext.clearRect(0,0,1200,450);
方法即可。
该方法也是通过两个点来实现清空画布的效果,分别是画布的左上角和右下角,所以一点要清楚自己的画布大小才能准确的擦除画布的部分图像。
7月22日消息 苹果昨天宣布,到 2030 年,Apple 的整个业务将实现碳中和,这包括供应链以及生产的每台设备所使用的电。苹果已经在其全球企业运营中实现了碳中和,这一新的承诺意味着到 2030 年,每一台售出的苹果设备将对气候造成的净碳排放为零。
昨天Apple官方微信号表达了更加具体的举措。
苹果表示,产品越耐用、能效越高,对地球越友好。2008年以来,苹果将产品的平均能耗降低了73%,再乘以全球Apple设备不是个小数目。
宿迁网站推广【宿迁官网推广哪个效果好】宿迁百度竞价推广托管、宿迁百度优化推广外包、宿迁全网霸屏推广多少钱、宿迁网络推广一年大概多少费