19/09/2018, 15:01

transform() trong Canvas

Vẽ một hình chữ nhật, tạo một ma trận biến đổi với transform(), vẽ lại hình chữ nhật, tạo một ma trận biến đổi mới, lại vẽ lại hình chữ nhật. Lưu ý mỗi khi bạn gọi phương thức transform(), nó sẽ xây dựng dựa trên ma trận biến đổi trước đó: Trình duyệt của bạn không hỗ trợ thẻ canvas trong ...

Vẽ một hình chữ nhật, tạo một ma trận biến đổi với transform(), vẽ lại hình chữ nhật, tạo một ma trận biến đổi mới, lại vẽ lại hình chữ nhật. Lưu ý mỗi khi bạn gọi phương thức transform(), nó sẽ xây dựng dựa trên ma trận biến đổi trước đó:

Trình duyệt của bạn không hỗ trợ thẻ canvas trong HTML5.

Code:

Demo

Trình duyệt hỗ trợ

Số trong bảng dưới đây thể hiện phiên bản trình duyệt đầu tiên hỗ trợ đầy đủ cho thuộc tính.

Thuộc tính Icon Chrome Icon FireFox Icon IE Icon Safari Icon Opera
transform() 4.0 2.0 9.0 3.1 9.0

Định nghĩa và cách sử dụng

Mỗi đối tượng trên canvas đều có một ma trận biến đổi.

Phương thức transform() được sử dụng để thay thế ma trận biến đổi hiện tại bằng một ma trận mới. Nó nhân ma trận biến đổi hiện tại với ma trận mới như miêu tả dưới đây:

a  c  e
b  d  f
0  0  1

Nói cách khác, phương thức transform() cho phép bạn thay đổi kích cỡ, xoay, di chuyển và nghiêng hình.

Lưu ý: Các biến đổi chỉ có tác dụng lên hình SAU KHI phương thức transform() được gọi.

Lưu ý: Phương thức transform() hoạt động tương tự như các biến đổi khác như : rotate(), scale() hay translate(). Ví dụ: Nếu bạn đã sử dụng scale() để phóng to hình lên 2 lần, sau đó lại sử dụng transform() phóng to hình thêm 2 lần, hình của bạn lúc này sẽ to lên gấp 4 lần so với hình gốc.

Mẹo: Tham khảo thêm phương thức setTransform().

Cú pháp JavaScript: context.transform(a,b,c,d,e,f);

Giá trị tham số

Tham sốMiêu tả
aThay đổi kích cỡ hình theo chiều ngang
bNghiêng hình theo chiều ngang
cNghiêng hình theo chiều dọc
dThay đổi kích cỡ hình theo chiều dọc
eDi chuyển hình theo chiều ngang
fDi chuyển hình theo chiều dọc
0