2

我应该在调用画布绘制方法之前剔除元素还是让画布处理剔除。我应该实现如下逻辑:

if(circle.x+circle.radius>=0 || circle.x-circle.radius<canvas.width || circle.y+circle.radius>=0 || circle.y-circle.radius<canvas.height)
  context.arc(circle.x,circle.y,circle.radius,0,2.Math.PI,false);

或者

我应该只调用 context.arc 并让画布弄清楚要绘制什么吗?

我希望这是有道理的?我将编写一些代码来测试这一点,但任何输入将不胜感激......谢谢。

4

1 回答 1

1

“画布”(即浏览器内部)无论如何都会检查这些值,并在值超出边界时执行剪裁(或仅使用系统的位图低级剪裁能力)。

出于这个原因,首先在 JS 中进行边界检查是没有意义的,而且还因为内部检查比在 JS 中进行更有效。

画布绘图被设计为非常安全,不仅执行剪辑,还钳位颜色值等。

于 2013-06-03T20:55:42.687 回答