我一直在做一个渲染Mandelbrot分形的项目。对于那些知道的人,它是通过迭代以下函数生成的,其中c是复杂平面上的点:
function f(c, z) return z^2 + c end
迭代该函数将生成以下分形(忽略颜色):
当你把函数改为这个,(z提高到三次方)
function f(c, z) return z^3 + c end
分形应该呈现为这样(同样,颜色并不重要):
然而,当我把z提升到3的幂次时,我得到了一个非常类似于把z提升到2的幂次时的图像。如何正确进行分形渲染?这是完成迭代的代码:(实变量和虚变量只是将屏幕从-2缩放到2)
--loop through each pixel, col = column, row = row
local real = (col - zoomCol) * 4 / width
local imaginary = (row - zoomRow) * 4 / width
local z, c, iter = 0, 0, 0
while math.sqrt(z^2 + c^2) <= 2 and iter < maxIter do
local zNew = z^2 - c^2 + real
c = 2*z*c + imaginary
z = zNew
iter = iter + 1
end
所以我最近决定重新制作一个Mandelbrot分形生成器,它比我上次的尝试成功得多,因为我的编程技能随着实践而提高。
我决定使用递归对mandelbrot函数进行泛化,以满足任何人的需要。例如,你可以做f(z,c)z^2c
或f(z,c)z^3C
这是为可能需要它的任何人准备的:
function raise(r, i, cr, ci, pow)
if pow == 1 then
return r + cr, i + ci
end
return raise(r*r-i*i, 2*r*i, cr, ci, pow - 1)
end
它是这样使用的:
r, i = raise(r, i, CONSTANT_REAL_PART, CONSTANT_IMAG_PART, POWER)
生成Mandelbrot分形的方程是。问题是,在计算机程序中,C用于屏幕上的缩放/分辨率和位置。我的问题是,我怎样才能得到这样的分形: 沃尔夫拉姆 () 我的代码(来自罗塞塔代码):
这个错误显示在logcat-java中。lang.NoSuchMethodError:没有静态方法zzce(Landroid/content/Context;)V类内Lcom/google/android/gms/common/GoogleAppAvailability;或者它的超类(声明'com.google.android.gms.common.GoogleAppAvailability'出现
对于复杂变量,我使用以下复杂类文件。 下面的java代码是Mandelbrot集合的迭代计算器示例。 提前谢谢!
为了理解我在某个地方读到的一句话,我真的在挠头:“我们在分形中放大的越多,我们最可能需要执行的迭代就越多”。 到目前为止,我还没有找到任何数学/学术论文证明这一说法。我还设法找到了一个计算mandelbrot集的小代码,取自这里:http://warp.povusers.org/Mandelbrot/但是,我们无法理解缩放是如何影响迭代的。 谢谢!
我尝试使用openapi-Generater-maven-plugin与Spring Boot 2.4.3一起根据Internet上的一些示例,通过openapi.yaml中的规范生成代码,其中没有示例提供包含所需的完整依赖项。该插件生成一个名为的类,该类在内部使用导入的类。 AFAIK这个类不推荐使用class,但我找不到这个新类的存储库。 这是我的POM: 更新后的POM: openapi。指
我试着制作这个Mandelbrot分形发生器,但当我运行它时,我得到了一个像圆一样的输出。不知道为什么会这样。我想我的颜色可能有问题,但即使如此,形状也不正确。