• 移动端 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();

  • 相关阅读:
    web前端技术社区分享
    programming-challenges Shoemaker&#39;s Problem (110405) 题解
    caffe 训练測试自己的数据集
    BootStrap有用代码片段(持续总结)
    H5学习_番外篇_PHP数据库操作
    WPF-MVVM-Demo
    android Toast大全(五种情形)建立属于你自己的Toast
    Java
    记一次死锁问题的排查和解决
    一步一步跟我学习lucene(19)---lucene增量更新和NRT(near-real-time)Query近实时查询
  • 原文地址:https://www.cnblogs.com/yzy521/p/14132349.html
Copyright © 2020-2023  润新知