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);