绘制文本
绘制文本的方法有两种: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,这样同样也能够清除前面的绘制。