我有一个Mandelbrot集生成器:

private int calculateMandel(double positionX, double positionY) {
    int valueOne = 0;
    double complexReal = 0.0;
    double complexImaginery = 0.0;
    double complexRealSquare = 0.0;
    double complexImaginerySquare = 0.0;

    while (valueOne < MAX && complexRealSquare + complexImaginerySquare < 4.0) {
        complexImaginery = 2.0 * complexReal * complexImaginery + positionY;
        complexReal = complexRealSquare - complexImaginerySquare + positionX;
        complexRealSquare = complexReal * complexReal;
        complexImaginerySquare = complexImaginery * complexImaginery;

        valueOne++;
    }

    return valueOne;
}


在开始将complexRealcomplexImaginery修改为某些值后,以某种方式我无法在这些值处获取Julia集。
我究竟做错了什么?在预定义的特定点生成Julia Set的正确算法是什么?

最佳答案

Julia set的迭代取决于两个参数:初始值z0和常数c。通常,第一个是要着色的像素的位置,而第二个是描述要绘制的Julia集的参数。因此,请使用像素位置来初始化您的复杂变量,然后在每次平方后添加一个固定常数。按照我阅读问题的方式,您使用了两种相反的方式,即固定的初始化但依赖于位置的加法。

10-06 13:55