Board logo

标题: 分形这玩意儿 [打印本页]

作者: xuefeiyang    时间: 2011-9-15 15:32     标题: 分形这玩意儿

自从到这个论坛以来,看着这个论坛中的分形板块的发展,着实没想到,刚开始在这里谈分形时,大家都抢着往前跑,跑了一阵之后,现在都回到最初的出发点,开始研究最基本的分形,不可谓学习习惯之中的种种都在这里显现。这是个好现象。结果发现没有急于往前跑的最后反而跑到了前面,后来者踞上!
21.GIF
10.GIF
12.GIF
13.GIF

图片附件: 21.GIF (2011-9-15 15:42, 18 KB) / 下载次数 1854
http://inrm3d.cn/attachment.php?aid=14191&k=7f78b02fb858c320f875b96a8f0364b9&t=1715029567&sid=11111Z



图片附件: 10.GIF (2011-9-15 15:39, 32.59 KB) / 下载次数 1900
http://inrm3d.cn/attachment.php?aid=14192&k=f01f9a0de9358438fd850772b09d82a3&t=1715029567&sid=11111Z



图片附件: 12.GIF (2011-9-15 15:39, 20.54 KB) / 下载次数 1829
http://inrm3d.cn/attachment.php?aid=14193&k=6c7ec4d247e9e1bb95586e85b3c9d344&t=1715029567&sid=11111Z



图片附件: 13.GIF (2011-9-15 15:42, 18.09 KB) / 下载次数 1906
http://inrm3d.cn/attachment.php?aid=14194&k=c830bfd65845f0252c17b680981726ba&t=1715029567&sid=11111Z


作者: xuefeiyang    时间: 2011-9-15 15:36

如果最初要不是急于前行,把这些最基本的基础的东西玩好了,也许现在早已走到另一个世界里了
!现在沉下来还为时不晚。
作者: 榕坚    时间: 2011-9-15 16:14

2# xuefeiyang


我倒不这么看,现在之所以回到出发点能有所作为,那也是因为有了接触到各种各样的方法后的融会贯通。所谓温故而知新。
作者: 柳烟    时间: 2011-9-15 16:20

回到出发点的原因之一,是因为复分形用画板玩得差不多了,该开发的开发得差不多了,再前进一步都很困难,所以大家又回到出发点。
作者: changxde    时间: 2011-9-15 16:37

从本坛中认识了分形,学习了分形,研究了分形,实践了分形,通过实践再认识分形,再学习,再研究,再实践……
M场.JPG

图片附件: M场.JPG (2011-9-15 16:40, 35.16 KB) / 下载次数 1822
http://inrm3d.cn/attachment.php?aid=14197&k=dd4c27c5013e494484e5e7c45af74a1b&t=1715029567&sid=11111Z


作者: 榕坚    时间: 2011-9-15 17:34

关键是算法的问题。而几何画板限于它的功能,我们必须把各种算法编译成几何画板能接受的语言,这是有难度的。包括时间逃逸法也是一种变通的方法。其中最关键的是循环算法,我们一直用的主要是for循环,一定要循环预先给定的次数,这样就加大了运算量。如果能在这方面有秘突破就可以解决速度的问题了,我觉得速度方面应该还有可挖掘的余地,UUU老师的多次迭代就是一个例子。
作者: 柳烟    时间: 2011-9-15 17:46

分形玩到现在,我快要成一个不求上进的人了,现在已精疲力尽了。因为学分形学得十分艰难。虽说艰难,毕竟在各位大师的带领上,有所进步,先感谢各位再说。有几位朋友甚至给了我很大的帮助,鄙人毕生难忘。我这人天质鲁钝,再加上庸懒的个性,现在成了这版块的观客与支持者,我会一如既往支持各位勇登学术高峰,为各位的成就高兴。
分形版块并非就是完满的天堂,也有需改进的地方。从分形版块创版伊始,到而今存在的一个老问题是,大家似乎都不太痛痛快快的和盘托出,比如看到图片,想知道是如何干出来的,但看不到文件,有时要看源文件,还得象孩子要奶吃似的,请求,甚至乞讨,即使看到源文件,源文件中不懂的地方,还不好问询,一问询,怕被别人笑话。有时看其中的源文件,里面东拉西扯了许多与该分形无关的东西,虽说经过一个月两个月的破译,发现了方法,但一个字:累。我想可能是造这分形图片的板友们的源文件,确实费了不少的脑力劳动,岂肯轻易示人呢?从一开始,我就呼吁过,时间如此久了,结果大家宝之又宝之,怕泄漏机秘,这我能理解。象我初进入此分形圣地,先象小孩学走路似的,照本画瓢,学会了M集,结果没人讲讲N集,我到处在网上找N集资料,失败了无数次,后来弄成了,但花的代价实在惊人,如果有大师发点资料,讲点造法,说不定几个钟点就学会了,我会重新将前人走过的路再走一遍吗?实在累了,不学这分形也罢。
值得高兴的是,此分形版块由原来的四五人的队伍,壮大成现在的队伍,研究画板分形的人越多,越能令此版块繁荣,众人捧柴火焰高呀,大家各人发明一点,也许不那么过早白发,学起来潇洒些。
如果大师们多讲点发点,想进入此版的朋友会起来越多,这有利呀,我们又何必闭关自守,现在又回到出发点呢?我认为回到出发点,是喜忧参半的呀。
作者: 榕坚    时间: 2011-9-15 17:57

