由特定功能定义的Mandelbrot集

用户名

我正在尝试canvas,并且试图修改这段代码,但不幸的是,我不了解其中的某些部分。

我的问题是-如何自定义上述代码,例如通过

f(z) = c^e(-z) 

(公式取自一本带有分形示例的书)?

我知道我需要更改这部分代码:

function computeRow(task) {
    var iter = 0;
    var c_i = task.i;
    var max_iter = task.max_iter;
    var escape = task.escape * task.escape;
    task.values = [];
    for (var i = 0; i < task.width; i++) {
        var c_r = task.r_min + (task.r_max - task.r_min) * i / task.width;
        var z_r = 0, z_i = 0;

        for (iter = 0; z_r*z_r + z_i*z_i < escape && iter < max_iter; iter++) {
            // z -> z^2 + c
            var tmp = z_r*z_r - z_i*z_i + c_r;
            z_i = 2 * z_r * z_i + c_i;
            z_r = tmp;
        }
        if (iter == max_iter) {
            iter = -1;
        }
        task.values.push(iter);
    }
    return task;
}

但是z_i,z_r,c_i,c_r的真正含义以及我如何将它们绑定到上面的公式上并不能。

任何帮助将不胜感激。

格伦迪

复数有两个部分:实数,虚数。
因此z = a + b*i,哪里a是真实的部分,b*i还是虚构的。
在提供的示例中z=z^2+c,其中z=z_r+z_i*i

注: i*i = -1
所以z^2 = (z_r+z_i*i)*(z_r+z_i*i) = z_r*z_r+2*z_r*z_i*i + z_i*i*z_i*i = z_r*z_r+2*z_r*z_i*i - z_i*z_i
现在添加cz_r*z_r+2*z_r*z_i*i - z_i*z_i + c_r + c_i*i组它

z_r*z_r+2*z_r*z_i*i - z_i*z_i + c_r + c_i*i = (z_r*z_r - z_i*z_i + c_r) + (2*z_r*z_i + c_i)*i

因此,我们tmp从代码中获取var-是new的真正组成部分z

tmp = z_r*z_r - z_i*z_i + c_r

和虚部

2*z_r*z_i + c_i

由于z = z_r + z_i * i,我们需要分配

z_r = z_r*z_r - z_i*z_i + c_r
z_i = 2*z_r*z_i + c_i

更新:用于f(z) = e^z - c

第一,一些复杂的形式:x = a+b*i = |x|(cos(p)+i*sin(p)) = |x|*e^(i*p)
其中,|x| = sqrt(a*a + b*b)p = b/a

在我们的例子:p=z_i/z_r|z| = sqrt(z_r*z_r+z_i*z_i)

e^z = e^(z_r+z_i*i) = e^z_r * (e^z_i*i) = e^z_r * (cos(p)+i*sin(p)) = (e^z_r * cos(p)) + i * (e^z_r * sin(p))

减去c

(e^z_r * cos(p)) + i * (e^z_r * sin(p)) - c_r - c_i*i = (e^z_r * cos(p) - c_r) + i * (e^z_r * sin(p) - c_i)

那么新的z

z_r = (e^z_r * cos(p) - c_r) = (e^z_r * cos(z_i/z_r) - c_r)
z_i = (e^z_r * sin(p) - c_i) = (e^z_r * sin(z_i/z_r) - c_i)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

由特定功能定义的Mandelbrot集

来自分类Dev

Mandelbrot集分形码

来自分类Dev

Mandelbrot集的多线程计算

来自分类Dev

无法定义特定功能

来自分类Dev

单张功能集:LatLong未定义

来自分类Dev

如何更快地渲染Mandelbrot集?

来自分类Dev

当试图产生倒置的Mandelbrot集它扭曲

来自分类Dev

如何更快地渲染Mandelbrot集?

来自分类Dev

Mandelbrot集将无法正确呈现

来自分类Dev

用于打印Mandelbrot集的Python代码

来自分类Dev

计算没有复杂对象的 Mandelbrot 集

来自分类Dev

如何使用 OpenACC 计算 Mandelbrot 集?

来自分类Dev

类的朋友功能,只能由特定类使用

来自分类Dev

如果异常是由特定功能引起的,如何捕获

来自分类Dev

定义宏以改善特定功能的语法

来自分类Dev

为C ++中的特定功能定义宏

来自分类Dev

使用自定义排序功能实现树集

来自分类Dev

将颜色图层添加到mandelbrot集

来自分类Dev

用Java图形化表示Mandelbrot和Julia集

来自分类Dev

用Java图形化表示Mandelbrot和Julia集

来自分类Dev

在PYOMO中定义2个变量的特定值集

来自分类Dev

为什么我的特定用户定义功能非常慢?

来自分类Dev

我可以为特定功能明确取消定义宏吗?

来自分类Dev

在类中定义后,如何按特定顺序执行功能?

来自分类Dev

如何将特定功能的对象定义为类型或接口?

来自分类Dev

如何在R中定义的特定环境下编辑功能

来自分类Dev

Chrome扩展程序:如何获取网页以访问由内容脚本定义的功能?

来自分类Dev

如何在Powershell中创建由Web服务工厂功能定义的对象?

来自分类Dev

功能定义