plunkerでMandelbrot その3


概要

plunkerでMandelbrotやってみた。

写真

サンプルコード

var ctx = document.getElementById('canvas').getContext('2d');

var cx, 
    cy;

function mandelbrot(x1, y1, x2, y2) {
    var i,
        j;
    var iter;
    var color;
    var sy = y2 - y1;
    var sx = x2 - x1;
    for (i = 0; i < 500; i++) 
    {
        for (j = 0; j < 500; j++) 
        {
            var cy = j * sy / 500 + y1;
            var cx = i * sx / 500 + x1;
            var x = 0.0, 
                y = 0.0, 
                xx = 0.0, 
                yy = 0.0;
            for (iter = 0; iter <= 256 && (xx + yy) < 4.0; iter++) 
            {
                xx = x * x;
                yy = y * y;
                y = 2.0 * x * y + cy;
                x = xx - yy + cx;
            }
            ctx.fillStyle = 'rgb(' + ((iter << 7 & 0xF8) << 8) +','+ ((iter << 4 & 0xFC) << 3) +','+ (iter >> 3) + ')';
            ctx.fillRect(i, j, 1, 1);
        }
    }
}
cx = -0.086;
cy = 0.05;
mandelbrot(-2.0 + cx, -1.5 + cy, 2.0 + cx, 1.5 + cy);





成果物

以上。