HTML5画布canvas实战(1)--折线图

画布基本教程

画布基础知识和绘制
Canvas MDN

唠唠叨叨

canvas 是 HTML5 新增的元素,可用于通过使用JavaScript中的脚本来绘制图形。例如,它可以用于绘制图形,制作照片,创建动画,甚至可以进行实时视频处理或渲染。

HTML结构

    <style>
        canvas {
    
            border: 1px solid #000;
        }
    </style>
<canvas width="600" height="600"></canvas>

绘制网格线

绘制个普通网格线即可(想展示强大的画工也可以绘制个蜘蛛网出来)

    // 获取画布,渲染上下文,绘制工具箱
    let myCan = document.querySelector('canvas')
    let cxt = myCan.getContext('2d')
    // 设置网格的大小
    let gridSize = 10
    // 获取画布的宽高
    let w = cxt.canvas.width
    let h = cxt.canvas.height
    // 计算出每一行能放多少网格线
    let lineTotalX = Math.floor(w / gridSize)
    let lineTotalY = Math.floor(h / gridSize)
    // 先将X轴的线画出来(记得要去掉1px的不饱和填充)
    for (var i = 0; i < lineTotalX;i++){
   
        cxt.moveTo(i*gridSize - 0.5,0)
        cxt.lineTo(i*gridSize - 0.5,h)
        cxt.strokeStyle = '#eee'
        cxt.stroke()
    }
    for (var i = 0; i < lineTotalY;i++){
   
        cxt.moveTo(0,i*gridSize - 0.5)
        cxt.lineTo(w,i*gridSize - 0.5)
        cxt.strokeStyle = '#eee'
        cxt.stroke()
    }

绘制坐标

新建一个html文件,重新绘制

    let myCan = document.querySelector('canvas')
    let cxt = myCan.getContext('2d')
    // 获取画布的宽高
    let w = cxt.canvas.width
    let h = cxt.canvas.height
    // 设置坐标系原点的空间
    let space = 20
    // 初始化三角形的长度(高)
    let arrowSize = 10
    // 设置原点坐标x,y
    let x = space
    let y = h - space
    // 绘制X轴
    cxt.beginPath()
    cxt.moveTo(x,y)
    cxt.lineTo(w - space,y)
    // 绘制三角形
    cxt.lineTo(w - space - arrowSize,y + arrowSize/2)
    cxt.lineTo(w - space - arrowSize,y - arrowSize/2)
    cxt.lineTo(w - space,y)
    cxt.fill()
    cxt.stroke()
    // 绘制y轴
    cxt.beginPath()
    cxt.moveTo(x,y)
    cxt.lineTo(x,space)
    // 绘制三角形
    cxt.lineTo(x-arrowSize/2,space+arrowSize)
    cxt.lineTo(x+arrowSize/2,space+arrowSize)
    cxt.lineTo(x,space)
    cxt.fill()
    cxt.stroke()

绘制点

    var myCan = document.querySelector('canvas')
    var cxt = myCan.getContext('2d')
    let coordinate = {
   
        x:100,
        y:100
    }
    // 绘制一个大小为10的正方形
    let dottedSize = 10
    cxt.beginPath()
    cxt.moveTo(coordinate.x - dottedSize/2,coordinate.y - dottedSize/2)
    cxt.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值