canvas画弧、文字、渐变、旋转、图片、worker

前言:

即使行动导致错误,却也带来了学习与成长;不行动则是停滞与萎缩

--------------------------------正文---------------------------------

画弧

    gd.arc(cx,cy,r,s,e,d);
        cx,cy           圆心位置
        r               半径
        s               开始的弧度
        e               结束的弧度
        d               是否逆时针

文字

   gd.font="大小 类型";
   gd.textAlign             水平对齐    center
   gd.textBaseline          基线对齐    middle
   gd.strokeText(str,x,y);
   gd.fillText(str,x,y);

渐变

  线性渐变
   var lg = gd.createLinearGradient(x1,y1,x2,y2);
   lg.addColorStop(0-1,color);
  球形渐变
   var rg = gd.createRadialGradient(cx1,cy1,r1,cx2,cy2,r2);
   rg.addColorStop(0-1,color);

旋转、平移、放大

    rotate\translate\scale
    所有操作的原点都是画布的左上角
    操作的都是画布

    操作rotate、translate、scale
    画图
    还原
eg:
    保存画布当前状态
    gd.save();
    操作
    画图
    还原回去
    gd.restore();

获取图片数据

    var data = oC.toDataURL('类型');
                image/png       默认
                image/jpeg

图片背景

    oImg.onlaod= function (){
        var cp = gd.createPattern(oImg,'平铺方式');
        //.......
    };

引入外部图片

    gd.drawImage(
        oImg,
        dx, dy
    );
    gd.drawImage(
        oImg,
        dx, dy, dw, dh
    );
    gd.drawImage(
        oImg,
        sx, sy, sw, sh,
        dx, dy, dw, dh
    );

canvas、svg区别

canvas
    位图
        放大会失真
        性能高
    游戏、效果、动画
svg
    矢量图
        放大不会失真
        性能差
    小图标
    不兼容低版本浏览器

WebWorker

    如何开启多线程
    一个线程就是一个js

    主线程
    子线程

    注意:
        不能操作BOM
        不能操作DOM

        计算

    主线程和子线程之间通信
        发送
            worker.postMessage(data);
        接收
            worker.onmessage = function(ev){
                ev.data;
            };

        子线程不能再开子线程。

    不能跨域
WebSQL          Web端的数据库
WebGL           动画
WebWorker       多线程
WebSocket       双向交互
    主动响应客户端
    不只是前端的事,需要后台配合。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,692评论 25 709
  • 版权声明:本文为博主原创文章,未经博主允许不得转载 前言 Canvas 本意是画布的意思,然而将它理解为绘制工具一...
    cc荣宣阅读 41,693评论 1 47
  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 10,188评论 2 32
  • 《山水情》这个动画片是看的第二遍了。是我很喜欢的一部短篇动画篇。它的内容和配乐都十分的出彩,即便是国产动画的古董级...
    四鬼阅读 1,306评论 0 0
  • 2017年7月14日,第86期《中国儿童礼仪讲师资格认证》在广州清凉开课啦!尽管7月中旬的广州阴晴不定,上一刻还晴...
    繁星月夜阅读 1,462评论 0 0