canvas绘制文本和清除绘制

本文介绍了如何在HTML5 canvas上使用fillText和strokeText绘制文本,展示了文本颜色、字体设置以及对齐方式,并详细讲解了clearRect方法用于清除绘制区域。通过实例演示了如何结合这些技术提升图表的可读性和灵活性。
摘要由CSDN通过智能技术生成

绘制文本

绘制文本的方法有两种:fillText和strokeText

fillText()有五个参数,第一个参数为绘制内容(字符串),第二个参数为起点x轴坐标,第三个参数为起点y轴坐标后两个参数可选,为最大宽度和最大高度。

strokeText类似,但是它无填充,简单来说就是文字不能被修改颜色。

文本颜色使用fillStyle属性指定

文本字体使用font属性指定:font:"字体大小  字体样式",两个值缺一不可。

textAlign属性指定水平方向对齐方式;

属性值有:start、left、center、right、end

textBaseline则指定垂直方向。

属性值有:top、hanging、middle 、alphabetic、ideographic、bottom

学会绘制文本后,我们完善一下昨天写的柱状图。

 <style>
        #cav{
            border: 1px solid black;
        }
    </style>
</head>
<body>
    <canvas id="cav" width="500" height="400"></canvas>
    <script>
        var cav =document.querySelector("#cav")
        var ctx= cav.getContext("2d")
        ctx.moveTo(50,350)
        ctx.lineTo(450,350)
        ctx.stroke()
        //假数据
        arr=[500,600,800,700,500,800]
        arr1=["一季度","二季度","三季度","四季度","最低季度","最高季度",]
        //设置最大高度
        var maxh=300/Math.max(...arr)
        for (let i = 0; i < arr.length; i++) {
            ctx.beginPath()
            ctx.font="14px weiruanyahei"
            ctx.fillStyle="purple"
            ctx.rect(80+i*60,350-maxh*arr[i],50,maxh*arr[i])
            ctx.fillText(arr1[i],85+i*60,370)
            ctx.fillText(arr[i],90+i*60,350-maxh*arr[i]-10)
            ctx.fill()
        }
        
    </script>

效果:

清除绘制

clearRect() 方法清空给定矩形内的指定像素

有四个参数:

第一个参数为矩形的左上角顶点的x轴坐标;

第二个参数为矩形的左上角顶点的y轴坐标;

第三个参数为矩形的宽度;

第四个参数为矩形的高度。

代码演示一下:

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

<script>
    var cav=document.querySelector("#cav")
    var cxt=cav.getContext("2d")
    //设置填充色
    cxt.fillStyle="pink"
    //创建一个填充颜色的矩形
    cxt.fillRect(100,100,100,200)
    //清除一半
    cxt.clearRect(100,100,100,100)

 运行代码后可以看到创建的矩形被清除了一半

 除了这里的清除绘制外,window对象还为我们提供了一个方法清除绘制。就是重设画布width,canvas.width=canvas.width,这样同样也能够清除前面的绘制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值