为什么不同的曼德尔布罗缩放值会产生相同的结果?

发布于 2025-01-02 23:25:17 字数 325 浏览 0 评论 0原文

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

编辑:我还想提一下,从漂亮的图片来看,在我到达曼德尔布罗的第二至第三级后,整个集合被视为一个巨大的像素。这是为什么?

2d 编辑:经过广泛的研究,我刚刚注意到使整个集合看起来像一个大像素的原因是因为所有点都获得相同的迭代计数,在我的情况下它们都是 60...

what gives one the ability to define how deep the zooming process would be?
what i mean is that i tried earlier to run mandelbrot set with 200 iteration and then compared the results with a 1000 iterations run. the results were kinda surprising because i got the same zooming level.the iterations were constant the entire process and the mandelbrot set was defined with 512X512 pixels constant. what should i change in order to get a deeper zooming level?
thanks!

edit : i would also like to mention that from nice looking picture, after i get to the 2nd-3rd level of mandelbrot the entire set is viewed as a giant pixel. why is that?

2d edit : after an extensive research i've just noticed that what makes the entire set to look like a big pixel is because all points get same iterations count,in my case they are all 60...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你是我的挚爱i 2025-01-09 23:25:17

这可能太抽象,或太具体,或难以理解。就像我在评论中所说的那样,与您手头的代码进行讨论会更容易。

如果您的意思是我认为缩放的意思,那么您将更改 c 的边界(在公式 z[n+1] = z[n]^2 + c中)代码>)。

解释一下,完整的 Mandelbrot 集包含在一个以 [0;0] 为中心、半径为 2 的圆内。公式中的c是一个复数,即[r;i](实数;虚数),在计算机屏幕上对应x< /code> 和 y

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

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

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

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

迭代次数仅决定渲染的准确度是。一般来说,您“放大”得越远,它们需要就越准确,因此您需要更多的迭代才能捕获细节。

This may be too abstract, or too concrete, or incomprehensible. Like I said in the comment, it would be easier to discuss with your code at hand.

If you mean what I think you mean by zooming, you'd change the boundaries of c (in the formula z[n+1] = z[n]^2 + c).

To explain, the full Mandelbrot set is contained within a circle with radius 2 around a center [0;0]. The c in the formula is a complex number, i.e. [r;i] (real;imaginary), which, on the computer screen, corresponds to x and y.

In other words, if we place that radius 2 circle so that it is exactly contained within our image, then [-2;2] will be the upper left corner of our image, and [2;-2] is the lower right corner.

We then take each point of our image, calculate what its pixel coordinates [x;y] correspond to in terms of the smaller, "actual" coordinate system [r;i]. Then we have our c and can send it through our iterations.

So, to "zoom", you'd pick other boundaries [r;i] than the full [-2;2],[2:-2], e.g. [-1;1],[1:-1].

With 512x512 pixels, and an "actual" coordinate system that's now 2 by 2, that would mean each pixel corresponds to 2/512 units of the "actual" coordinate system. So your first r value would be -1, the next would be -1 + 2/512 = -0.99609375 etc.

The number of iterations only decide how accurate your rendering will be. Generally, the further you "zoom" in, the more accurate they'll need to be, so the more iterations you'll need in order to capture the details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文