美文网首页
canvas 笔记

canvas 笔记

作者: 切磋琢磨_FE | 来源:发表于2020-09-18 14:55 被阅读0次

    记录一些自己写canvas demo后理解的点

    // 这是前提
    let ctx = canvas.getContext('2d');
    
    0. 我绘制了一个钟表

    点击查看 http://jsrun.net/vY6Kp

    1. ctx.save() 都能保存什么内容?

    路径颜色宽度等等属性肯定是可以保存的。
    变换上下文也能被保存,代码示例:http://jsrun.net/zY6Kp/edit

    2. ctx.closePath() 是用来闭合路径的,而不是关闭 ctx.beginpath()
    3. 扩展 ctx

    2d ctx是CanvasRenderingContext2D的实例,
    所以可以通过下面的方式扩展ctx

    CanvasRenderingContext2D.prototype.test = function(){}
    // 扩展后可以这样调用
    ctx.test();
    

    我自己扩展了一个绘制圆角矩形的方法:http://jsrun.net/aY6Kp/edit

    4. 神奇的贝塞尔曲线

    ctx 提供了两个贝塞尔曲线方法:

    ctx.bezierCurveTo(c1x, c1y, c2x, c2y, x, y) // 两个控制点
    ctx.quadraticCurveTo(c1x, c1y, x, y) // 一个控制点
    

    相关文章

      网友评论

          本文标题:canvas 笔记

          本文链接:https://www.haomeiwen.com/subject/ujrjyktx.html