返回列表 回复 发帖
复分形的基础载体是复方程f(z)=z^2,而不是f(z)=z^2+c.如果刚开始就去探讨MJ集的数学原理,难度太大。也不利于后续的思考。f(z)=z^2之所以选其作为载体是由其图形更接近于我们平时经常接触到的圆。
7# 柳烟

柳老师说出了很多板友的心声,赞!
分形图形学的东西,道理其实不难,难在他的令人讨厌的表达方式,所以一上来内心就抵触,所以下载来扫了眼没看懂,再看一遍那一页,还是不懂,有些窝火,火下去后再看
有些东西,当我们懂了的时候,完全可以写的通俗些,别人照样能领会,数学化和通俗化,二者并不矛盾,宇宙学的知识那么深奥,霍金还能写出多数人懂些大概的书,
我在百度上搜索,根本搜不到这本书,知名度和李水根的书没法比,不通俗或许是无法推广的一个重要原因
建议板友们多说些道理,有时候就是一句话的事情
13# xyj200909
有李水根的书共享吗?
14# changxde


没有电子书,有印刷的,不过,常老师的研究在复数分形和L系统、IFS方面已经超越了本书的介绍方法
M集的绘制程序:
The drawing procedure

  p = 0.009

  cri = (p/2)1/3

  r = 1.0E200 (square of the bail-out radius)

  u = log(log(r))

  v = 1/log(2) (2 is the degree of the rational function)

  ax = -0.7028233689263 (x-coordinate of lower left corner)

  ay = 0.1142331238418 (y-coordinate of lower left corner)

  h = 0.0092906805859 (width of the section)

  g = h/800

  m = 850 (maximum iteration number)

  thick = h * 0.0005 (thickness of the boundary)

  dens = 24.9 (density of the colours)

  disp = 432.0 (displacement of the colour scale)

for i = 0 to 799 do

  begin

    cx = ax + i * g (x-coordinate of pixel (i, j))

    for j = 0 to 599 do

      begin

        cy = ay + j * g (y-coordinate of pixel (i, j))

        x = cri

        y = 0

        xd = 0

        yd = 0

        f = 0

        n = 0

        while (n < m) and (f < r) do

          begin

            n = n + 1

            x1 = x * x - y * y

            y1 = 2 * x * y

            f = x * x + y * y

            x2 = 2 * x - p * x1 / (f * f)

            y2 = 2 * y + p * y1 / (f * f)

            temp = xd

            xd = x2 * xd - y2 * yd + 1

            yd = x2 * yd + y2 * temp

            fd = xd * xd + yd * yd

            x = x1 + p * x / f + cx

            y = y1 - p * y / f + cy

            f = x * x + y * y

          end

        if (n = m) or (log(f) * sqrt(f) < thick * sqrt(fd)) then

          setpixel(i, 599 - j, 0)

        else

          begin

            s = n - v * (log(log(f)) - u)

            n = round(dens * s + disp) mod 720

            col = paletteRGB(col1[n], col2[n], col3[n])

            setpixel(i, 599 - j, col)

          end

      end

  end
说明:
We have set c = cx + icy, z = x + iy, z' = xd + iyd and x1 + iy1 = (x + iy)2, and we have used that 1/z = z-/|z|2.

The successive calculation of the derivative z' is xd + iyd = (x2 + iy2)*(xd + iyd) + 1, where x2 + iy2 = 2*(x + iy) - p*(x1 - iy1)/(f*f) and f = x2 + y2. The next point in the iteration is x + iy = (x1 + iy1) + p*(x - iy)/f + (cx + icy). The distance function is

log(√f)*√f/√fd   (= log(f)*√f/(2*√fd))

for the last z-value, here f = x2 + y2 and fd = xd2 + yd2. The number in the interval [0, 1] to be subtracted from the iteration number (in order to get the real iteration number), is log(log(|z|)/log(r))/log(2) = v*(log(log(f)) - u), for the last z, here v = 1/log(2) and u = log(log(r)).

paletteRGB(r, g, b) is the integer indexing the colour with RGB-values (r, g, b), 0 gives black. col, col2 and col3 are the arrays from 0 to 719 of integers from 0 to 255 constructed in the next section.
返回列表