Board logo

标题: Escher_Julia 分形 [打印本页]

作者: changxde    时间: 2013-12-4 21:07     标题: Escher_Julia 分形

sshot-1.png
这是winfract中的一个分形图,名字叫escher_julia,我查了一下解释,就能得到下面的信息,
Escher_julia
Escher-like tiling of Julia sets from The Science of Fractal Images
   z(0) = pixel
  z(n+1) = z(n)^2 + (0, 0i)

The target set is a second, scaled, Julia set:

T = [ z: | (z * 15.0)^2 + c | < BAILOUT ]

Two parameters: real and imaginary parts of c
Iteration count and bailout size apply to both Julia sets.

c=0.32+0.043i


109#由给出了画板做法

http://www.inrm3d.cn/viewthread.php?tid=4591&page=14#pid43172
给出较干净的算法,调整了榕老师算法的小问题。

图片附件: sshot-1.png (2013-12-4 21:07, 107.8 KB) / 下载次数 2294
http://inrm3d.cn/attachment.php?aid=20711&k=9b96ea248fa552c6c39f08aa910d44bf&t=1732388826&sid=SXW35s


作者: 榕坚    时间: 2013-12-4 21:43

这个我想应该是标准J集的变换吧。
作者: 柳烟    时间: 2013-12-5 21:14

1# changxde
winfracl软件在那里下?
作者: changxde    时间: 2013-12-5 21:50

http://pan.baidu.com/s/1lDph7
我也忘了在那下的了。我把文件夹上传到网盘,看看能不能打开。
作者: changxde    时间: 2013-12-5 22:12

sshot-2.png
c=-0.74+0.1i

图片附件: sshot-2.png (2013-12-5 22:12, 69.17 KB) / 下载次数 2271
http://inrm3d.cn/attachment.php?aid=20720&k=48935c65e6f0b670692b472a8c137825&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2013-12-5 22:37

4# changxde
谢谢,下了后,能打开。
作者: changxde    时间: 2013-12-6 21:35

我思考了一下,此分形的算法应该是:

第一步:z1=z^2
第二步:z= 15z1
第三步:z=z^2+c 迭代计算Julia集,
第四步:若z在Julia集内部,计算结束;若z在Julia集外部,z=z1回到第一步。


但还不知如何实现此算法。
作者: xiaongxp    时间: 2013-12-6 22:02

可能进行了两次迭代:第一次用z→z^2迭代产生圆内部et=迭代次数,第二次用z→(15z)^2+c迭代J集并变换到前圆内部
作者: 柳烟    时间: 2013-12-6 22:03

Z在J集内部如何判断?是不是这个| (z * 15.0)^2 + c | < BAILOUT ?我先用UF搞一搞看看。
作者: xiaongxp    时间: 2013-12-6 23:01

谁能翻译此文:http://www.nahee.com/spanky/www/fractint/escher_julia_type.html
作者: xiaongxp    时间: 2013-12-7 15:35

New.jpg

图片附件: New.jpg (2014-7-9 11:04, 24.83 KB) / 下载次数 1637
http://inrm3d.cn/attachment.php?aid=20728&k=4f6d93880e13a4e9b0cca5508473f7d7&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2013-12-7 15:44

上楼取得了重要进展
作者: xiaongxp    时间: 2013-12-7 16:55

我用8#的设想作的埃舍尔J盘,按通常作串行叠加的做法,本应设z^2的迭代次数n=7就可以一次搞定内部各圈,但实际必须将n动态设置,否则扫描图就像IFS的最终迭代而不是完整迭代的效果?然而动态设置迭代次数,使圈与圈之间过渡很不自然,请老师们帮我找找原因。
New.jpg
Escher_julia 1.gsp (22.32 KB)

图片附件: New.jpg (2014-7-9 11:04, 26.07 KB) / 下载次数 1672
http://inrm3d.cn/attachment.php?aid=20730&k=aa2e65dd9e792004ba4ed2f6a63891a8&t=1732388826&sid=SXW35s



