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) / 下载次数 3042
http://www.inrm3d.cn/attachment.php?aid=19394&k=844f2179c078f0e882353e8fd7a85782&t=1716322856&sid=a4LVut


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

6# xiaongxp


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

图片附件: Fractal1.jpg (2013-1-24 07:59, 28.21 KB) / 下载次数 2895
http://www.inrm3d.cn/attachment.php?aid=19398&k=91af069b56b2e89faf40de20983fbd78&t=1716322856&sid=a4LVut


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

UF 中的 IFS Fern Mandel set
Fractal1.jpg

图片附件: Fractal1.jpg (2013-1-24 11:00, 95.82 KB) / 下载次数 3338
http://www.inrm3d.cn/attachment.php?aid=19399&k=a616f111c5eb38c96f969394093994d9&t=1716322856&sid=a4LVut


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

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

附件: Pythagorean tree.gsp (2013-1-24 11:11, 21.82 KB) / 下载次数 4241
http://www.inrm3d.cn/attachment.php?aid=19400&k=086b94a9213fa22de3e9e92e75423bf0&t=1716322856&sid=a4LVut
作者: 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) / 下载次数 1216
http://www.inrm3d.cn/attachment.php?aid=19401&k=6bca61920390ee366ea71d500f97c90d&t=1716322856&sid=a4LVut


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

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

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



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

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

图片附件: 捕获.JPG (2013-1-24 21:30, 58.42 KB) / 下载次数 1322
http://www.inrm3d.cn/attachment.php?aid=19407&k=f95de8a26ea7a86137baf6451f3ea4f0&t=1716322856&sid=a4LVut


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

13# xiaongxp


一条扫描线就够了吧:

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

图片附件: 捕获.JPG (2013-1-24 21:47, 36.11 KB) / 下载次数 1210
http://www.inrm3d.cn/attachment.php?aid=19409&k=9bfab3a7a219168fdce04ab6c5c6734e&t=1716322856&sid=a4LVut






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