当前位置: 首页 > 知识库问答 >
问题:

Matlab中Mandelbrot集的着色

邓正谊
2023-03-14

我制作了一个程序来计算mandelbrot集合中的点。对于不属于mandelbrot集的点,我会记录起点发散到震级大于2的地方所需的迭代次数。基本上,对于mandelbrot集合之外的每一点,我都有一个计数器,可以显示它在1到256的范围内发散的速度。我想做的是根据每个点发散的速度给它一个颜色。例如,在255次迭代中发散的点可能是白色的,发散越快,着色越多。我已经做了一个简单的调整,在20步以上的发散点是红色的,在10-19步发散点是蓝色的,在5-9步发散点是黄色的,看起来像这样。

现在我不能对所有可能的255个发散率都这样做。如何制作毕业规模并在Matlab中实现它。提前感谢您的帮助。如果有人想知道更多,请询问。谢谢

编辑我很抱歉,但图像似乎不工作。基本上我现在需要它。我正在绘制点,为每个点指定一个介于1和255之间的值,我希望颜色根据指定给它的值逐渐改变。谢谢

共有3个答案

柳英豪
2023-03-14

我对代码做了一点改进,现在将运行给定(x,y)的特定起始点和起始位置。对于那些想进一步放大的人来说。

function mandelbrot(n, n2, x0, y0, g)

x1 = x0 - g;   x2 = x0 + g;
y1 = y0 - g; y2 = y0 + g;

[x,y] = meshgrid(linspace(x1, x2, n), linspace(y1, y2, n));

c = x + 1i * y;
z = zeros(size(c));
k = zeros(size(c));

for ii = 1:n2
    z   = z.^2 + c;
    k(abs(z) > 2 & k == 0) = n2 - ii;
end

figure,
imagesc(k),
colormap hot
axis square
end
乐正晟
2023-03-14

图像不在链接中,我不知道Matlab,但是你能不能让每个点的颜色成为它发散的函数?许多工具将允许您指定RGB值,例如,从0-255。你能不能不输入所有三个RGB值(或者你使用的任何色阶)的发散来获得灰度?即。RGB(20,20,20)

李言
2023-03-14

在Matlab中绘制mandelbrot集的简单方法如下

function mandelbrot(n, niter)

x0 = -2;   x1 = 1;
y0 = -1.5; y1 = 1.5;

[x,y] = meshgrid(linspace(x0, x1, n), linspace(y0, y1, n));

c = x + 1i * y;
z = zeros(size(c));
k = zeros(size(c));

for ii = 1:niter
    z   = z.^2 + c;
    k(abs(z) > 2 & k == 0) = niter - ii;
end

figure,
imagesc(k),
colormap hot
axis square

这只是跟踪迭代次数,直到数组k发散,并使用imagesc使用线性色标绘制。结果是

>> mandelbrot(800, 40)
 类似资料:
  • 我知道关于这件事,阿雷迪回答了很多问题。然而,我的略有不同。无论何时我们实现平滑着色算法,我都理解它。 其中n是逃逸迭代,2是z的幂,如果我没有弄错,z是该逃逸迭代处复数的模。然后,我们在颜色之间的线性插值中使用这个重整化的逃逸值来生成平滑的带状mandelbrot集。我已经看到了关于这个的其他问题的答案,我们通过HSB到RGB的转换来运行这个值,但是我仍然无法理解这将如何提供平滑的颜色渐变,以及

  • 我用python编程了Mandelbrot集,但看起来很奇怪,所以我搜索平滑的颜色。我用对数和线性插值编程了一个平滑的着色函数,但是无论我尝试什么,我都得不到我想要的: 这是我的调色板 这里是我的着色功能 这是我得到的 正如你所看到的那样,平滑的颜色是没有连续性的 我想要这样的东西: 理想结果 我们看不到色差

  • 迷人可爱的Mandelbrot集箍和卷曲是浮点计算不准确的结果吗? 我编写了各种Mandelbrot集实现,例如动态缩放和回放。一些使用定点算法,另一些使用FPU。 我见过这个问题,它表明每一个芽都是数学上光滑的形状,周围有较小的芽。 海马形状等的游行是计算机浮点运算局限性的副作用,而不是实际的曼德布罗特集吗? 海马?由Spektre添加: 我一直想说的是,浮点运算,无论是定点运算还是固定意义运算

  • 为了获得python方面的培训,我决定使用脚本绘制mandelbrot集。绘制它并不太复杂,所以我决定使用颜色,我发现了平滑着色算法。使用这个问题,我能够渲染出一些非常漂亮的东西,类似于这个。 为了实现这一点,我使用三个“步骤”设置了渐变调色板:从深蓝色到浅蓝色,然后从浅蓝色到黄色,最后从黄色到深棕色。整体形象完美。 当我试图太放大时,问题就来了。让我们以这个区域为例。当我处于这种缩放水平时,我的

  • 有一个简单的JS代码,可以呈现非常基本的Mandelbrot分形。 任务是沿其轴以随机角度旋转此分形。它不应该是画布旋转或它的图像数据,但我必须调整初始的分形公式来做到这一点。 例如,如果角度为45度或以弧度为单位的PI/4,则输出应如下所示 我试过玩没有任何成功。

  • 之前在C#上发布了一个问题。Net Mandelbrot集合,这是一个很有帮助的回答,但是我必须回到这个Mandelbrot集合,在它的双变量上实现一个结构,定义(虚坐标和实坐标)。 作为一个刚接触structs并且对structs有点生疏的人,我想就我做错了什么以及如何改进所述代码提出一些建议,因为只要看看它,我相信它可以稍微优化一下。这是使用结构的正确方法吗?如果没有,有哪些替代方案或最佳技术