2012-09-03 95 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()