一、绘制基本矩形
let canvas = document.getElementById('myCanvas'); let ctx = canvas.getContext('2d'); ctx.fillStyle = "red"; ctx.fillRect(50, 50, 100, 100);
Canvas是HTML 5标准中新加入的元素,在网页中创建图形可以使用它。使用canvas绘制矩形是最基础的操作之一,下面介绍如何绘制基本矩形。
使用fillRect()
方法可以绘制矩形,其参数含义依次为矩形左上角的横坐标、纵坐标以及宽度和高度。在上述代码中,我们首先获取画布的上下文对象ctx
,并将填充颜色设置为红色,接着调用fillRect()
方法完成绘制。绘制的矩形左上角坐标是(50,50),宽度和高度都是100px。
二、绘制边框矩形
let canvas2 = document.getElementById('myCanvas2'); let ctx2 = canvas2.getContext('2d'); ctx2.strokeStyle = "blue"; ctx2.strokeRect(50, 50, 100, 100);
与填充矩形不同,绘制边框矩形需要使用strokeRect()
方法,其参数含义与fillRect()
相同。在上述代码中,我们同样先获取画布的上下文对象ctx2
,将边框颜色设置为蓝色,接着调用strokeRect()
绘制矩形的边框。绘制的矩形与前面的例子相同。
三、绘制圆角矩形
let canvas3 = document.getElementById('myCanvas3'); let ctx3 = canvas3.getContext('2d'); let x = 50; let y = 50; let w = 150; let h = 100; let r = 20; ctx3.beginPath(); ctx3.moveTo(x + r, y); ctx3.lineTo(x + w - r, y); ctx3.arc(x + w - r, y + r, r, 1.5*Math.PI, 0); ctx3.lineTo(x + w, y + h - r); ctx3.arc(x + w - r, y + h - r, r, 0, 0.5*Math.PI); ctx3.lineTo(x + r, y + h); ctx3.arc(x + r, y + h - r, r, 0.5*Math.PI, Math.PI); ctx3.lineTo(x, y + r); ctx3.arc(x + r, y + r, r, Math.PI, 1.5*Math.PI); ctx3.closePath(); ctx3.fillStyle = "green"; ctx3.fill();
绘制圆角矩形需要分成四段绘制。在上述代码中,我们定义了矩形左上角坐标、宽度和高度以及圆角的半径。接着通过beginPath()
方法开始绘制路径并通过moveTo()
方法将路径移动到左上角圆角的起点。接下来绘制第一段直线,再绘制第一个圆弧。绘制第二段直线,再绘制第二个圆弧。绘制第三段直线,再绘制第三个圆弧。绘制最后一段直线后,调用closePath()
方法闭合路径,并将填充颜色设置为绿色,调用fill()
方法完成绘制。
四、绘制渐变矩形
let canvas4 = document.getElementById('myCanvas4'); let ctx4 = canvas4.getContext('2d'); let grd = ctx4.createLinearGradient(0, 0, 170, 0); grd.addColorStop(0, "#ff0000"); grd.addColorStop(1, "#00ff00"); ctx4.fillStyle = grd; ctx4.fillRect(50, 50, 100, 100);
使用createLinearGradient()
方法可以创建线性渐变色。其参数依次为渐变起点横、纵坐标以及渐变终点横、纵坐标。接着使用addColorStop()
方法指定渐变色。其中第一个参数为0表示颜色在起点时完全不透明,第二个参数为1表示颜色在终点时完全不透明。在上述代码中,我们定义了矩形左上角坐标为(50,50),宽度和高度都是100px,并使用线性渐变色填充。
五、绘制图片矩形
let canvas5 = document.getElementById('myCanvas5'); let ctx5 = canvas5.getContext('2d'); let img = new Image(); img.src = "img.jpg"; img.onload = function() { ctx5.drawImage(img, 50, 50, 100, 100); }
使用drawImage()
方法可以在矩形中绘制图片。其参数依次为图片对象、起始点横、纵坐标以及绘制宽度和高度。在上述代码中,我们获取了图片对象,等待图片加载完成后调用drawImage()
方法将图片绘制在矩形中心。