柳老师分析的精辟,高。
作者: xiaongxp    时间: 2011-9-16 00:19

不怕后来居上,就怕无人问津。要画板分形兴旺起来,就希望新生力量的加盟。而每一次新人的出现,又将画板分形技术向前推进一大步。但是画板分形之路,我们却总是那么形单影只。想我泱泱中华大国,知道分形几何的有多少?研究分形理论的有多少?玩儿分形艺术的又有多少?用画板演绎分形的也就此处寥寥几人了。记得在cgpad.com上,当胡兄将画板算法和分形图一并发布时,站长兼国产分形软件FerryMan Fractal 作者张友邦竟惊叹其为天书,使我意识到用数学做分形可视化艺术的人并不多见。我们当珍视《画板论坛》这片沃土,开诚布公的交流,彼此取长补短,吸纳更多的“同志”,使画板分形技术更加丰富成熟起来。
Fractal Zoom Mandelbrot Corner 2.4#.jpg
此图用常老师的等高线法完成,对uuu老师的方法还没理解,目前是可望不可即的,得花时间消化吸收。

图片附件: Fractal Zoom Mandelbrot Corner 2.4#.jpg (2011-9-16 00:19, 140.5 KB) / 下载次数 2045
http://inrm3d.cn/attachment.php?aid=14212&k=d8903d15dde4ca20f2a5758ee5f4a8d4&t=1715029567&sid=11111Z


作者: xuefeiyang    时间: 2011-9-16 09:08

回顾我在粗论分形一帖中就发现有这种现象,就是当我们对画板分形有一定的认识各自开始了自己的分形之旅时,就能体会到用画板作分形的不易,有些板友开始有所保留,正常也可以理解。但很多时候人就是那么一种陋习,保守。现在大家都说要开诚布公,我非常赞同这种观点,画板分形的开拓应该是一个系统性的工程,也是一个漫长的过程。是用纯数学的方法去演绎分形的原理。让所有懂数学的人都可以成为分形图形生成的技能拥有者和开拓者。提个想法,分形图形学中最精彩的部分莫过于复变分形那一部分,也就是从第三章开始的。我们就从头来用画板把那里的每一种作法的原理及画板的实现展示在这里,但我不知,对这个提议有多少人真正能投入和做到无私,有意的板友就请你跟帖。无意的板友就当你没有看见!
作者: xuefeiyang    时间: 2011-9-16 09:21

复分形的基础载体是复方程f(z)=z^2,而不是f(z)=z^2+c.如果刚开始就去探讨MJ集的数学原理,难度太大。也不利于后续的思考。f(z)=z^2之所以选其作为载体是由其图形更接近于我们平时经常接触到的圆。
作者: dyk    时间: 2011-9-16 15:41

7# 柳烟

柳老师说出了很多板友的心声,赞!
作者: xyj200909    时间: 2011-9-17 16:39

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

13# xyj200909
有李水根的书共享吗?
作者: xyj200909    时间: 2011-9-20 20:51

14# changxde


没有电子书,有印刷的,不过,常老师的研究在复数分形和L系统、IFS方面已经超越了本书的介绍方法
作者: xuefeiyang    时间: 2011-10-6 13:52

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
作者: xuefeiyang    时间: 2011-10-6 13:53

说明:
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.




欢迎光临 inRm3D: 画板论坛 (http://inrm3d.cn/) Powered by Discuz! 7.0.0