<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>圍繞中心點旋轉</title> <script src="js/modernizr.js"></script> </head> <body> <script type="text/javascript"> window.addEventListener('load',eventWindowLoaded,false); function eventWindowLoaded(){ canvasApp(); } function canvasSupport(){ return Modernizr.canvas; } function canvasApp(){ if(!canvasSupport()){ return; }else{ var theCanvas = document.getElementById('canvas') var context = theCanvas.getContext("2d") } drawScreen(); function drawScreen(){ context.fillStyle="black"; context.fillRect(20,20,25,25); context.setTransform(1,0,0,1,0,0); var angleInRadians = 45 * Math.PI / 180; var x = 100; var y = 100; var width = 50; var height = 50; context.translate(x+.5*width,y+.5*height); context.rotate(angleInRadians); context.fillStyle="red"; context.fillRect(-.5*width,-.5*height,width,height); } } </script> <canvas id="canvas" width="500" height="500"> 你的瀏覽器無法使用canvas 小白童鞋;你的支持是我最大的快樂!! </canvas> </body> </html>
這一次我們設置了變量。。。是不是感覺看起來莫名的親切了
var x = 100; var y = 100; var width = 50; var height = 50;
然后我們用函數context.translate把畫布原點平移到紅色正方形的中心點。
這個函數可以將畫布原點移到(x,y)處。這里將原點X坐標值設為紅色正方形的左上角的X值(100)
加上其一半的寬度。使用前面創建的變量即可控制這個紅色正方形的屬性
X+0.5*width
然后Y坐標
然后執行平移函數
然后旋轉