附件: Escher_julia 1.gsp (2013-12-7 16:55, 22.32 KB) / 下载次数 3311
http://inrm3d.cn/attachment.php?aid=20731&k=ac71f5c10ae36a0fff3dbe2e1e266b07&t=1732388826&sid=SXW35s
作者: xiaongxp    时间: 2013-12-7 17:30

13# xiaongxp
找到原因了,RGB应该在边界值部分关联z^2中的et,因为埃舍尔J盘的每一圈都是J(z^2+c)的边界的变换像,若边界的RGB不关联z^2中的et,外圈就以相同的颜色覆盖了内圈。
作者: 柳烟    时间: 2013-12-7 20:17

14# xiaongxp
祝贺向老师成功破解此分形。你的意思是第一次迭代产生的et,第二次迭代产生的又一et,都要加到RGB参数中去吗?
作者: 榕坚    时间: 2013-12-7 20:48

这还是万里长征的第一步,并不是真正的埃舍尔J盘,此分形的做法应该就是UF中柳老师刚做的五只小M集重叠的做法,它是从最外层开始做起,所以各层交叉的很自然。但它是预先设定好重数的,如何让它动态呢?巷老师是把圆分圈来完成的。
作者: xiaongxp    时间: 2013-12-7 21:04

15# 柳烟
柳老师好。我14#的理解还是有问题,两次迭代的et都是最大迭代次数。我很纳闷,如果设z^2的迭代次数为定值n,就只能扫描第n圈。而用动态n值可扫出各圈,但又出现了每圈的空白,如何使空白处呈相邻外圈的色调?或许不用DEM边界扫描,可解决这一矛盾吧。
作者: xiaongxp    时间: 2013-12-7 21:22

16# 榕坚
真正的埃舍尔J盘是相邻两层相互犬牙交错,如用圆判断圈的第次就会失真,但用什么办法来判断呢?用你指柳老师那方法只能1生1,而埃舍尔J盘是1生2的几何级数式的向外生成的。
作者: 柳烟    时间: 2013-12-7 21:50

我在UF中试,发现z^2+(.32,.048)的J集实施z---z^2,Z4,z^8……变换,则可依次得到盘从内到外的各J集图案。我再看看按小乌龟重叠法弄弄,榕坚讲的可能是一种思路。
说明暂不能发图片,我已经对方老师讲了,他正在处理。
作者: 榕坚    时间: 2013-12-7 22:06

21# 柳烟


做几层出来可能是没有问题的,但如何使它能设定一个n按可输入方式改变呢?这可就是个大课题了。
作者: xiaongxp    时间: 2013-12-7 22:34

终于成功了,不必进行DEM边界扫描。
[attach]20733[/attach]
[attach]20734[/attach]
为什么我不能上传文件了?
作者: changxde    时间: 2013-12-7 22:52

UF试验

Escher {

init:
   z = #pixel
   ;z1=0
loop:
    z1 = z^2
    int k=0
    z = 15*z1

    while (k<@degree &&  |z| < @bailout)
        z = z^2 + @c
        k = k+1
    endwhile

    if |z| >= @bailout
       z = z1
    endif

bailout:
    |z| < @bailout

default:
  title = "Escher"
  int param degree
    caption="degree n"
    default=60
    min=1
  endparam
  complex param c
    default=(0.32,0.043)
  endparam
  float param bailout
    caption = "Bailout value"
    min=0
    default=4
  endparam
}
New.jpg
选一个内部着色方法。

图片附件: New.jpg (2014-7-9 11:06, 87.78 KB) / 下载次数 2878
http://inrm3d.cn/attachment.php?aid=20739&k=207faaa535b8e69fd6b1cc1c99ee7c51&t=1732388826&sid=SXW35s


作者: changxde    时间: 2013-12-7 22:55

我也不能上传图片
作者: xiaongxp    时间: 2013-12-7 23:00

看来18#方老师也没上传成功。
作者: 榕坚    时间: 2013-12-8 01:58

速度太慢了:
作者: xiaongxp    时间: 2013-12-8 08:22

