所以我覺得在HTML5畫布上渲染設計會很快。我使用下面的代碼,我認爲這將需要不到一秒的渲染,但總共需要大約2分鐘。HTML5畫布上的設計 - 如何加速渲染
代碼:
<script>
var canvas = document.getElementById("canvas")
ctx = canvas.getContext('2d')
maxW = window.innerWidth
maxH = window.innerHeight
x = -1
numLeft = 15
//maxW = 300
//maxH = 300
canvas.setAttribute("width", maxW)
canvas.setAttribute("height", maxH)
ctx.fillStyle = "rgba(0,0,0,.5)"
for(var j = 0; j < maxH; j++){
for(var i = 0; i < maxW; i++){
if(numLeft < 0){
if(x == -1){
ctx.fillStyle = "rgba(127,127,127,.5)"
//numLeft += 12
numLeft += 5
}
else{
ctx.fillStyle = "rgba(0,0,0,.5)"
//numLeft += 24
numLeft += 15
}
x *= -1
}
ctx.fillRect(i,j,i+1,j+1)
numLeft--
}
//numLeft -= 5 this one's crazy :D
numLeft -= 3
}
它應該吸取斜條紋的黑色和灰色。但是,再一次,渲染會耗盡大部分人的瀏覽器。任何提示如何加快這一點?
我不知道你是否願意,但'drawRect(x,y,1,1)'填充一個像素 - 它是'(x,y,w,h)'。由於您正在繪製更多像素(寬度爲「i + 1」和高度爲「j + 1」,因此您繪製的像素數量以二次方式增長),因此這會提高速度。 – pimvdb 2012-01-01 01:21:58
同意,你可以看到這個jsFiddle的區別http://jsfiddle.net/luisperezphd/eY82y/ – 2012-01-01 01:34:53