Fractal Fern The programs fern and finitefern in the exm toolbox produce the Fractal Fern described by Michael Barnsley in Fractals Everywhere [?]. They generate and plot a potentially infinite sequence of random, but carefully choreographed, points in the plane. The command 标题“Fractal Fern”指的是分形蕨类植物,这是一种利用数学模型生成的分形图案,它是通过重复运用仿射变换(affine transformations)在一个平面内生成和绘制一系列随机但精心编排的点。根据描述,“fern”和“finitefern”这两个程序在“exm toolbox”中用于生成这种蕨类植物分形。分形蕨类植物是由迈克尔·巴恩斯利(Michael Barnsley)在其著作《Fractals Everywhere》中描述的。 分形蕨类植物涉及到的数学知识主要包括以下几点: 1. 仿射变换:在二维空间中,可以通过仿射变换将一个点映射到另一个点。仿射变换通过2x2矩阵A和2维向量b表示,形式为x -> Ax + b。仿射变换包括平移、旋转、缩放和错切等几何变换。 2. 分形的迭代:分形蕨类植物是通过不断迭代仿射变换得到的。程序通过不断地对点进行仿射变换,产生一个密集的点序列,从而绘制出蕨类植物的形状。 3. 随机选择变换:在分形蕨类植物的生成过程中,不是每次都应用同一种仿射变换,而是随机地选择四种不同的变换中的一种。通常,其中一个变换使用得更频繁,它将点稍微缩短和旋转,然后将第二个分量增加1.6,使得点逐渐向上和向右移动,朝向蕨类植物的顶端。偶尔,其他三种变换会被随机选择,将点移动到蕨类植物的其他部分,比如右下部的次级蕨片、左下部的次级蕨片或茎部。 4. MATLAB实现:文档中提到的“fern”和“finitefern”是用MATLAB语言实现的程序。MATLAB是一种用于数值计算、可视化和编程的高性能语言和交互式环境。这些程序可以无限运行,生成越来越密集的蕨类植物图案,或者生成n个点但不进行绘制,而是返回一个用于稀疏矩阵和图像处理函数的零和一数组。 5. fern.jpg图像:文档提到exm toolbox中包含了一张名为“fern.jpg”的768x1024像素的彩色图片,包含五十万个点。这张图片可以使用浏览器或画图程序查看。用户也可以使用MATLAB的命令`F=imread('fern.png')`和`image(F)`来查看图片。 6. 使用背景:如果用户喜欢分形蕨类植物的图像,可以选择将其设置为电脑桌面背景。但是,为了真正观察到蕨类植物动态生成的高分辨率细节,建议用户亲自运行fern程序。 7. MATLAB代码片段:文档最后提供了一个MATLAB实现的分形蕨类植物函数的代码片段,它利用仿射变换来生成蕨类植物形状。函数无限运行,直到用户停止它。该代码段利用了MATLAB的图形用户界面功能来不断清除之前的图形,并绘制新的图形。 8. 文档提及的版权:文档最后提到Cleve Moler是MathWorks公司的注册商标,MATLAB是MathWorks公司的注册商标。这些信息提醒用户在使用相关资源时尊重知识产权和版权信息。 分形蕨类植物是一个典型的计算机分形艺术的例子,它不仅在数学和计算机科学领域有应用,在艺术设计和计算机图形学中也占有一席之地。通过仿射变换的重复使用和概率选择,分形蕨类植物的生成过程模拟了自然中蕨类植物的生长模式,展现出美丽而复杂的结构。
剩余7页未读,继续阅读
- 粉丝: 1077
- 资源: 24
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助