我编制了一个程序来计算曼德尔布罗集中的点数。对于不属于mandelbrot集的点,我跟踪起点发散到震级大于2的地方所需的迭代次数。基本上,对于mandelbrot集中的每个点,我有一个计数器,它在1到256的范围内发散的速度。我喜欢做的是根据发散的速度给每一个点一个颜色。例如,在255次迭代中发散的点可能是白色的,发散的速度越快,颜色就越多。我做了一个简单的调整,在20步以上的发散点是红色的,10-19级的发散点是蓝色的,5-9级的发散点是黄色的,看起来是这样的。

现在,我不能对所有可能的255个发散率这么做。如何制作毕业量表,并在Matlab中实现。提前感谢您的帮助。如果有人想知道更多,请问。谢谢!
编辑我很抱歉,但是图像似乎不起作用。基本上我需要的是这个。我正在绘制点,对每个点分配一个介于1到255之间的值,并且我希望根据分配给它的值逐渐改变颜色。谢谢!
发布于 2013-12-30 17:49:00
在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)

发布于 2013-12-30 17:47:10
图片没有出现在链接中,我也不知道Matlab,但是你不能把每个点的颜色作为其发散度的函数吗?许多工具将允许您指定RGB值,例如,从0到255。你能不能输入所有三个RGB值的散度值(或者你用的任何颜色标度)来得到灰色的阴影?即RGB(20,20,20)
发布于 2019-12-08 04:47:51
我对代码做了一些改进,这将在给定(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
endhttps://stackoverflow.com/questions/20844510
复制相似问题