我用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