HTML5 Canvas - obrót

W niniejszym artykule pokażę, w jaki sposób można poddawać kontekst płótna, czyli to co narysowaliśmy, transformacji obrotu.

Aby zastosować obrót wokół wokół początku układu współrzędnych kontekstu o kąt alfa wyrażony w radianach, zgodnie z ruchem wskazówek zegara, należy użyć właściwości:

context.rotate(alfa);

Zobaczmy to na przykładzie.

Przykład - obrót

Oto przykład rysowania własnego kształtu z użyciem przesunięcia:

<html>
<head>
<script> function ksztalt(context, x,y,fillStyle) {
context.beginPath();
context.moveTo(x,y);
context.lineTo(x+50,y-50);
context.lineTo(x+50,y+50);
context.closePath();
context.fillStyle=fillStyle;
context.fill();
context.strokeStyle="black"
context.lineWidth=2;
context.stroke();
}
window.onload = function(){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
ksztalt(context,150,150,"pink");
context.rotate(Math.PI/20);
ksztalt(context,150,150,"pink");
context.rotate(Math.PI/20);
ksztalt(context,150,150,"pink");
context.rotate(Math.PI/20);
ksztalt(context,150,150,"pink");

};
</script>
</head>
<body>
<canvas id="myCanvas" width="300" height="300" style="border:1px solid black;">
</canvas>
</body>
</html>
Lupa

Narysowaliśmy tutaj kilka tych samych trójkątów, zmieniając przed każdym wywołaniem funkcji rysującej kształt trójkąta jedynie kontekst płótna, obracając go o stały kąt.

UWAGA! Jeżeli chcemy dokonać obrotu wokół innego punktu, na przykład wokół środka trójkąta, musimy najpierw narysować trójkąt tak, aby jego środek występował w punkcie (0,0), używając do tego translacji (przesunięcia, o którympisaliśmy we wcześniejszym artykule). Dopiero wtedy dokonujemy obrotu. Wówczas będziemy mieli do czynienia z obrotem wokół środka trójkąta.

Aby więc dokonać obrotu wokół dowolnego punktu, wykonujemy składanie przekształceń - translacji i obrotu.





© medianauka.pl, 2018-07-12, A-3571



Udostępnij
©® Media Nauka 2008-2023 r.