javascriptの描画速度が1300msあたりと書いたけど35万回繰り返される中の計算式を若干改良・簡素化したものが見つかったので実行すると600msと約2倍高速だ。
内部は遅いほうが
function drawMandel(){
var canvas = document.getElementById('myCanvas');
/* canvas要素の存在チェックとCanvas未対応ブラウザの対処 */
if ( ! canvas || ! canvas.getContext ) {
return false;
}
/* 2Dコンテキスト */
var ctx = canvas.getContext('2d');
/* mandelbrot */
ctx.beginPath();
var ww=640;
var hh=480;
cols = new Array("black", "blue", "red", "magenta", "lime", "aqua", "yellow", "white");
ctx.fillStyle = "Black";
ctx.fillRect(0, 0, ww, hh);
var kl =100;
var rb = -2.5;
var re = 1.2;
var ib = -1.35;
var ie = 1.35;
var dr = (re-rb)/ww;
var di = (ie-ib)/hh;
var k = 0;
var cr = rb;
for(var kr=0;kr 4) break;
}
if (k < kl) {
ctx.strokeStyle=cols[k % 7 + 1];
ctx.strokeRect(kr,ki,0,1);
}
ci += di;
}
cr += dr;
}
}
となっていて速い方は
function draw2() {
var cx=cvs.width;
var cy=cvs.height;
var kl = 100;
var rb = -2.5;
var re = 1.2;
var ib = -1.35;
var ie = 1.35;
var dr = (re - rb) / cx;
var di = (ie - ib) / cy;
var st = new Date();
for(var dx = 0;dx
となっている。どう違う?なんかリストが見えないぞ!!!!