【问题标题】:Smooth Coloring Mandelbrot Set Without Complex Number Library没有复数库的平滑着色曼德布罗集
【发布时间】:2013-04-28 00:00:32
【问题描述】:

我用 C# 编写了一个基本的 Mandelbrot 浏览器,但我有那些可怕的色带,而且都是灰度。

我有平滑着色的方程式: mu = N + 1 - log (log |Z(N)|) / log 2

其中 N 是转义计数,|Z(N)|是值转义后复数的模数,我不确定是这个值。

我的代码基于维基百科页面上给出的伪代码:http://en.wikipedia.org/wiki/Mandelbrot_set#For_programmers

复数由实数值x和y表示,使用这种方法,我将如何计算|Z(N)|的值?

【问题讨论】:

    标签: complex-numbers mandelbrot


    【解决方案1】:

    |Z(N)|表示到原点的距离,因此您可以通过sqrt(x*x + y*y) 计算它。

    如果遇到对数错误:检查之前的迭代。如果它是 Mandelbrot 集 (iteration = max_iteration) 的一部分,则第一个对数将产生 0,而第二个对数将引发错误。 所以只需添加这个 sn-p 而不是旧的返回码。 .

            if (i < iterations)
            {
                return i + 1 - Math.Log(Math.Log(Math.Sqrt(x * x + y * y))) / Math.Log(2);
            }
            return i;
    

    稍后,您应该将 i 除以 max_iterations 并乘以 255。这将为您提供一个不错的 rgb 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-26
      • 2017-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多