Obrót – sposób 3
Użyty został skrypt transform.js.
Zerujemy aktualną macierz przy użyciu setTransfrorm(1, 0, 0, 1, 0, 0)
.
Aktualna macierz staje się macierzą zerową.
Ustawiamy obrót przy użyciu transform(cosα,-sinα, sinα, cosα,0,0)
.
Wynikiem jest pomnożenie macierzy jednostkowej przez macierz obrotu, co w rezultacie daje obrót, czyli ten sam wynik co w sposobie 2.
Obracamy figurę o Math.PI/6=30° zgodnie z kierunkiem wskazówek zegara.
Listing
var cv = document.getElementById("canvas"); var ctx = cv.getContext("2d"); var leftX = 200; var topY = 50; var width = 50; var height = 25; var cornerRadius = 15; drawRectangle(ctx); var a = Math.PI / 6.0; var c = Math.cos(a); var s = Math.sin(a); ctx.setTransform(1,0,0,1,0,0); ctx.transform(c, s, -s, c, 0, 0); drawRectangle(ctx);