可以上传了
使用动态迭代次数,构造正确的圈数算法,关联圈数着色。各圈用色不宜太多。
New.jpg
Escher_julia 2.1.gsp (19.48 KB)
New.jpg
Escher_julia 2.2.gsp (18.98 KB)

图片附件: New.jpg (2014-7-9 11:07, 11.82 KB) / 下载次数 2633
http://inrm3d.cn/attachment.php?aid=20735&k=2a1354ffac32d4874fbbf6c27a6b5f99&t=1732388826&sid=SXW35s



附件: Escher_julia 2.1.gsp (2013-12-8 13:55, 19.48 KB) / 下载次数 3388
http://inrm3d.cn/attachment.php?aid=20736&k=b4f98911d6ffcf4578acd4be71edeeb2&t=1732388826&sid=SXW35s

图片附件: New.jpg (2014-7-9 11:07, 28.08 KB) / 下载次数 2669
http://inrm3d.cn/attachment.php?aid=20744&k=87e52b618a9ddc83b642a4a6efe2ed36&t=1732388826&sid=SXW35s



附件: Escher_julia 2.2.gsp (2013-12-8 15:52, 18.98 KB) / 下载次数 3358
http://inrm3d.cn/attachment.php?aid=20746&k=e50d9c054b7d96f7c75e5198f7d25539&t=1732388826&sid=SXW35s
作者: 榕坚    时间: 2013-12-8 08:25

将UF中的carr1997稍作修改:

图片附件: 捕获.JPG (2013-12-8 08:25, 57.72 KB) / 下载次数 2945
http://inrm3d.cn/attachment.php?aid=20737&k=a3c3fde9f341557521b6db57be670f48&t=1732388826&sid=SXW35s


作者: xiaongxp    时间: 2013-12-8 08:38

28# 榕坚
榕老师的盘迭代次数用的是常数还是动态变量?
作者: 榕坚    时间: 2013-12-8 08:51

29# xiaongxp


现在还只是静态的变量。如果动态就必须双重迭代。
作者: 柳烟    时间: 2013-12-8 08:53

我在UF中用代码整,怎么整出这个东西?本来应该关于中心对称,结果关于横轴对称,怪事。
New.jpg

图片附件: New.jpg (2014-7-9 11:08, 35.3 KB) / 下载次数 2659
http://inrm3d.cn/attachment.php?aid=20738&k=8c96964bc46ca1fc6a8e7ddec0a284a7&t=1732388826&sid=SXW35s


作者: xiaongxp    时间: 2013-12-8 08:57

30# 榕坚
不两次迭代,正是我苦苦以求的,怎么作呢?能分享文件学习吗?
作者: xiaongxp    时间: 2013-12-8 09:02

31# 柳烟
看看是不是c的纵坐标不精确。
作者: changxde    时间: 2013-12-8 09:29

31# 柳烟
上下对称,y加绝对值了。
作者: 榕坚    时间: 2013-12-8 10:11

32# xiaongxp


我这只是每层的参数都要设定,正想办法让它自动完成呢。请帮忙设计个思路.

附件: carr1997test.gsp (2013-12-8 10:11, 30.53 KB) / 下载次数 2704
http://inrm3d.cn/attachment.php?aid=20740&k=900a4dde168c3d9d8e7a7b7bea19d018&t=1732388826&sid=SXW35s
作者: 柳烟    时间: 2013-12-8 10:15

终于在UF中试成功,稍加修改修改Carr1997文件,立马得到。
New.jpg
我把代码放在这,大家按代码造即可,其实就是五乌龟叠重法。
埃盘 {
; Updated for UF2 by Erik Reckase, March 2000
                  ; Modified Sylvie Gallet frm. [101324,3444],1996
init:
  z=15*pixel^32, c1=15*pixel^16, c2=15*pixel^8, c3=15*pixel^4, c4=15*pixel^2

  l1=100, l2=150
  l3=200, l4=250
  float bailout=16, int iter=0
loop:
  IF (iter==l1)
    z = c1
  ELSEIF (iter==l2)
    z =  c2
  ELSEIF (iter==l3)
    z =  c3
  ELSEIF (iter==l4)
    z = c4
  ENDIF
  z=z*z+(.32,.043)
  iter=iter+1
bailout:
  |z| <= bailout
default:
  title = "埃盘"
  periodicity = 0
  maxiter = 500
  magn = 1
  center = (0,0)
  method = multipass

}
但我担心用GSP作,能否扫得动。榕坚老师的直觉思维令人佩服。

