我用canvas元素玩過,下面的代碼在沒有變換的情況下可以正常工作,但是當我將變換放入時,紅框會在其後面繪製一個「尾部」。奇怪的是,尾巴的顏色與盒子的顏色不同,它也不同於瀏覽器和瀏覽器(在FF中更暗)。 這是正常的嗎?我想這是由於四捨五入。畫布上的變換導致奇怪的行爲
function draw() {
var canvas = document.getElementById("canvas");
g = canvas.getContext("2d");
var x = 0;
var y = 200;
g.transform(.5,0,0,1,0,0);
g.fillStyle = "rgb(200,0,0)";
timer = setInterval(function() {
if(x == 750) clearInterval(timer);
g.clearRect(x,y,50,50);
x ++;
g.fillStyle = "rgb(200,0,0)";
g.fillRect(x,y,50,50);
}, 10);
}
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="test.js"></script>
</head>
<body onload="draw()">
<canvas id="canvas" width="800" height="600"></canvas>
</body>
</html>
btw。變換(.5,0,0,1,0,0)與比例(0.5,1)相同。嘗試縮放(0.99,1)以獲得有趣的效果。 – SpiderPig 2012-07-05 19:48:18