Iterated Function System(Fractals):迭代函数系统(分形)

最近在学习MIT的图形学课程,开一个新的系列记录一下~

第一个作业是迭代函数系统,也称作分形,通过对随机均匀分布的大量点进行迭代的变换,得到具有一定重复性特征的图形

目录

原理

伪代码

实现难点

部分结果

github链接


原理

        迭代函数系统存在自相似性,每个分形系统的图片都可以由n组仿射变换来描述。

        一个系统有朝某个稳态发展的趋势,这个稳态就叫做吸引子。对于分形系统,系统最终稳定的吸引子是一个确定的点,吸引子的中的各个元素是吸引子的变换形式,这些吸引子经过不同的变换聚合在一起就成了最终稳定态的吸引子,即A = Yf_i(A)

伪代码

         代码部分比较简单:

        1、生成大量随机点,遍布整个画布

        2、对于0-迭代次数

                2.1、对每一个点,随机选择一个事先规定的变换方式

                2.2、记录变换后的坐标,成为新的点

        3、显示当前所有点

实现难点

        我是用C++编写的代码,具体实现有一个问题,即当前变换坐标后的点有可能超出了原本设置好的画布大小(如果提前设置了画布的话),这时需要对x、y坐标的最小、最大值进行判断和变换,将之填充在画布上。

部分结果

 

    

github链接

GitHub - A-pril/Graphics-6.837: MIT Graphics learning record

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值