任务概述
6.837的第一个作业,实现IFS。目的是熟悉C++的语法特性,并且熟悉使用两个和图像生成和线性代数相关的简单库。通过生成一些奇妙的分形物体来体会图形学的乐趣。
IFS 是一种构造分形的方法,得到的分形通常是自相似(self-similar)的。IFS最经典的例子是绘制一种蕨类植物(Barnsley’s fern),如下图所示,可以看到,每一个子叶片与整个叶片的形状相同。
IFS由一个仿射变换(affine transformations)集合所定义,通常定义的仿射变换包括旋转(rotation)、缩放(scale)、平移(translations)、斜切(skew)等等线性变换方法。这些变换不着了自相似的物体形状。IFS可以定义在多个维度上,在这个作业中,我们只需实现二维的变换。形式上来说,IFS由n个仿射变换组成,可以由如下公式表示:
每一个变换函数fi一定是收缩的,这意味着两点之间的距离必须减小。IFS的吸引子(attractor)是使得等式A=Ufi(A)成立的物体A,经历了这个集合的变换过程之后,物体A的形状不发生改变,也可以将其看作仿射变换集函数的不动点(fixed-point)。

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



