【问题标题】:a function which determines if a given point(x, y) is in the mandelbrot set or not确定给定点(x,y)是否在 mandelbrot 集中的函数
【发布时间】:2011-04-14 00:34:15
【问题描述】:

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

我在尝试编写这个函数时遇到了困难,尤其是对于复数。谁能帮助我或给我一些建议让我开始?

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

编辑:抱歉忘了说我正在用 C 编码,不过我主要是在寻找一些伪代码的想法。

【问题讨论】:

  • 看看this thread对你有没有帮助。
  • 你使用什么编程语言?
  • @jonsca 谢谢,不过我在拆分这两个方程时遇到了麻烦。
  • 其实,解决了。你是最棒的,我爱你 jonsca。

标签: mandelbrot


【解决方案1】:

该系列的 Wikipedia 页面有一些完成基本工作的伪代码,并暗示了您可以采取这样一个项目的许多方向中的一些。理解复杂的数学是关键;传统的做法是将复数的实部和虚部保留为一对双精度数,并手动或以宏的形式对它们执行任何您需要的操作。 (如今,如果您的编译器使用 C99,您可以使用 complex 类型,但其中的乐趣在哪里......?:-))

【讨论】:

    【解决方案2】:

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

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      相关资源
      最近更新 更多