Board logo

标题: IFS分形扫描算法思考 [打印本页]

作者: changxde    时间: 2013-1-19 08:47     标题: IFS分形扫描算法思考

设Fi(i=123…k)是压缩变换 fi 的逆变换,D为构图区域,p∈D.
对于p计算每个Fi(p)如果Fi(p)∈D,再计算每个Fj(Fi(p));
重复上面过程,直到所有像都不属于D或完成指定的次数;
统计最长的轨迹链,此长度作为点p的逃逸时间。

这是我设想的IFS分形的扫描算法,但是用画板不知如何实现。
作者: xiaongxp    时间: 2013-1-21 11:17

如果压缩变换fi是仿射变换A→Ai,且IFS是连通的或刚触的,只要并集∪Ai是A的真子集,补集A-(∪Ai)的测度不为零,或fi是反演变换或莫比乌斯变换,且基圆是外切圆链,无需计算每个Fj(Fi(p)),加入k个判断函数,采用你扫描版圣诞树分形的方法就可搞定。最为困惑的是象分形树这样的重叠IFS不知如何处理,《分形理论与分形的计算机模拟》介绍了升腾法,可能是个好办法:建立3维坐标系,将迭代“升腾”到k个不同水平面上化解重叠问题,迭代完成后再投影到平面z=0,但画板如何实现?
作者: changxde    时间: 2013-1-21 14:32

当各Ai之间两两没有内点时,上面的算法就是前面那个方法。

画板尽管有多重迭代,但是不能记录终点,不好解决这个问题。

用其他编程我也没想好如何实现。
作者: 柳烟    时间: 2013-1-21 14:53

UF中到是有个IFS的谢尔宾司基三角形扫描,程序也不太复杂,由于鄙人仿射几何学得太差,难破译,我空了将程序帖在这,大家看看有无启迪。我对其中的几句可知其用意,其它几句涉及仿射内容,我一头雾子。
作者: 榕坚    时间: 2013-1-22 20:57

2# xiaongxp


嫌麻烦,不敢做。如果用概率使重叠时选其中一个继续迭代呢?
作者: xiaongxp    时间: 2013-1-22 22:28

IFS分形扫描算法的画板实现的确还有相当长的路要走,就连最简单的龙曲线都无法扫描,归根到底它是重叠的IFS,而且ABCD的两个仿射变换像的并集不是ABCD的子集
新建图片.jpg

图片附件: 新建图片.jpg (2013-1-22 22:45, 26.36 KB) / 下载次数 3474
http://inrm3d.cn/attachment.php?aid=19394&k=9ba1943bba6e1f480b55efe2b59034bc&t=1732397696&sid=R02v0i


作者: 榕坚    时间: 2013-1-24 07:59

6# xiaongxp


这是UF的龙分形,代码长的吓人。没耐心看:

图片附件: Fractal1.jpg (2013-1-24 07:59, 28.21 KB) / 下载次数 3322
http://inrm3d.cn/attachment.php?aid=19398&k=f49d5c1af15688ae096d295e916501a5&t=1732397696&sid=R02v0i


作者: changxde    时间: 2013-1-24 11:00

UF 中的 IFS Fern Mandel set
Fractal1.jpg

图片附件: Fractal1.jpg (2013-1-24 11:00, 95.82 KB) / 下载次数 3823
http://inrm3d.cn/attachment.php?aid=19399&k=2e97ed17befa9e3be42d042bce84b26c&t=1732397696&sid=R02v0i


作者: changxde    时间: 2013-1-24 11:11

正勾股树的几种做法
Pythagorean tree.gsp (21.82 KB)

附件: Pythagorean tree.gsp (2013-1-24 11:11, 21.82 KB) / 下载次数 4657
http://inrm3d.cn/attachment.php?aid=19400&k=5b9ebd84220767436727a1249a53d266&t=1732397696&sid=R02v0i
作者: xiaongxp    时间: 2013-1-24 11:17

8# changxde
这个图不像是线性的,是某个保圆变换与仿射变换的串行叠加吗?
作者: xiaongxp    时间: 2013-1-24 11:36

9# changxde
研究过常老师的扫描法,其做法与升腾法异曲同工,用两条轨迹线交替扫描,相当于升腾到两个水平面z=1和z=2,再投影到z=0上扫描,为重叠IFS扫描的画板实现开辟了新路!看来分线扫描是重叠IFS扫描的有效途径。但是,像那巴恩斯蕨叶、分形树等拥有多个仿射变换的IFS,采用分线扫描,又如何进行交替迭代呢?
作者: 榕坚    时间: 2013-1-24 11:58

8# changxde


这个倒比较好做:

图片附件: 捕获.JPG (2013-1-24 11:58, 34.74 KB) / 下载次数 1331
http://inrm3d.cn/attachment.php?aid=19401&k=43f17b0b8f83c9f1d40b5fed7e41a85f&t=1732397696&sid=R02v0i


作者: xiaongxp    时间: 2013-1-24 17:55

用两条轨迹线,终于扫出了略有瑕疵的分形龙。
分形龙[扫描版].jpg
分形龙[扫描版].gsp (11.67 KB)

图片附件: 分形龙[扫描版].jpg (2013-1-24 17:55, 20.85 KB) / 下载次数 1417
http://inrm3d.cn/attachment.php?aid=19404&k=edc5a9630ca3d28f5043327fbbe96192&t=1732397696&sid=R02v0i



附件: 分形龙[扫描版].gsp (2013-1-24 17:55, 11.67 KB) / 下载次数 2687
http://inrm3d.cn/attachment.php?aid=19405&k=e3710efc38b78a4dcd5255d76823608f&t=1732397696&sid=R02v0i
作者: 榕坚    时间: 2013-1-24 21:30

又回到这里来了,还是不能搞定重叠部分:

图片附件: 捕获.JPG (2013-1-24 21:30, 58.42 KB) / 下载次数 1448
http://inrm3d.cn/attachment.php?aid=19407&k=93215df0f98500cc67b53e5b2011eb1c&t=1732397696&sid=R02v0i


作者: 榕坚    时间: 2013-1-24 21:47

13# xiaongxp


一条扫描线就够了吧:

附件: 分形龙[扫描版].gsp (2013-1-24 21:47, 11.94 KB) / 下载次数 2157
http://inrm3d.cn/attachment.php?aid=19408&k=5659be8ec80db77f4dc661d7682f2b64&t=1732397696&sid=R02v0i

图片附件: 捕获.JPG (2013-1-24 21:47, 36.11 KB) / 下载次数 1323
http://inrm3d.cn/attachment.php?aid=19409&k=aaad3b0ff08f0592cc987f647d3a69e6&t=1732397696&sid=R02v0i






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