zoukankan      html  css  js  c++  java
  • 移动端 canvas基础1

    一、canvas画布

    Canvas是HTML5中新出的一个元素,开发者可以通过JS脚本动态绘制图像。

    #1. 创建canvas画布

    在页面中创建canvas标签,并设置其id和宽高 (不要通过css设置,会有bug)
    
    <canvas id="myCanvas" width="500" height="500">
    
     

    #2. 设置画布

    // 1. 通过js设置画布宽高
    var canvas = document.getElementById('myCanvas');
    canvas.width = 800;
    canvas.height = 600;
    
    // 2. 获取上下文对象 (可以理解为获取画笔)
    var cxt = canvas.getContext('2d');
    
     

    #二、绘制 - 线条

    方法描述
    beginPath() 开启路径
    moveTo(x,y) 起始点
    lineTo(x,y) 下一个点
    closePath() 闭合路径
    stroke() 描边绘制
    fill() 填充绘制
    属性描述
    strokeStyle 描边颜色
    fillStyle 填充颜色
    lineWidth 粗细
    lineCap 设置或返回线条端点样式
    butt 默认,平直边缘
    round 圆形线帽
    square 正方形线帽
    lineJoin 设置或返回两条相交线的拐角
    miter 默认,尖角
    round 圆角
    bevel 斜角

    #三、绘制 - 矩形

    方法描述
    rect(x,y,width,height) 需配合stroke()或fill()方法绘制矩形
    fillRect(x,y,width,height) 绘制填充矩形
    strokeRect(x,y,width,height) 绘制矩形边框
    clearRect(x,y,width,height) 清除指定矩形区域

    #四、绘制 - 圆弧

    ==弧线==arc(x,y,r,sAngle,eAngle,counterclockwise)

    参数描述
    x,y 圆心的坐标
    r 圆的半径
    sAngle 起始弧度
    eAngle 结束弧度
    弧度 = Math.PI/180*角度
    counterclockwise 可选。true逆时针,false顺时针

    ==两切线之间的弧线== arcTo(x1,y1,x2,y2,r)

    参数描述
    x1,y1 弧的起点坐标
    x2,y2 弧的终点坐标
    r 半径

    ==绘制扇形==

    cxt.moveTo(x,y);
    cxt.arc(x,y...);
    cxt.closePath();
    
     

    #五、绘制 - 文本

    属性描述
    font 设置或返回文本的当前字体属性
    textAlign 设置或返回文本的对齐方式
    textBaseline 设置或返回文本的基线
    方法描述
    fillText(text,x,y) 绘制填充文本
    strokeText() 绘制描边文本

    #六、绘制 - 图像

    drawImage(img,x,y,width,height)
    
     
    参数描述
    img 要使用的图像、视频
    x 绘制的起始位置x坐标
    y 绘制的起始位置y坐标
    width 可选。宽度
    height 可选。高度

    #七、绘制 - 转换

    方法描述
    scale() 缩放当前绘图至更大或更小
    rotate() 旋转当前绘图
    translate() 重新设置画布原点
    transform() 替换绘图的当前转换矩阵
    setTransform() 将当前转换重置为单位矩阵。然后运行 transform()

    #八、绘制 - 渐变色

    #线性渐变
    var lg = ctx.createLinearGradient(x, y, x1, y1);
    lg.addColorStop(渐变位置,颜色);
    ctx.strokeStyle = lg;
    
     
    #径向渐变
    var rg = cxt.createRadialGradient(起始圆x, 起始圆y, 半径, 结束圆x, 结束圆y, 半径);
    rg.addColorStop(渐变位置,颜色);
    ctx.strokeStyle = rg;
    
     

    #九、多图形组合方式

    ctx.globalCompositeOperation = 
    'source-over' //后画覆盖先画
    'destination-out' //后画清空先画
    
     

    #十、保存画布

    cvs.toDataURL();

  • 相关阅读:
    hello fetch
    git 基础命令
    拜占庭将军
    如何学习区块链
    简单的理解区块链技术
    使用AOP统一验签和校参
    为每个请求分配traceId的两种方式及父子线程本地变量传递
    监听kafka消息
    JVM OOM分析与调优
    JVM内存结构
  • 原文地址:https://www.cnblogs.com/yzy521/p/14132349.html
Copyright © 2011-2022 走看看