zoukankan      html  css  js  c++  java
  • html5 canvas

    The HTML5 <canvas> element is used to draw graphics, on the fly, via scripting (usually JavaScript).

    1、<canvas>本身没有外观,只是在文档中创建了一个画板,我们需要使用脚本来画图

    2、IE9前的浏览器不支持canvas

    3、使用canvas画图如果需要移动时需要擦除后重新绘制,区别于svg

    4、画图api大部分定义在canvas对象getContext("2d")获得的上下文对象上(CanvasRenderingContext2D对象)

    5、每个canvas元素只有一个上下文对象,同一元素每次调用getContext()时得到的是同一个上下文对象

    6、canvas允许保存当前图像状态,并且在已保存的状态间切换; 使用save()保存,使用restore()恢复


    eg:创建canvas,获取CanvasRenderingContext2D对象:

    var canvas = document.getElementById("square");
    var context = canvas.getContext("2d");
    
    <canvas id="square" width=10 height=10></canvas>

    创建路径


    创建路径:eg:

    //路径定义
    context.beginPath();
    context.moveTo(100,100); //从100,100开始定义一条新的子路径
    context.lineTo(200,200); //从100,100到200,200绘制线段
    context.lineTo(300,400);//从200,200到300,400绘制线段
    
    //绘制和填充路径
    context.fill(); //填充
    context.stroke();  //绘制

    设置样式:


    设置样式:

    context.fillStyle = "#ccc";  //填充颜色
    context.strokeStyle = "#008"; //绘制颜色
    context.lineWidth = 5; //线宽
    
    context.fill();
    context.stoke();

    保存和获取图像状态:


    保存和获取图像状态:

    context.restore(); //恢复最后一次保存的图像状态
    context.save(); //再次保存以便下次使用

    可以封装为如下工具函数,从状态栈中弹出最后一次保存的状态:

    CanvasRenderingContext2D.prototype.revert = function(){
        this.restore();
        this.save();
        return this;
    }

    return this实现链式调用

    坐标系变换:


    坐标系变换:

    translate(): 上下左右移动  + 或者 -

    rotate(): 顺时针旋转  x + sin  y-cos

    scale(): x和y轴进行延长或者缩短 *

    颜色


    颜色:支持RGB, RGBA, HSL, HSLA颜色空间,通过设置strokeStyle和fillStyle实现

    HSL: hue, saturation, lightness

    对于任何hsl颜色,亮度为100%时颜色都为纯白色;凡是亮度为0的颜色都是黑色

    eg:

    "#222";
    
    "rgb(60,60,60)";
    
    "rgba(60,60,60,0.5)";
    
    ''transparent";
    
    "hsl(60,100%, 50%)";
    
    "hsla(60, 100%,50%,0.6)";

    文本相关:


    文本相关:

    fillText();
    
    strokeText();
    
    textAlign();
    
    textBaseLine();

    阴影:

    shadowColor
    
    shadowOffsetX
    
    shadowOffsetY
    
    shadowBlur

    其他:

    sparkline: 迷你图,用于显示少量数据的图形,通常嵌入在文本流中,用于描述内嵌在文本、数字、图片中的且高分辨率的图形

  • 相关阅读:
    LeetCode1:Two Sum
    LeetCode127:Word Ladder II
    LeetCode126:Word Ladder
    LeetCode128:Longest Consecutive Sequence
    LeetCode129:Sum Root to Leaf Numbers
    LeetCode130:Surrounded Regions
    LeetCode132:Palindrome Partitioning II
    LeetCode131:Palindrome Partitioning
    2014腾讯实习生招聘武汉试题
    React:受控组件与非受控组件混用实战
  • 原文地址:https://www.cnblogs.com/wishyouhappy/p/3793183.html
Copyright © 2011-2022 走看看