图片附件: New.jpg (2014-7-9 11:08, 42.71 KB) / 下载次数 2524
http://inrm3d.cn/attachment.php?aid=20741&k=d55fb267d4cd7c6e4079fe4dfb74316b&t=1732388826&sid=SXW35s


作者: changxde    时间: 2013-12-8 10:31

这样做只是上面的几层,要体现极限的味道,须要增加层数。
作者: 柳烟    时间: 2013-12-8 10:36

估计几层都够GSP喘气的了,层数越多,GSP怕要撑死。不过,大家越讨论,问题倒是越深入了。似乎GSP中容易实现你们说的思路,搞一个循环程序,可惜,对代码,咱只是略知皮毛。
加大阈值,则可看到盘子边边(等势圈)
作者: xiaongxp    时间: 2013-12-8 11:14

35# 榕坚
看了榕老师的文件,你使用的一次迭代法不需要动态迭代次数,而且加入动态次数也只能改变最后几次迭代,对z^2的迭代毫无影响。两次迭代中z^2+c的迭代次数可设在50~100之间,所以扫描速度较快。榕老师的文件文件中每圈半径设成了等差数列100、200、…,而Escher-J的圈半径应成等比数列;再圈数要多一点,要体现出最外层为极限环。
作者: 榕坚    时间: 2013-12-8 11:15

思路是比较简单:每循环一定次数后只要把Z的初始点跳转到每层的迭代起点。问题是每层的迭代起点如何动态地预设呢?
作者: xiaongxp    时间: 2013-12-8 11:39

40# 榕坚
分两次迭代很好地解决了第二次迭代初始点的跳转问题。
作者: 柳烟    时间: 2013-12-8 14:17

问问向老师,第一次迭代产生与迭代终点作为第二次迭代产生的起点,再产生终点,第一次的et 与第二次的et究竟如何关联在作色参数中?你的文件,由于对你的扫描框不熟悉,不太懂。我刚才试试在其它扫描框中作,结果扫出一个太阳,中间没有J集。
作者: xiaongxp    时间: 2013-12-8 14:49

42# 柳烟
第一次迭代只需产生迭代终点作为第二次迭代的起点,不必生成et。用第二次迭代的et和第一次迭代的动态迭代次数n定义圏数rings(=n-(et=第二次迭代次数)),其中(et=第二次迭代次数)为et=第二次迭代次数的真值,然后由color(=rings÷最外层圈数)关联RGB参数。动态迭代次数n由一组同心圆来定义,其半径成等比数列。
作者: xiaongxp    时间: 2013-12-8 15:25

42# 柳烟
“扫出一个太阳”的原因可能是你第一次迭代使用的是固定迭代次数,所以只扫描了最后一圈。
作者: 柳烟    时间: 2013-12-8 15:50

谢谢向老师解疑,我再试试。前面常老师的UF代码有点小问题,拿到UF中验证,不能运行。略略修改你的文件,按此代码运行,并选一个外部作色模式,扫图:
New.jpg
循环埃J盘 {

init:
  z =pixel
  k=0
loop:
    z1 = z^2
    z = 15*z1
    while (k<45 &&  |z| <= 16)
        z = z^2 + (.32,.043)
        k = k+1
    endwhile
    if |z|>16
       z = z1
    endif
bailout:
  |z|<16
default:
  title = "循环埃J盘"
  helpfile = "Uf*.chm"
  helptopic = "Html\formulas\standard\julia.html"
}

图片附件: New.jpg (2014-7-9 11:09, 51.96 KB) / 下载次数 2065
http://inrm3d.cn/attachment.php?aid=20747&k=90f0f223ecf4b8f1d052b5b8dfb54b6d&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2013-12-8 16:03

