Graphics 为什么不同的Mandelbrot缩放值会产生相同的结果?

Graphics 为什么不同的Mandelbrot缩放值会产生相同的结果?,graphics,fractals,mandelbrot,Graphics,Fractals,Mandelbrot,是什么让人能够定义缩放过程的深度? 我的意思是,我之前试着用200次迭代运行mandelbrot集,然后将结果与1000次迭代运行进行比较。结果有点令人惊讶,因为我得到了相同的缩放级别。迭代在整个过程中是恒定的,mandelbrot集定义为512X512像素恒定。我应该更改什么以获得更深入的缩放级别? 谢谢 编辑:我还想提到的是,从好看的图片来看,在我进入曼德布罗特的第二到第三级之后,整个场景被视为一个巨大的像素。为什么呢 2d编辑:经过广泛的研究,我刚刚注意到,使整个集合看起来像一个大像素的原

是什么让人能够定义缩放过程的深度?
我的意思是,我之前试着用200次迭代运行mandelbrot集,然后将结果与1000次迭代运行进行比较。结果有点令人惊讶,因为我得到了相同的缩放级别。迭代在整个过程中是恒定的,mandelbrot集定义为512X512像素恒定。我应该更改什么以获得更深入的缩放级别?
谢谢

编辑:我还想提到的是,从好看的图片来看,在我进入曼德布罗特的第二到第三级之后,整个场景被视为一个巨大的像素。为什么呢


2d编辑:经过广泛的研究,我刚刚注意到,使整个集合看起来像一个大像素的原因是,所有点都有相同的迭代次数,在我的例子中,它们都是60…

这可能太抽象、太具体或不可理解。正如我在评论中所说,与手头的代码进行讨论会更容易

如果你的意思是我认为你所说的缩放,你应该改变
c
的边界(在公式
z[n+1]=z[n]^2+c
中)

为了说明这一点,完整的Mandelbrot集合包含在一个半径为2的圆内,该圆围绕一个中心
[0;0]
。公式中的
c
是一个复数,即
[r;i]
(实;虚),在计算机屏幕上对应于
x
y

换句话说,如果我们放置半径为2的圆,使其正好包含在图像中,则
[-2;2]
将是图像的左上角,
[2;-2]
将是右下角

然后,我们取图像的每个点,计算其像素坐标
[x;y]
对应于更小的“实际”坐标系
[r;i]
。然后我们有了
c
,可以通过迭代发送它

因此,要“缩放”,您需要选择除完整的
[-2;2]
[2:-2]
之外的其他边界,例如
[-1;1]
[1:-1]

有512x512像素,“实际”坐标系现在是2乘2,这意味着每个像素对应于“实际”坐标系的2/512单位。因此,您的第一个
r
值将是-1,下一个值将是
-1+2/512=-0.99609375


迭代次数仅决定渲染的精度。一般来说,你“放大”得越远,它们就需要越精确,所以你需要更多的迭代来捕捉细节。

如果你愿意分享你的迭代代码,这将更容易讨论,所以我们使用相同的术语-因为我甚至不确定你所说的“mandelbrot的级别”是什么意思.谢谢你的回答!但我想我解决了这个问题。实际发生的是,我将我的点表示为float。。。所以在几次“缩放”之后,我得到了零精度问题。但是现在我面临一个新问题,CUDA说不支持Double。降级为浮动。我正在使用G105M@igalk确切地对于深度缩放,您需要任意精度的算法。@igalk“少数”缩放不应超过单个精度浮点的限制:-)虽然我承认浮点在默认情况下是不精确的,但1.8-1不等于1.7。