我需要在HTML5畫布上繪製很多點,而且需要很長時間。我的代碼看起來像這樣:加快在HTML5畫布元素上繪製多個點的步驟
var points = getPoints() // Array of {x,y,color}
var ctx = canvas.getContext("2d");
for (var i = 0; i < points.length; i++) {
ctx.fillStyle = points[i].color
ctx.beginPath()
ctx.arc(points[i].x, points[i].y, radius, 0, Math.PI * 2, true)
ctx.fill() }
我想知道我可以做些什麼性能調整來加速它。我只有5種不同的顏色。例如,我是否可以通過即時排序積分列表來改變ctx.fillStyle
,而不是每個積分一次?
我覺得這是一個相當緩慢的一行:'ctx.arc( points [i] .x,points [i] .y,radius,0,Math.PI * 2,true)'嘗試繪製簡單的矩形,看看它是否加快速度。 (恕我直言,它應該...) – ppeterka
我試過了,是的,它確實加快了速度。但我不明白這有什麼幫助。 – Nicolas
我想如果你設置一個小提琴,人們可以更容易地調整它,下面是我可以想到的一些修改,使其更快一些(也許) - > [** FIDDLE **](http:// jsfiddle .net/4WTaQ /)... – adeneo