
Obrót w miejscu
Użyty został skrypt transform.js.
Mamy figurę, którą chcemy obrócić w miejscu o 30°
Listing
var cv = document.getElementById("canvas1");
var ctx = cv.getContext("2d");
var leftX = 220;
var topY = 40;
var width = 75;
var height = 50;
var cornerRadius = 15;
drawRectangle(ctx);
Jeżeli chcemy obrócić figurę względem środka ciężkości, należy:
wykonać translację środka ciężkości do punktu (0,0)
Listing
var cv = document.getElementById("canvas2");
var ctx = cv.getContext("2d");
var leftX = 220;
var topY = 40;
var width = 75;
var height = 50;
var cornerRadius = 15;
ctx.save();
ctx.translate(-(leftX+width/2), -(topY+height/2));
drawRectangle(ctx);
obrócić figurę o podany kąt
Listing
var cv = document.getElementById("canvas3");
var ctx = cv.getContext("2d");
var leftX = 220;
var topY = 40;
var width = 75;
var height = 50;
var cornerRadius = 15;
ctx.rotate(Math.PI / 6);
ctx.translate(-(leftX+width/2), -(topY+height/2));
drawRectangle(ctx);
przesunąć figurę z powrotem (translacja zwrotna)
Listing
var cv = document.getElementById("canvas4");
var ctx = cv.getContext("2d");
var leftX = 220;
var topY = 40;
var width = 75;
var height = 50;
var cornerRadius = 15;
ctx.translate(leftX+width/2, topY+height/2);
ctx.rotate(Math.PI / 6);
ctx.translate(-(leftX+width/2), -(topY+height/2));
drawRectangle(ctx);
