【发布时间】:2015-08-26 08:46:30
【问题描述】:
我目前正试图弄清楚如何在每一行中更改画布中的弧度,然后再返回。 假设我有这样的弧
* * * *
* * * *
* * * *
我想做的是做动画,如下所示
* * * * * * * * * * * * * * * * o o o o * * * *
* * * * * * * * * * * * o o o o * * * * * * * *
* * * * * * * * o o o o * * * * * * * * * * * *
* * * * o o o o * * * * * * * * * * * * * * * *
到目前为止,我刚刚使用
在画布上绘制了弧线 var canvas = document.getElementsByTagName("canvas")[0];
var ctx = canvas.getContext("2d");
canvas.width = 280;
canvas.height = 100;
var x = 18;
var y = 15;
var rows_x=1;
var rows_y=9;
for (var i = 1; i < 37; i++) {
ctx.beginPath();
ctx.arc(x, y, 5, 0, 2 * Math.PI);
ctx.stroke();
x += 30;
if (i % 9 === 0) {
x = 18;
y += 25;
}
}
x = 18;
y = 15;
function large() {
ctx.clearRect(0, 0, 280, 100);
for (var i = 1; i < 37; i++) {
ctx.beginPath();
if (i >rows_x&& i <= 9) {
ctx.arc(x, y, 10, 0, 2 * Math.PI);
ctx.fillStyle = 'green';
ctx.fill();
rows_x += 9;
rows_y += 10;
}
else {
ctx.arc(x, y, 5, 0, 2 * Math.PI);
ctx.stroke();
}
x += 30;
if (i % 9 == 0) {
x = 18;
y += 25
}
}}
setInterval(large,1000)
我的代码有一些小故障,但这并不重要。弧线大小之间的变化是即时的,这意味着它不是动画或至少看起来不像,在这种情况下我该如何实现动画效果?
【问题讨论】:
-
您可以将 svg 用于 CSS 过渡和动画功能。如果你想坚持使用画布,你必须通过调用间隔来为所有帧设置动画。
标签: javascript html canvas