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) / 下载次数 2078
http://inrm3d.cn/attachment.php?aid=20711&k=8231580006df92abfdb9520cf6caed02&t=1714816873&sid=jaC04C


作者: 榕坚    时间: 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) / 下载次数 2044
http://inrm3d.cn/attachment.php?aid=20720&k=f27ce2c00048d5a2573b6ecf91d3afae&t=1714816873&sid=jaC04C


作者: 柳烟    时间: 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) / 下载次数 1484
http://inrm3d.cn/attachment.php?aid=20728&k=8e317e24e2d583ef8ce34f907d49c0d8&t=1714816873&sid=jaC04C


作者: 柳烟    时间: 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) / 下载次数 1506
http://inrm3d.cn/attachment.php?aid=20730&k=3fcaf661d3149c154ea5a6209cff9000&t=1714816873&sid=jaC04C



附件: Escher_julia 1.gsp (2013-12-7 16:55, 22.32 KB) / 下载次数 3061
http://inrm3d.cn/attachment.php?aid=20731&k=2dfd309768cc602aa904fe57b9cf1769&t=1714816873&sid=jaC04C
作者: 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) / 下载次数 2348
http://inrm3d.cn/attachment.php?aid=20739&k=814631aa0f098dd3e55e54010246ef40&t=1714816873&sid=jaC04C


作者: 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) / 下载次数 2161
http://inrm3d.cn/attachment.php?aid=20735&k=5f5c5409921acdff46d02843fa19a151&t=1714816873&sid=jaC04C



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

图片附件: New.jpg (2014-7-9 11:07, 28.08 KB) / 下载次数 2165
http://inrm3d.cn/attachment.php?aid=20744&k=479a15492e49f808003d9eadab7edf4f&t=1714816873&sid=jaC04C



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

将UF中的carr1997稍作修改:

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


作者: 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) / 下载次数 2170
http://inrm3d.cn/attachment.php?aid=20738&k=a7023ca2dcd534e89e076e1ec82c5c6b&t=1714816873&sid=jaC04C


作者: 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) / 下载次数 2366
http://inrm3d.cn/attachment.php?aid=20740&k=11204338015fbc82595763a89c1a9efc&t=1714816873&sid=jaC04C
作者: 柳烟    时间: 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) / 下载次数 2145
http://inrm3d.cn/attachment.php?aid=20741&k=d31e1e1f0b97a16aa73ca9a759ef7c86&t=1714816873&sid=jaC04C


作者: 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) / 下载次数 1898
http://inrm3d.cn/attachment.php?aid=20747&k=93fe168682204d3b48014b935b9c690c&t=1714816873&sid=jaC04C


作者: 柳烟    时间: 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) / 下载次数 1792
http://inrm3d.cn/attachment.php?aid=20748&k=e35f1ec90e3345a938a949fb1b8a4ae5&t=1714816873&sid=jaC04C


作者: 榕坚    时间: 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) / 下载次数 1665
http://inrm3d.cn/attachment.php?aid=20751&k=990d1d7a6b159c4f55b3fe4c608a5bfa&t=1714816873&sid=jaC04C


作者: 榕坚    时间: 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) / 下载次数 2679
http://inrm3d.cn/attachment.php?aid=20750&k=90b0152e3151446cfbaea2cd25ba1933&t=1714816873&sid=jaC04C


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

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

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

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


作者: 柳烟    时间: 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) / 下载次数 1777
http://inrm3d.cn/attachment.php?aid=20753&k=e37a73cb7795bc67b78eee6f0f3e5922&t=1714816873&sid=jaC04C



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



图片附件: New.gif (2014-7-9 11:14, 13.82 KB) / 下载次数 1780
http://inrm3d.cn/attachment.php?aid=20756&k=268204adc3b187fa89164e3d4f4a2000&t=1714816873&sid=jaC04C


作者: 柳烟    时间: 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) / 下载次数 1738
http://inrm3d.cn/attachment.php?aid=20770&k=5a04dd03f1e48123960df3194422dbaa&t=1714816873&sid=jaC04C


作者: 榕坚    时间: 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) / 下载次数 1776
http://inrm3d.cn/attachment.php?aid=20907&k=9a01095a83092543899095920bb174de&t=1714816873&sid=jaC04C


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

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

图片附件: echer.PNG (2014-4-3 21:58, 18.8 KB) / 下载次数 1707
http://inrm3d.cn/attachment.php?aid=21268&k=46a1e9f15b456ee5f9456448031845fa&t=1714816873&sid=jaC04C


作者: 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) / 下载次数 1729
http://inrm3d.cn/attachment.php?aid=21269&k=b8c195b7a66bbcd0ebce43a7259f3a05&t=1714816873&sid=jaC04C


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

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

图片附件: 捕获6.PNG (2014-4-3 22:24, 29.65 KB) / 下载次数 1743
http://inrm3d.cn/attachment.php?aid=21270&k=5bd867379047c4cddaf3535e207f2892&t=1714816873&sid=jaC04C


作者: 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) / 下载次数 1760
http://inrm3d.cn/attachment.php?aid=21271&k=0739b03af61d037574cf521c922f4ccd&t=1714816873&sid=jaC04C


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

echer4.PNG

这个c不错!

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


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

echer5.PNG

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


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

echer6.PNG

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


作者: 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) / 下载次数 1333
http://inrm3d.cn/attachment.php?aid=21279&k=60507f91f26fec01959748c7397819d7&t=1714816873&sid=jaC04C


作者: 柳烟    时间: 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) / 下载次数 1291
http://inrm3d.cn/attachment.php?aid=21280&k=5a3608c0db7f396eabf1c4fe75f08997&t=1714816873&sid=jaC04C


作者: 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