javascript - 我应该在渲染到 HTML5 Canvas 之前剔除元素还是让 Canvas 剔除

标签 javascript html canvas

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

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 并让 Canvas 确定要绘制或不绘制什么?

我希望这是有道理的?我将编写一些代码来对此进行测试,但我们将不胜感激……谢谢。

最佳答案

“Canvas”(即浏览器内部结构)将在任何情况下检查这些值,如果值超出边界则执行裁剪(或仅使用系统的位图低级裁剪能力)。

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

Canvas 绘图被设计得非常安全,不仅可以执行裁剪,还可以限制颜色值等。

关于javascript - 我应该在渲染到 HTML5 Canvas 之前剔除元素还是让 Canvas 剔除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893626/

相关文章:

javascript - jQuery.clone() 一个元素,然后给它添加动态样式

javascript - 我的 JS 函数不会 "alert"按键

javascript - 如何扩展 KineticJS 形状

javascript - Jquery 可嵌套/从 json 初始化列表

javascript - 如何连接两个选项和切换开关按钮

jquery - DataTables 将排序图标放在指定为没有的列上

javascript - 如何检查所选文本是否在两行文本内

php - android中的asyncTask用于从MySQL数据库检索数据

javascript - 使用 nodeJS 的跨浏览器 Canvas 未找到该函数的签名

javascript - canvas.toDataURLWithMultiplier 不是一个函数