按上面代码造GSP,GSP退不出循环,难度挺大。
作者: 榕坚    时间: 2013-12-8 16:55

换个思路,能否象做谢氏三角那样来把J集不断地进行压缩变换。
作者: guxiaoping    时间: 2013-12-8 17:18

榕老师是指把J集压入谢氏三角?我们曾对M集进行过研究,J集应该一样操作。
作者: 榕坚    时间: 2013-12-8 20:28

多做几重再把颜色给混合一下:

图片附件: j.JPG (2013-12-9 07:44, 61.65 KB) / 下载次数 1944
http://inrm3d.cn/attachment.php?aid=20748&k=7476603ab076a95a358763881437fb38&t=1732388826&sid=SXW35s


作者: 榕坚    时间: 2013-12-8 20:30

好象又不能贴图了?
作者: 榕坚    时间: 2013-12-9 10:46

捕获.JPG 37# changxde
[attach]20749[/attach]

其实只要有7层就可以体现极限性了:

图片附件: 捕获.JPG (2013-12-10 07:26, 36.7 KB) / 下载次数 1839
http://inrm3d.cn/attachment.php?aid=20751&k=13d7aa009e56d82a3d996d8e7cff78f8&t=1732388826&sid=SXW35s


作者: 榕坚    时间: 2013-12-9 10:47

怎么又不能贴图了?
作者: inRm    时间: 2013-12-9 15:07

[local]1[/local]
作者: 榕坚    时间: 2013-12-9 19:36

可能是上传读附件速度太慢了:
[localimg=180,135]1[/localimg]
作者: 柳烟    时间: 2013-12-9 22:13

51# 榕坚
请问盘外的等势圈如何弄的?我刚整完一个七层的盘,内部正常,但外面黑漆漆的。
作者: 柳烟    时间: 2013-12-9 22:32

我把阀值设得无比大,结果才出现很窄的两条细盘边。
作者: 柳烟    时间: 2013-12-9 22:39

原来我设成10^16,以为蛮大的,觉得无比大了,结果我设成10^89,等势圈宽窄不等,多起来了。还别说,外国佬发明的这分形,充分体现了数学美。
[local]1[/local]
作者: 榕坚    时间: 2013-12-10 07:22

55# 柳烟


外部可以多设一个变量记录它向外跑的et值:

图片附件: a.JPG (2013-12-10 07:22, 61.4 KB) / 下载次数 3137
http://inrm3d.cn/attachment.php?aid=20750&k=5b1944f109a323be7c7f4b788dd87111&t=1732388826&sid=SXW35s


作者: xiaongxp    时间: 2013-12-10 21:18

还是不能传附件
作者: 榕坚    时间: 2013-12-10 21:40

试试能否上传图片,顺便再提个问题:如何将放大的图形进行旋转呢:
确实不行,好象早晨都可以传,一到晚上就停了。

图片附件: New.jpg (2014-7-9 11:09, 76.75 KB) / 下载次数 3050
http://inrm3d.cn/attachment.php?aid=20752&k=fa0e83b697e3527a17d5ef387eb98a7d&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2013-12-10 21:46

好象今天早上89点钟都不能上传图片。这段时间不知网站怎么搞的。放大的图再旋转,Changxde新整的扫描框,有这功能。
作者: xiaongxp    时间: 2013-12-10 23:28

60# 榕坚
作一个从新像素点到原点像素点的旋转变换,跟踪新像素点扫描可实现扫描图的旋转。
作者: 榕坚    时间: 2013-12-11 07:20

62# xiaongxp


我的意思是能否截取一幅M集的放大图做埃舍尔变换?不过几何画板是肯定扫不动的。现在又能上传图片了,真奇怪。
作者: xiaongxp    时间: 2013-12-11 14:00

63# 榕坚

