CanvasRenderingContext2D.transform() - змінює матрицю.
ctx.transform( a, b, c, d, e, f );
ctx - об'єкт CanvasRenderingContext2D.
a - горизонтальне масштабування.
b - горизонтальний перекіс.
c - вертикальний перекіс.
d - вертикальне масштабування.
e - горизонтальне переміщення.
f - вертикальне переміщення.
transform() метод об'єкту CanvasRenderingContext2D який змінює матрицю перетворення для малювання на полотні canvas.
Зміна матриці дозволяє масштабувати, обертати, переміщувати.
a | b | e |
c | d | f |
0 | 0 | 1 |
Зміна матриці впливає на подальше малювання на полотні canvas і не змінює те що було уже намальовано.
Метод transform() подібний до setTransform(), відміність полягає в тому що transform() додає (примножує) зміни до матриці, а setTransform() змінює.
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.font="24pt aril";
ctx.transform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="black";
ctx.fillText("transform", 10, 5);
ctx.transform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="red";
ctx.fillText("transform", 10, 5);
ctx.transform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="blue";
ctx.fillText("transform", 10, 5);
ctx.setTransform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="black";
ctx.fillText("setTransform", 170, 5);
ctx.setTransform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="red";
ctx.fillText("setTransform", 170, 5);
ctx.setTransform(1, 0.16, 0, 1, 1, 1);
ctx.fillStyle="blue";
ctx.fillText("setTransform", 170, 5);
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.transform(0.9, 0.4, 0, 1, 0, 1);
ctx.fillRect(5, 5, 70, 60);
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.transform(0.9, -0.1, -0.4, 1, 0, 1);
ctx.fillRect(5, 5, 70, 60);
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
ctx.transform(0.30, 0.15, -0.15, 0.3, 0, 0);
ctx.fillRect(50, 5, 60, 15);