Canvas 魅力

H5里有两个透明的标签,一个是video,另一个就是canvas。
canvas的兼容性是IE9+,性能高。
它就相当于画布 路径就是选区。
画图的步骤就是:
1.获取画布
var oC = document.querySelector('#c1');
2.创建画笔
var gd = oC.getContext('2d');
3.起始点 连接点 -> 路径 //moveTo lineTo
4.closePath(可选) 闭合
5.描边/填充 stroke/fill
line 理论上可以画任何图形

    注意:
        1.先做好选区后填充描边
        2.先设置好画笔 后填充描边
        3.注意抬起画笔  gd.beginPath.

例子:
画矩形
gd.strokeRect(x,y,w,h);
gd.fillRect(x,y,w,h);
gd.clearRect(x,y,w,h);

    简易柱状图
        1.分析
            `strokeRect(x,y,w,h)`
            `fillRect`

        2.求最大值
        `var arr=[300,200,50,800,150,900];`
        `var iMax=Math.max.apply(null,arr);`

        3.高度
            循环创建 aHeight=[];
            `aHeight[i] = arr[i]/iMax*oC.height;`

        4.宽度
            `var w = oC.width/(aHeight.length*3-2);`
            `var iSpace = w*2;`

        5.`for(var i = 0;i<aHeight.length;i++){
              gd.fillStyle = '';
              gd.fillRect((w+iSpace)*i,oC.height - aHeight[i],w,aHeight[i]);
          }`

    简易画板
        事件  onmousedown  onmousemove  onmouseup
        `gd.moveTo(ev.clientX-oC.offsetLeft,ev.clientY-oC.offsetTop);
        gd.lineTo(ev.clientX-oC.offsetLeft,ev.clientY-oC.offsetTop);
        gd.stroke();`

    随机生成形状
        `var arr = []; -> [{x:100,y:200},{x:300,y:400},{},{},{}]
        arr[i] = {
            x:rnd(0,oC.width),
            y:rnd(0,oC.height)
        };
        gd.moveTo(arr[0].x,arr[0].y);
        for(var i = 1;i<arr.length;i++){
            gd.lineTo(arr[i].x,arr[i].y);
        }
        gd.closePath();
        gd.stroke();`
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,218评论 2 32
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    J_L_L阅读 5,505评论 0 4
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 9,378评论 3 40
  • 0x001 Canvas是啥? 说白了Canvas就是一块画布,可以使用js当画笔在上面绘画的画布,可以显示在网页...
    卖梳子的鲤鱼阅读 5,948评论 1 21
  • 线条样式 绘制直线,第五章知识简单回顾 lineWidth 设置或返回当前的线条宽度,单位为像素 lineCap ...
    Zd_silent阅读 3,430评论 0 0

友情链接更多精彩内容