81-canvas

157 阅读2分钟

canvas

  • 作用:进行图形绘制

  • 一般使用场景:

    • 图形化验证码
    • 图形化报表绘制
    • 游戏画面的绘制

设置画布

<canvas width="800" height="200"></canvas>

初始化画笔

// 1.获取canvas标签
let canvas = document.querySelector("canvas")
// 2.获取画笔操作 2d画笔
let pen = canvas.getContext("2d")

绘制线条

  • 属性:

    • lineWidth:设置线条宽度
    • strokeStyle:设置线条颜色
    • lineCap:设置圆角效果
  • 方法:

    • save():保存样式到内存中
    • restore():重置样式为上一次内存中保存的样式
    • beginPath:路径隔离,清除之前的路径
    • moveTo(x轴坐标,y轴坐标):绘制起点
    • lineTo(x轴坐标,y轴坐标):绘制下一个点
    • stroke():绘制在画面中
//1.保存默认样式 空样式
pen.save()
pen.beginPath()

//2.绘制第一条横线  (100,100)  (300,100)
//绘制起点
pen.moveTo(100, 100)
//绘制终点
pen.lineTo(300, 100)

//3.设置样式
pen.lineWidth = 30//设置线条宽度
pen.strokeStyle = "green" //设置线条颜色
pen.lineCap = "round" //设置线条圆角样式

//4.呈现在画布中
pen.stroke()

//5.重置样式
pen.restore()
//绘制第二条线  (100,400)  (300,400)

//6.路径隔离 清除之前的路径记录
pen.beginPath()
pen.moveTo(100, 400)
pen.lineTo(300, 400)
pen.lineWidth = 20
pen.strokeStyle = "pink"
pen.stroke()

//重置样式
pen.restore()

绘制三角形

  • 属性

    • fillStyle:设置填充颜色
  • 方法:

    • closePath():设置路径闭合
    • fill():填充颜色显示在画布中
//进入绘制
pen.save()//保存初始化样式
pen.beginPath()//进行路径隔离

//   确定四个点 (100,50) (100 , 550)  ( 400,550,)  (100,50)pen.moveTo(100,50)
pen.lineTo(100,550)
pen.lineTo(400,550)
// pen.lineTo(100,50)
// 形成闭合图形
pen.closePath()

pen.strokeStyle = "pink"
pen.lineWidth = 30
//设置填充颜色
pen.fillStyle = "green"

//绘制在页面中
pen.stroke()
//填充在页面中
pen.fill()

绘制矩形

  • 绘制线条矩形

    //(x轴坐标,y轴坐标,宽,高)
    pen.strokeRect(50,50,500,400)
    
  • 绘制实心矩形

    //(x轴坐标,y轴坐标,宽,高)
    pen.fillRect(50,50,500,400)
    
  • 确定矩形区域

    pen.rect(50,50,500,400)
    

绘制圆形

pen.arc(圆形x轴坐标,圆形y轴坐标,半径,起始角度,终点角度,是否为逆时针) Math.PI 表示180度

pen.arc(300,300,50,0,Math.PI*2,true)

绘制文字

//设置文字样式
pen.font = "bold 50px 楷体"
//设置文字样式
pen.fillText("123",50,50)