我怎样才能像这样给我的 Mandelbrot 套装上色?

计算科学 Python 迭代法
2021-12-13 18:14:32

我的手机上有一个分形的背景图像,我希望它具有更高的分辨率和超级采样,并决定为它编写自己的程序。我已经开始渲染 Mandelbrot 集,即使使用 HSV/HSL 作为着色方法,但我无法让我的分形看起来像这些一样好。 是一个很好的例子,这是我在手机上使用的图像

据我所知,它们是使用 Ultra Fractal 3 渲染的。我将如何以相同的方式为我的 Mandelbrot 集上色?

使用 HSV/HSL,我只设法产生了与这个JavaScript 渲染器类似的结果。

2个回答

为了以这种对比方式绘制细丝,使用(逆?)距离估计器。这是基于派生的,例如,请参阅http://mrob.com/pub/muency/distanceestimator.html了解详细信息以及应用程序想法的链接。dzn/dc

也就是说,您现在不是只迭代,而是迭代zn+1=zn2+c

dz = 2*z*dz + 1
z = z*z + c

并返回除了然后,如果您将色调(循环)设置为并使用距离估计控制亮度,您应该得到与引用的图像类似的图像。nlog2(|z|)|z||dz|nlogn

向原作者询问他们确切的 Ultra Fractal 3 参数将是我的首选。

Mandelbrot 分形图像通常是通过根据迭代“爆炸”或逃逸点的迭代选择颜色来制作的(模数一些因素,也许,保持颜色图中的数字(我不知道人们有多深现在让这些迭代))对“逃逸”的一些任意定义。对于您要测试是否包含的点的至少您需要域的四个角的坐标(或任何等价物)以及可能映射

zn+1=zn2+c,
c=(x,y)nblowup回到颜色图和颜色图(您可能可以使用您最喜欢的图像处理程序(如 Photoshop)和吸管工具来挑选图像)。您需要自己(他们)对“炸毁”的定义,因为您不能永远迭代。它可能只算作离开域或域的 10 倍或太大或,但自从我对其中一个进行编码(在 QuickBasic(!) 中作为语言学习项目)以来,它已经从高中开始了。n

我认为你最好的办法是联系网站所有者,看看他们是否会帮助你。