以下两法或许能办到:
1.用变换(z-c[0])^2(其中c[0]为M集的定位中心)替代埃舍尔变换z^2
2.将坐标原点附平移变换为定位中心附近,再实施埃舍尔变换z^2
但这两法均应将变换终点加入kc进行z^2+kc的M集迭代,其中k的值可能不再为15,要作适当的调整。
带阴阳纹的埃舍尔盘
New.gif
New.gif
New.gif

图片附件: New.gif (2014-7-9 11:12, 14.04 KB) / 下载次数 2226
http://inrm3d.cn/attachment.php?aid=20753&k=df4bc31d7ad470c11148ea524bd227d5&t=1732388826&sid=SXW35s



图片附件: New.gif (2014-7-9 11:15, 15.6 KB) / 下载次数 2240
http://inrm3d.cn/attachment.php?aid=20754&k=b9666b1bb232c6d70a5dfc70322d147d&t=1732388826&sid=SXW35s



图片附件: New.gif (2014-7-9 11:14, 13.82 KB) / 下载次数 2243
http://inrm3d.cn/attachment.php?aid=20756&k=48fd8770d949487be1f69a0ab14cae90&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2013-12-11 20:53

我问一个问题:sqrt(z^2),按理有两个根,一个是z,一个是-z,造复分形任取一个就行。我这理解对吗?
sqrt(z^3)*sqrt(z)=sqrt(z4),有两个,一个是z^2,一个是-z^2,我这理解对吗?造分形时,可取其一,选z^2即可。我上面理解有无问题?
作者: changxde    时间: 2013-12-12 19:37

