确定给定点(x,y)是否在mandelbrot集合中的函数

时间:2011-04-14 00:34:15

标签: mandelbrot

因此给定任何点(a + ib),如果函数在mandelbrot集中,则函数将返回1,如果不是n次迭代,则返回0。

我在尝试编写此函数时遇到了困难,特别是对于复数。任何人都可以帮助我或给我一些建议吗?

到目前为止,我只想到一种方法来确定一个实数(任何x,y = 0)是否在mandelbrot集中。

编辑:对不起忘了说我用C编码,我主要是在寻找一些伪问题的想法。

2 个答案:

答案 0 :(得分:1)

该集合上的维基百科页面有一些伪代码可以完成基本工作,并提示您可以采用这样一个项目的许多方向。理解复杂的数学是关键;传统的做法是将复合体的实部和虚部保持为一对双精度,并实现手动或宏所需的任何操作。 (现在你可以使用complex类型,如果你的编译器说C99,但那里的乐趣......?:-))

答案 1 :(得分:0)

您需要重复平方并添加一个复数:

double a = real input component;
double b = imag input component;

double zReal = a;
double zImag = b;
for(int i = 0; i< LIMIT; i++){
   double temp = zReal;
   zReal = zReal * zReal - zImag * zImag;
   zImag = 2 * temp * zImag;
   if(zReal * zReal + zImag * zImag > 4){
      return 0;
   }
}
return 1;