我有一个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;
}
在开始将
complexReal
和complexImaginery
修改为某些值后,以某种方式我无法在这些值处获取Julia集。我究竟做错了什么?在预定义的特定点生成Julia Set的正确算法是什么?
最佳答案
Julia set的迭代取决于两个参数:初始值z0和常数c。通常,第一个是要着色的像素的位置,而第二个是描述要绘制的Julia集的参数。因此,请使用像素位置来初始化您的复杂变量,然后在每次平方后添加一个固定常数。按照我阅读问题的方式,您使用了两种相反的方式,即固定的初始化但依赖于位置的加法。