返回列表 回复 发帖

IFS分形扫描算法思考

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

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

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

用其他编程我也没想好如何实现。
UF中到是有个IFS的谢尔宾司基三角形扫描,程序也不太复杂,由于鄙人仿射几何学得太差,难破译,我空了将程序帖在这,大家看看有无启迪。我对其中的几句可知其用意,其它几句涉及仿射内容,我一头雾子。
2# xiaongxp


嫌麻烦,不敢做。如果用概率使重叠时选其中一个继续迭代呢?
IFS分形扫描算法的画板实现的确还有相当长的路要走,就连最简单的龙曲线都无法扫描,归根到底它是重叠的IFS,而且ABCD的两个仿射变换像的并集不是ABCD的子集
新建图片.jpg
6# xiaongxp


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

Fractal1.jpg (28.21 KB)

Fractal1.jpg

UF 中的 IFS Fern Mandel set
Fractal1.jpg
正勾股树的几种做法
Pythagorean tree.gsp (21.82 KB)
8# changxde
这个图不像是线性的,是某个保圆变换与仿射变换的串行叠加吗?
返回列表