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();

  • 相关阅读:
    建议博客园搭个威客平台,可行的发展方向和盈利方向
    SQLServer DBA 三十问(第11~20题)
    sqlserver2000中nvarchar保存韩文乱码问题解决
    beginning Linux programming读书笔记(2)之shell编程
    IBM打狗问题
    Perl入门笔记2之第二章 标量数据
    linux面试大全
    结构体对齐详解
    Linux下静态链接库与动态链接库的区别
    Perl入门 笔记1之第一章简介
  • 原文地址:https://www.cnblogs.com/yzy521/p/14132349.html
Copyright © 2011-2022 走看看