plunkerでMandelbrot その3
1620 ワード
概要
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);
成果物
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);
以上。
Author And Source
この問題について(plunkerでMandelbrot その3), 我々は、より多くの情報をここで見つけました https://qiita.com/ohisama@github/items/cdb77621d2c08cf40694著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .