2012-09-03 67 views
5

这看起来似乎没有任何意义,但是当它以每秒30帧的速度进行1000次以上时,它确实会加起来。我有3种尺寸的圆圈,每种都有自己的填充颜色(RGBA)。对我来说,将它们绘制为一次图像的速度更快,并将drawImage()与数据网址一起使用,还是对其中的每个网址使用arc()Canvas arc()vs drawImage()

额外信息:

  • 使用单一画布各界
  • 语境和帆布缓存
  • 此刻全部呼吁圆弧看起来像

    this.scene.context .arc(newLocation,this.y + = this.speed/80,this.distance/2,0,Math.PI * 2,false);

+0

如果你已经有了你的代码,你可以检查哪个版本是[jsperf(http://jsperf.com/) – jbalsas

+0

如果需要更快您最终使用arc()方法可以优化该行。例如,如果在函数中将上下文设置为局部变量,或者将该上下文设置为变量,以便不必查看“this”和“scene”并进行一次计算。例如var TWOPI = Math.PI * 2 – Richard

回答

6

enter image description here

my testsdrawImage()将是显著加快在大多数情况下比使用arc()

drawImage()该函数可以采取或者<img><canvas>元素作为其参数,并在Firefox,使用<img>标签增快,虽然其他的浏览器呈现相反的。

它归结到:即使是简单的形状,使用drawImage()