简单修改carr199
Carr1997 {
init:
  z= 0
  c=pixel, c1=1.03125*c, c2=1.0625*c
  c3=1.125*c, c4=1.25*c , c5=1.5*c,  c6=2*c
  l1=round(real(p1)), l2=round(imag(p1))
  l3=round(real(p2)), l4=round(imag(p2))
  l5=round(real(p3)), l6=round(imag(p3))
  float bailout=16, int iter=0  ,int k = 256
loop:
  IF (iter==l1)
     c = c1 ,  k = 128
  ELSEIF (iter==l2)
     c = c2 ,  k = 64
  ELSEIF (iter==l3)
     c = c3 , k = 32
  ELSEIF (iter==l4)
     c = c4 , k = 16
  ELSEIF (iter==l5)
     c = c5 , k = 8
  ELSEIF (iter==l6)
     c = c6 , k = 4
  ENDIF
  z=z*z+c^k
  iter=iter+1
bailout:
  |real(z)| <= bailout
http://c.hiphotos.bdimg.com/album/s%3D1000%3Bq%3D90/sign=8102e445a38b87d65442af1f37381349/95eef01f3a292df5d2e0fa61be315c6034a873a6.jpg

最近网络不正常,老是不能上传图片。
作者: changxde    时间: 2013-12-12 20:03

http://c.hiphotos.bdimg.com/album/s%3D1000%3Bq%3D90/sign=e4902e72aeaf2eddd0f14de9bd203a98/79f0f736afc3793198ccd65de9c4b74543a91119.jpg

可以用右键目标另存观看
作者: xiaongxp    时间: 2013-12-12 20:29

我今天赶在早上8点半左右上传图片,居然传上了。常老师明早试着传传?

好像常老师的图片已经传上了,不过是位图文件,用右键另存后打开还是双手合十的娃娃。
作者: 柳烟    时间: 2013-12-13 15:52

New.jpg

图片附件: New.jpg (2014-7-9 11:15, 31.15 KB) / 下载次数 2078
http://inrm3d.cn/attachment.php?aid=20770&k=16ddad0b446face86cc48202a81cc072&t=1732388826&sid=SXW35s


作者: 榕坚    时间: 2013-12-20 18:37

20770
柳烟 发表于 2013-12-13 15:52
这个做了几重?
作者: 柳烟    时间: 2013-12-20 21:03

70# 榕坚
7重。前面五乌龟排法。
作者: 柳烟    时间: 2014-1-6 11:10

New.jpg

图片附件: New.jpg (2014-7-9 11:16, 28.43 KB) / 下载次数 1921
http://inrm3d.cn/attachment.php?aid=20907&k=25dcc01c09f2919a2662c13bbeeea227&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 21:58

echer.PNG
在Mathcad中做成了。太费劲了啊!

图片附件: echer.PNG (2014-4-3 21:58, 18.8 KB) / 下载次数 1840
http://inrm3d.cn/attachment.php?aid=21268&k=19eee0a1d23b420489e5f609b157cc71&t=1732388826&sid=SXW35s


作者: xiaongxp    时间: 2014-4-3 22:08

73# lnszdzg
好,“就是这个味儿!”
作分形用画板与用Mathcad哪个更容易?
作者: lnszdzg    时间: 2014-4-3 22:18

echer2.PNG
好像Mathcad好一些,因为Mathcad能编程,而且一旦做好一个,其他的只需改动参数即可实现。

图片附件: echer2.PNG (2014-4-3 22:18, 24.76 KB) / 下载次数 1879
http://inrm3d.cn/attachment.php?aid=21269&k=4b95f29cd91206f03dce03f28505f7f0&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 22:24

捕获6.PNG
更重要的是,程序似乎比UF的代码简单,无需判断iter的值,动态的n也容易实现(只需多加一重循环)

图片附件: 捕获6.PNG (2014-4-3 22:24, 29.65 KB) / 下载次数 1890
http://inrm3d.cn/attachment.php?aid=21270&k=9aaf5ef8103e15ec44d9592e263f3b23&t=1732388826&sid=SXW35s


作者: xiaongxp    时间: 2014-4-3 22:29

75# lnszdzg
谢谢。这个配色层次感更强
作者: lnszdzg    时间: 2014-4-3 22:49

echer3.PNG

向老师客气了,我只是跟着您、柳老师、常老师的脚步在走啊。
只希望大家能够共同探讨。

图片附件: echer3.PNG (2014-4-3 22:49, 33.44 KB) / 下载次数 1905
http://inrm3d.cn/attachment.php?aid=21271&k=924470e9958f52759595b8376bd2001f&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 22:57

echer4.PNG

这个c不错!

图片附件: echer4.PNG (2014-4-3 22:57, 29.75 KB) / 下载次数 1858
http://inrm3d.cn/attachment.php?aid=21272&k=d5c3e0b4801ae70e9a05ef9cecc5fad2&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 23:05

echer5.PNG

图片附件: echer5.PNG (2014-4-3 23:05, 36.03 KB) / 下载次数 1891
http://inrm3d.cn/attachment.php?aid=21273&k=65ed614ce7359152f88b3f1862d7de35&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 23:06

echer6.PNG

图片附件: echer6.PNG (2014-4-3 23:06, 23.18 KB) / 下载次数 1857
http://inrm3d.cn/attachment.php?aid=21274&k=6a7352a630e87204ee8aa8e5f8fb275e&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-3 23:09

以上图形,只需改变程序中的参数c即可得到。
作者: changxde    时间: 2014-4-4 09:24

我思考了一下,此分形的算法应该是:

第一步:z1=z^2
第二步:z= 15z1
第三步:z=z^2+c 迭代计算Julia集,
第四步:若z在Julia集内部,计算结束;若z在Julia集外部,z=z1回到第一步。

但还不知如何实现此算 ...
changxde 发表于 2013-12-6 21:35
看来gsp暂时无法实现这个算法,而用其他编程语言可以实现。
作者: lnszdzg    时间: 2014-4-4 14:52

83# changxde

是这样的,我已经贴出了Mathcad的程序。
作者: lnszdzg    时间: 2014-4-4 14:54

83# changxde

在76#,这里我用了z=8z,没用z=15z
作者: 柳烟    时间: 2014-4-4 20:50

21270
更重要的是,程序似乎比UF的代码简单,无需判断iter的值,动态的n也容易实现(只需多加一重循环)
lnszdzg 发表于 2014-4-3 22:24
敢问老兄,有没有你玩的这款软件入门方面的东西?
作者: lnszdzg    时间: 2014-4-4 21:09

86# 柳烟


有点,怎么发给您?
作者: lnszdzg    时间: 2014-4-4 21:12

http://pan.baidu.com/s/1hqoSsxm
作者: lnszdzg    时间: 2014-4-4 21:13

http://pan.baidu.com/s/1jG7fcqU
作者: 榕坚    时间: 2014-4-5 16:13

83# changxde


这个算法我感觉几何画板应该可以实现的。之前好像在哪里有用过。什么时候找个时间好好想想。最近好久没做都生疏了。
作者: 柳烟    时间: 2014-4-5 20:39

照这个样子,用UF应该可以实现。但不知如何判断某点在J集内部,不是在J集内部。lnszdzg老师说说你那程序的大致过程,我看能不能用UF搞个程序实现?
作者: lnszdzg    时间: 2014-4-5 20:53

捕获6.PNG
应该能实现的。

图片附件: 捕获6.PNG (2014-4-5 20:53, 29.65 KB) / 下载次数 1492
http://inrm3d.cn/attachment.php?aid=21279&k=9b1b06c7d0a32121c6a6759328c9d783&t=1732388826&sid=SXW35s


作者: 柳烟    时间: 2014-4-5 20:59

92# lnszdzg
主要是不懂你用的这个软件,读之,对我们来说,有点天书。那程序里面,究竟满足|z|>r, 继续循环呢,还是终止循环?感觉到你的程序里循环有点多,理不清头绪。
作者: xiaongxp    时间: 2014-4-5 21:01

92# lnszdzg
请解释一下这句,谢谢:
图片.jpg

图片附件: 图片.jpg (2014-4-5 21:01, 4.79 KB) / 下载次数 1427
http://inrm3d.cn/attachment.php?aid=21280&k=d8d3d0cc5003b73f4e497854af29358b&t=1732388826&sid=SXW35s


作者: lnszdzg    时间: 2014-4-5 21:03

n1分形层数,前两层for循环是z的值有关,即z的实部和虚部分别从-1.501到1.50
第三层for循环是从第一层到第n1层
具体说:
for k=1 to m+1
   for j=1 to m+1
      for nn=1 to n1

            et0=0
           第一步: z=-1.501-1.501
            第二步:z=z^2  (if |z|>r break)
             第三步:z=8*z
            第四步:z=z^2+c  (if |z|>r break)
            第五步:若z在E集内,赋予颜色,否则到第一步(这一步最重要,否则只有最后一层)
作者: lnszdzg    时间: 2014-4-5 21:07

这句的意思是:z=-1.501-1.501*i
这里(j-1)*d是z的实部从-1.501到-1.501+m*d
其中m是像素个数,d是循环步长
作者: xiaongxp    时间: 2014-4-5 21:09

这句的意思是:z=-1.501-1.501*i
这里(j-1)*d是z的实部从-1.501到-1.501+m*d
其中m是像素个数,d是循环步长
lnszdzg 发表于 2014-4-5 21:07
是用来确定扫描范围么?
作者: lnszdzg    时间: 2014-4-5 21:10

m是图形的像素个数,这里m=400,d是步长,这里d=3/m
一般来说m越大图形像素越多,图形就月清晰
d越小图形越细腻(但循环次数越多,运算量越大,就比较慢)
作者: lnszdzg    时间: 2014-4-5 21:12

92# lnszdzg
主要是不懂你用的这个软件,读之,对我们来说,有点天书。那程序里面,究竟满足|z|>r, 继续循环呢,还是终止循环?感觉到你的程序里循环有点多,理不清头绪。
柳烟 发表于 2014-4-5 20:59
(if |z|>r break)就是终止循环
作者: lnszdzg    时间: 2014-4-5 21:15

是用来确定扫描范围么?
xiaongxp 发表于 2014-4-5 21:09
对,因为Mathcad作图时必须将图形转化为矩阵,才能处理,这是与其他语言的区别,也是他的致命弱点。(因为矩阵不能太大,导致图形的清晰度不高)
作者: lnszdzg    时间: 2014-4-5 21:20

其实程序的后半部分我是“拿来主义”的啊




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