HTML5利用canvas绘制动态信号瀑布图
2017-08-24 21:17
1536 查看
HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript)。
不过,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务
createImageData() 方法创建新的空白 ImageData 对象。新对象的默认像素值 transparent black。
对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
R - 红色 (0-255)
G - 绿色 (0-255)
B - 蓝色 (0-255)
A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的)
因此 ,transparent black 表示 (0,0,0,0)。
color/alpha 以数组形式存在,并且既然数组包含了每个像素的四条信息,数组的大小是 ImageData 对象的四倍。(获得数组大小有更简单的办法,就是使用 ImageDataObject.data.length)
包含 color/alpha 信息的数组存储于 ImageData 对象的 data 属性中。
提示:在操作完成数组中的 color/alpha 信息之后,您可以使用 putImageData() 方法将图像数据拷贝回画布上。
目的:在600*100的画布上面滚动显示接收到的信号数据,数据矩阵600*200,一个数据点定义为一个像素点。示例如下:
最终结果:
不过,<canvas> 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来完成实际的绘图任务
createImageData() 方法创建新的空白 ImageData 对象。新对象的默认像素值 transparent black。
对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:
R - 红色 (0-255)
G - 绿色 (0-255)
B - 蓝色 (0-255)
A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的)
因此 ,transparent black 表示 (0,0,0,0)。
color/alpha 以数组形式存在,并且既然数组包含了每个像素的四条信息,数组的大小是 ImageData 对象的四倍。(获得数组大小有更简单的办法,就是使用 ImageDataObject.data.length)
包含 color/alpha 信息的数组存储于 ImageData 对象的 data 属性中。
提示:在操作完成数组中的 color/alpha 信息之后,您可以使用 putImageData() 方法将图像数据拷贝回画布上。
目的:在600*100的画布上面滚动显示接收到的信号数据,数据矩阵600*200,一个数据点定义为一个像素点。示例如下:
<canvas id="myCanvas" style="width:600px;height:100px;border:1px solid #000000"></canvas>
<script type="text/javascript"> var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); c.width = 600; c.height = 100; var imgData=ctx.createImageData(1,1); var index = 0; var t = setInterval(function(){ var r = Math.random(); for(var x = 0;x<600;x++){ for (var i=0;i<imgData.data.length;i+=4) { imgData.data[i+0]=255; imgData.data[i+1]=Math.round(r * 255); imgData.data[i+2]=0; imgData.data[i+3]=255; } ctx.putImageData(imgData,x,index>100?99:index); } index++; if(index > 100){ var img=ctx.getImageData(0,0,600,100); ctx.putImageData(img,0,-1); } if(index == 200){ clearInterval(t); } },10); </script>
最终结果:
相关文章推荐
- HTML5利用canvas绘制太极图案
- HTML5利用Canvas绘制图形(使用图像、裁剪区域、使用文本。阴影效果和操作像素)
- html5学习笔记二:利用canvas绘制简单图形
- HTML5 Canvas动态绘制心型线和玫瑰线
- HTML5利用Canvas绘制图形(Canvas基本知识、绘制矩形、使用路径和图形组合)
- 利用 html5 canvas 简单绘制折线图
- HTML5利用Canvas绘制图形(绘制渐变、模式、变换)
- 网页,html5,canvas,js 动态绘制柱形图
- 利用HTML5中的Canvas绘制一张笑脸的教程
- 怎样将html5中利用canvas绘制的图像在服务端保存为图片?
- HTML5 JS Canvas利用贝塞尔曲线绘制圆角矩形
- 【前端】HTML5 利用canvas绘制柱状图
- 利用HTML5的canvas标签实现灰太狼图像的绘制
- Android中图形的绘制-----自定义View(利用canvas和Path相结合)
- html5 canvas 实现简单绘制折线图
- html5 利用canvas实现超级玛丽简单动画
- 解决html5 canvas 绘制字体、图片与图形模糊问题
- [html5入门-13]html中利用border相关标签绘制三角形、菱形、梯形、圆形和圆环
- HTML5中使用canvas绘制复杂图形
- html5 canvas学习--绘制径向渐变