javascript - 如何在 JS Canvas 中清除矩形?

标签 javascript html canvas html5-canvas

我可能在这里有一个荷马时刻,但我试图在每次迭代时清除 Canvas 以显示方形旋转,但clearRect似乎不起作用。

有人能看出我做错了什么吗?

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var angle = 0;
setInterval(function() {
  angle++;

  ctx.clearRect(0, 0, canvas.width, canvas.height);

  ctx.save();

  ctx.translate(100, 100);
  ctx.rotate(angle);
  ctx.rect(0, 0, 30, 30);
  ctx.stroke();

  ctx.restore();

}, 50);
<canvas width='300' height='300' id='myCanvas'></canvas>

最佳答案

代码中缺少用于清除路径的beginPath()。这将导致每次重绘所有矩形(并最终减慢整个过程)。

var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var angle = 0;

setInterval(function() {
  angle++;

  ctx.clearRect(0, 0, canvas.width, canvas.height);

  ctx.save();
  ctx.translate(100, 100);
  ctx.rotate(angle);

  ctx.beginPath();
  ctx.rect(0, 0, 30, 30);
  ctx.stroke();

  ctx.restore();

}, 50);
<canvas width='300' height='300' id='myCanvas'></canvas>

关于javascript - 如何在 JS Canvas 中清除矩形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30718360/

相关文章:

javascript - 将 javascript 结果放入选项选择中

javascript - 计算绑定(bind)不适用于单击( polymer )

javascript - 如何使用 Chrome.Storage?

javascript - 如何为多行字符串中的特定文本添加粗体 Canvas ?

php - 滚动到与单击的缩略图对应的图像的图像库

javascript - 使用解析 Facebook 登录 api,导致当前用户为 null

javascript - CSS,链接无效

javascript - setTransform 和 Scale 以使 Canvas 适合给定图像

javascript - 使用 javascript 调整图像大小并将其保持在原始位置

javascript - jquery on() 总是比 bind() 更好吗