diff -r 31c7acfbf85c -r adbea491e9b9 script.js --- a/script.js Tue Jul 06 00:22:27 2010 +0200 +++ b/script.js Tue Jul 06 11:56:48 2010 +0200 @@ -138,6 +138,8 @@ document.getElementById('footer').innerHTML = request.responseText; } + + // Mandelbrot functions function Complex(real, imag) { @@ -149,7 +151,8 @@ var MAX_C = new Complex(1.0, 1.4); var min_c = MIN_C; var max_c = MAX_C; -var max_iter = 100; +var MIN_ITER = 100; +var max_iter = MIN_ITER; var zoom = 1.0; var resolution = 3; var bailout = 4.0; @@ -206,7 +209,7 @@ return new Result(quad_z, iter); } -function draw(iter, dx, dy, dz, dres) +function draw(diter, dx, dy, dz, dres) { var canvas = document.getElementById('mandelbrot'); @@ -219,7 +222,14 @@ { resolution = Math.max(1, resolution + dres); } + + if (diter != 0) + { + max_iter = Math.max(MIN_ITER, max_iter + diter); + } + var red = "rgb(255, 0, 0)"; + var white = "rgb(255, 255, 255)"; var width = canvas.width; var height = canvas.height; var dim = Math.max(width, height); @@ -236,11 +246,10 @@ var max_inc = new Complex(dx_max * dim_ratio / 2.0, dy_max); min_c = complex_add(min_c, min_inc); max_c = complex_add(max_c, max_inc); - max_iter += iter; diff_c = new Complex(max_c.real - min_c.real, max_c.imag - min_c.imag); - for (var y = 0; y < height; y += resolution) + for (var y = 0; y < height - 2; y += resolution) { for (var x = 0; x < width; x += resolution) { @@ -255,7 +264,7 @@ (result.iter - max_iter / 20.0)), 2)); var colour = r + "," + g + "," + b; ctx.fillStyle = "rgb(" + colour + ")"; - ctx.fillRect(x, y, resolution, resolution); + ctx.fillRect(x, y, resolution, resolution); } } }