Mandelbrot设置分形码

时间:2015-03-02 17:15:55

标签: java fractals

我对Complex变量使用以下Complex类文件。

下面的java代码是Mandelbrot Set的迭代计算器的一个例子。

public int iterations(Complex no) {
    Complex z = no;
    int iterations = 0;
    while (z.modulusSquared() < 4 && iter <= MAX_ITERATIONS) {
        z = z.square();
        z = z.add(y);
        iter++;
    }
    return iter;
}

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为在函数平方中你需要使用绝对值:

 public Complex square() {
    double newreal;
    double newimaginary;

    newreal = ((real * real) - (imaginary * imaginary));
    newimaginary = 2 * abs(imaginary * real);

    return new Complex(newreal, newimaginary);
}

enter image description here

  

现在,为了对一个复数进行平方,我扩展了这个等式:   (Zx + Zyi)2 =   Zx×Zx + Zx×Zy + Zx×Zy-Zy×Zy =   Zx2-Zy2 + 2(Zx×Zy)   实际部分是Zx2-Zy2。将它们相乘(Zx Zx部分)比使用将数字增加到另一个的函数更快。   虚部为2(Zx×Zy)。设置变量n = Zx Zy然后设置n = n + n以避免乘以2(加法比乘法更快)更快。 Zy是一个浮点数,所以我不能做一点左移乘以2。   现在与Mandelbrot集合不同的部分是这样的:   ZY = Math.abs(Zx时* ZY);

[¹] http://spanishplus.tripod.com/maths/FractalBurningShip.htm