HTML5 canvas cung cấp các phương thức cho phép sửa đổi trực tiếp ma trận chuyển đổi. Ma trận biến đổi ban đầu phải là phép biến đổi nhận dạng. Sau đó, nó có thể được điều chỉnh bằng các phương pháp chuyển đổi.
T ransform (m11, m12, m21, m22, dx, dy) phương pháp phải nhân ma trận chuyển đổi hiện tại với ma trận được mô tả bởi -
m11 m21 dx m12 m22 dy 0 0 1
setTransform (m11, m12, m21, m22, dx, dy) phương thức phải đặt lại biến đổi hiện tại thành ma trận nhận dạng, sau đó gọi phương thức biến đổi (m11, m12, m21, m22, dx, dy) với cùng các đối số.
<!DOCTYPE HTML> <html> <head> <script> function drawShape(){ // get the canvas element using the DOM var canvas = document.getElementById('mycanvas'); // Make sure we don't execute when canvas isn't supported if (canvas.getContext){ // use getContext to use the canvas for drawing var ctx = canvas.getContext('2d'); var sin = Math.sin(Math.PI/6); var cos = Math.cos(Math.PI/6); ctx.translate(200, 200); var c = 0; for (var i=0; i <= 12; i++) { c = Math.floor(255 / 12 * i); ctx.fillStyle = "rgb(" + c + "," + c + "," + c + ")"; ctx.fillRect(0, 0, 100, 100); ctx.transform(cos, sin, -sin, cos, 0, 0); } ctx.setTransform(-1, 0, 0, 1, 200, 200); ctx.fillStyle = "rgba(100, 100, 255, 0.5)"; ctx.fillRect(50, 50, 100, 100); } else { alert('You need Safari or Firefox 1.5+ to see this demo.'); } } </script> </head> <body onload="drawShape();"> <canvas id = "mycanvas" width = "400" height = "400"></canvas> </body> </html>