Вы можете сделать это, используя преобразований .Например, если у вас есть функция draw()
, которая рисует что-то на холсте, вы можете сделать что-то вроде этого
function draw(){
//draw something on the canvas
}
ctx.translate(100,150);
ctx.rotate(Math.PI/4);
ctx.scale(0.5,0.5);
draw();
, и содержимое будет отображаться повернутым на 45 градусов, с отображением верхнего левого угла.в (100; 150), и в половине его нормального размера.Чтобы сбросить преобразование, просто позвоните
ctx.resetTranform();
draw();
и все снова будет нарисовано как обычно.Однако у этого есть обратная сторона;содержимое не обрезается, поэтому, если draw
отображает что-то, что было бы иначе за кадром, оно будет отображаться за пределами области, в которой вы хотели бы находиться.