Canvas
Tạo canvas trong HTML
Tag canvas tạo ra vùng vẽ và hỗ trợ các phương thức vẽ, với 3 thuộc tính cơ bản:
id: định danh canvas.width: độ rộng canvas.height: độ cao canvas.
<canvas id="id-canvas" width="640" height="360" />Tương tác với canvas bằng JavaScript
const canvas = document.getElementById("id-canvas");
const context2d = canvas.getContext("2d");
const contextWebGL = canvas.getContext("webgl");Thao tác lấy đối tượng canvas, sau đó lấy đối tượng lưu trữ các phương thức hỗ trợ vẽ (context).
context2d: chứa tất cả các phương thức hỗ trợ vẽ 2D.contextWebGL: chứa tất cả phương thức hỗ trợ đồ họa 3D.canvas.getContext("2d"): Hỗ trợ trích xuất context 2D.canvas.getContext("webgl"): Hỗ trợ trích xuất context WebGL.
Các phương thức vẽ 2D
Vẽ hình chữ nhật - Rectangle
Các phương thức hỗ trợ vẽ hình chữ nhật.
rect(x, y, width, height);
fillRect(x, y, width, height);
strokeRect(x, y, width, height);
clearRect(x, y, width, height);x,y: tọa độ gốc trên, bên trái cần vẽ.width,height: độ rộng, độ cao của hình chữ nhật.
Vẽ văn bản, chuỗi - Text
Các phương thức hỗ trợ vẽ chuỗi.
fillText(text, x, y, maxWidth);
strokeText(text, x, y, maxWidth);text: nội dung cần vẽ.x,y: tọa độ gốc trên, bên trái cần vẽ.maxWidth(tùy chọn): độ rộng tối đa khung vẽ.
Vẽ ảnh - Images
Các phương thức hỗ trợ vẽ ảnh.
drawImage(image, x, y);
drawImage(image, x, y, width, height);
drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);image: ảnh lưu trữ nội dung cần vẽ, ảnh có thể được tạo từ.CanvasImageSourceCSSImageValueHTMLImageElementSVGImageElementHTMLVideoElementHTMLCanvasElementImageBitmapOffscreenCanvas
sx,sy: tọa độ phần ảnh cần vẽ trongimage.sWidth,sHeight: độ rộng, độ cao của phần ảnh cần vẽ trongimage.x,y: tọa độ cần vẽ trên canvas.width,height: độ rộng, cao vùng vẽ trên canvas.
Path
Các thao tác vẽ đường Path.
beginPath();
// Các phương thức tạo Path
stroke(); hoặc fill();Các phương thức tạo Path.
moveTo(x, y);
lineTo(x, y);
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
quadraticCurveTo(cpx, cpy, x, y);
arc(x, y, radius, startAngle, endAngle [, counterclockwise]);
arcTo(x1, y1, x2, y2, radius);
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle [, counterclockwise]);
rect(x, y, width, height);moveTo: bắt đầu 1 điểm x, y.lineTo: vẽ 1 đường thẳng đến tọa độ x, y.bezierCurveTo: vẽ 1 đường cong từ điểm bắt đầu đến điểm kết thúc x, y, đường cong được kiểm soát bởi cp1x, cp1y và cp2x, cp2y.quadraticCurveTo: vẽ 1 đường cong bậc 2 từ điểm bắt đầu đến điểm kết thúc x, y, đường cong được kiểm soát bởi cpx, cpy.arc: tạo đường tròn.arcTo: tạo đường tròn khi có tiếp tuyến cho trước.ellipse: tạo đường ellipse.rect: tạo ra hình chữ nhật.
Style
fillStyle
strokeStyleTạo màu sắc cho hình học trong trường hợp lắp đầy hoặc vẽ đường.