5
如何使用畫布的「旋轉」功能圍繞圖像中心旋轉圖像,而不是圍繞原點旋轉。HTML5使用畫布旋轉圖像
考慮下面的例子:在這個例子中,紅色正方形是在0,0圍繞淵源考旋轉
<html>
<head></head>
<body>
<canvas id="tmp" style="width: 300px; height: 300px; border: 1px red solid" />
<script type="text/javascript">
var deg = 0;
function Draw() {
var ctx = document.getElementById('tmp').getContext('2d');
ctx.save();
ctx.fillStyle = "white";
ctx.fillRect(0,0,ctx.canvas.width,ctx.canvas.height);
ctx.fillStyle = "red";
ctx.rotate(deg * 0.0174532925199432957); //Convert to rad's
ctx.fillRect(50, 50, 20, 20);
ctx.restore();
deg+=5;
setTimeout("Draw()", 50);
}
Draw();
</script>
</body>
</html>
。假設我想圍繞其中心旋轉方塊。我試圖用翻譯將其移動到原點,然後旋轉,然後再次使用翻譯將其移回像這樣:
ctx.translate(-(50 + 10), -(50 + 10)); //Move to origin
ctx.rotate(deg * 0.0174532925199432957); //rotate
ctx.translate(50, 50); //move back to original location
ctx.fillRect(50, 50, 20, 20);
ctx.restore();
但它看起來像調用translate函數覆蓋以前的翻譯並沒有結合轉換。那麼我怎樣才能達到我想要的效果呢?