title

canvas形状

  • 创建canvas

    <canvas id="canvas" width="400" height="400"></canvas>

    类似于image标签,有width和height属性

  • js绘制

    • 获取canvas的dom元素

    • 获取dom元素的canvas绘制上下文

      const dom = document.getElementById('canvas') let ctx = canvas.getContext('2d')
  • 形状

    • 线性

      ctx.beginPath() //开始路径 ctx.moveTo(60, 60) //每次路径的起点坐标 (x,y横坐标和纵坐标) ctx.lineTo(100, 60) // 一个线性的交点 ctx.lineTo(60, 100) // 一个线性的交点 ctx.closePath() // 关闭路径绘制 ctx.fill() //填充 ['stroke']
    • 圆弧

      ctx.beginPath() ctx.arc(100, 200, 40, 0, 2 * Math.PI, true) // (x,y,半径,起始角度,终止角度,是否顺时针) ctx.fill()
    • 二次贝塞尔曲线

      ctx.moveTo(140, 400) // (起始点的坐标) ctx.quadraticCurveTo(15, 400, 100, 500) // (一个控制点的坐标和终止点的坐标) ctx.closePath() ctx.stroke()
    • 三次贝塞尔曲线

      ctx.moveTo(140, 600) //(起始点的坐标) ctx.bezierCurveTo(15, 260, 30, 300, 200, 500) // (一个控制点的坐标,另一个控制点的坐标,终止点的坐标) ctx.closePath() ctx.stroke()
  • Path2D 对象

    let rectangle = new Path2D() rectangle.rect(300, 60, 80, 80) ctx.fill(rectangle) let circleangle = new Path2D() circleangle.arc(340, 200, 40, 0, 2 * Math.PI, true) ctx.stroke(circleangle)
    • 把形状路径存为Path2D对象,随时取用