曼德尔布罗特集合局部放大

June 22, 2021 · 程序 · 14747次阅读

计算机艺术是我一直关注的领域,国内外都有人在研究,它不仅是渲染的艺术,也是代码的艺术,同时也是数学的艺术。

曼德尔布罗特集合的局部放大,展现分形图形的魅力。
今天用JS+Canvas来实现曼德尔布罗特集合局部放大的算法

HTML部分

<div id="canvas_wrapper" style="overflow:auto;"></div>

javascript部分

var $canvas,canvas,context;
draw();
function draw(){
    var w = 1024;
    var h = w;
    $canvas = $("<canvas>");
    $canvas.attr("id","canvas");
    $canvas.attr("width",w);
    $canvas.attr("height",h);
    $canvas.appendTo("#canvas_wrapper");
    canvas = $canvas[0];
    context = canvas.getContext("2d");
    var imageData = context.createImageData(canvas.width, canvas.height);
    var pixelData = imageData.data;
    for (var i = 0; i < canvas.height; i++) {
        for (var j = 0; j < canvas.width; j++) {
            var a = 0,
            b = 0,
            c, d, n = 0;
            var p = j * canvas.width + i;
            while ((c = a * a) + (d = b * b) < 4 && n++<880) {
                b = 2 * a * b + j * 8e-9 - .645411;
                a = c - d + i * 8e-9 + .356888;
            }
            pixelData[4 * p + 0] = 255 * Math.pow((n - 80) / 800, 3.0);
            pixelData[4 * p + 1] = 255 * Math.pow((n - 80) / 800, 0.7);
            pixelData[4 * p + 2] = 255 * Math.pow((n - 80) / 800, 0.5);
            pixelData[4 * p + 3] = 255;
        }
    }
    context.putImageData(imageData, 0, 0, 0, 0, canvas.width, canvas.height);
}

最终效果

喝杯水 ENJOY 1

javascriptcanvas

最后编辑于4年前

添加新评论

  1. 2024-08-17 23:25

    unieyd46238FE-文章确实不错https://www.ctsr.cn//

    回复
  2. 2024-08-17 23:25

    unieyd46238FE-文章确实不错https://www.ctsr.cn//

    回复
  3. 2025-03-28 21:24

    cTBJIXHx dXQ fjOizg

    回复
  4. 2025-07-08 18:42

    gpummxqgtsgkzhjozdrosqgudleotv

    回复
  5. 2025-07-10 23:21

    tqgmmvmznfdhdootixsvqeizyqxgep

    回复
  6. 2025-07-13 02:26

    kjkmnqovrrmhedgzueqqhehipipyfe

    回复
  7. 2025-07-14 15:18

    pjzrirvzvytwgqfjrphhhwrgyrrpju

    回复
  8. Georgeetete Georgeetete
    2025-07-20 17:54

    Kaixo, zure prezioa jakin nahi nuen.

    回复
avatar

朱益雷

有趣的灵魂万里挑一

10

文章数

16

评论数

3

分类

热死辣

新鲜出炉の评论

曼德尔布罗特集合局部放大
Georgeetete
Georgeetete2025-07-20

Kaixo, zure prezioa jakin nahi nuen.

曼德尔布罗特集合局部放大
vkngzgzmkh
vkngzgzmkh2025-07-14

pjzrirvzvytwgqfjrphhhwrgyrrpju

学写一个字
iuzdooosth
iuzdooosth2025-07-14

shmjtmrzqqlffvfdvftkdovopozeho

籽播红草莓已安排。不定期更新
zisnrtqqdg
zisnrtqqdg2025-07-14

pwtqfhosseyoixgdpgvxiohmitwfgr

曼德尔布罗特集合局部放大
nktsingvip
nktsingvip2025-07-13

kjkmnqovrrmhedgzueqqhehipipyfe