我正在编写一个使用 canvas 绘制正弦曲线的程序。
HTML:
<canvas id="mycanvas" width="1000" height="100">
Your browser is not supported.
</canvas>
JavaScript:
var canvas = document.getElementById("mycanvas");
if (canvas.getContext) {
var ctx = canvas.getContext("2d");
ctx.lineWidth = 3;
var x = 0,
y = 0;
var timeout = setInterval(function() {
ctx.beginPath();
ctx.moveTo(x, y);
x += 1;
y = 50 * Math.sin(0.1 * x) + 50;
ctx.lineTo(x, y);
ctx.stroke();
if (x > 1000) {
clearInterval(timeout);
}
}, 10);
}
这个很好用:http://jsfiddle.net/HhGnb/。然而,现在我只能提供100像素的画布宽度,所以只有曲线最左边的100像素才能看到。http://jsfiddle.net/veEyM/1/。我想要实现这样的效果:当曲线的右端点大于画布的宽度时,整个曲线可以向左移动,这样我就可以看到曲线的最右端点,有点像曲线向左流动。我可以做到吗?