canvas——矩形的绘制——柱状图的制作

(1)rect():在当前子路经添加一条弧线;

语法:context.rect(x,y,width,height);

四个参数: 起点坐标x,y:左上角坐标; 宽度width:矩形的宽度; 高度height:矩形的高度;

(2)strokeRect()方法可以直接绘制一个矩形;

语法:context.strokeRect(x,y,width,height);

柱形图算是一个比较简单的图形了

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    #box {
        border: 1px black solid;
    }
</style>

<body>
    <canvas id="box" height="700" width="700"> </canvas>
    <script>
        /** @type {HTMLCanvasElement} */
        var canvas = document.querySelector("#box")
        var ctx = canvas.getContext("2d")
        var arr=[354,644,231,452,279]
        ctx.lineTo(100,600)
        ctx.lineTo(600,600)
        ctx.stroke()
        let lim=500/Math.max(...arr)
        console.log(lim)
        for(i=0;i<arr.length;i++){
            ctx.beginPath()
            console.log(arr[i])
            ctx.fillStyle="gold"
            ctx.fillRect(100+i*70,600-lim*arr[i],50,lim*arr[i])
        }
    </script>
</body>

</html>

设计思路:假如数组里面就是我们所需要的数据,我们首先要做的就是画一个横轴,来使得我们的柱形图都在横轴上显示,然后设置一个最大值,来保证数组里的数组的高度不能够超过这个最大值,即使超过了也只能有这么多,然后就可以进入for循环去写我们的每个柱形,fillrect()使用颜色去填充这个柱形,他里面的四个参数和strokerect()一样分别是,x,y,柱形的长,柱形的宽,这里的x的值起始就是我们横轴的起始位置,然后加上i*间距,(要注意的是这个间距一定要大于柱形的长,不然就会使得柱形之间重叠),y的值就是横轴y的值减去数组[i]的值*限制高度,因为这个y的值保证要在横轴上,然后写柱形的长,柱形的高度就等于数组[i]的值*限制高度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值