利用matlab绘制简单IFS图形(Sierpinski三角形和BarnsleyFern巴恩斯利蕨) 您所在的位置:网站首页 地毯代码 利用matlab绘制简单IFS图形(Sierpinski三角形和BarnsleyFern巴恩斯利蕨)

利用matlab绘制简单IFS图形(Sierpinski三角形和BarnsleyFern巴恩斯利蕨)

2024-06-10 08:33| 来源: 网络整理| 查看: 265

利用matlab绘制简单IFS图形(Sierpinski谢尔宾斯基三角形和BarnsleyFern巴恩斯利蕨) 一、SierpinskiTriangle谢尔宾斯基三角形

谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出。它的维度为log(3)/log(2)=1.585。(来自百度)

下面用迭代的方式绘制谢尔宾斯基三角形,方法如下:

在平面上任取三个不共线的点A、B、C作为三角形的3个顶点,之后选取另一点作为当前点。 1计算当前点与随机某一顶点的中点O 2绘制该中点O,并将该点作为新的当前点。重复步骤1 在这里插入图片描述 效果如下: 在这里插入图片描述 虽然初始当前点在三角形之外,但是随着迭代,很快便具有三角形的外观。随着时间的增加呈现出谢尔宾斯基三角形。

谢尔宾斯基三角形具有空间的自相似性。比如根据上面的算法得到的正三角形如下图所示(共计2^17个点)。 在这里插入图片描述 对上图进行灰度化显示,按分辨率大小划分区间,将点数多的区间标记为白色,将点数少的区间标记为黑色。逐渐提高图像分辨率,可以得到如下动图: 在这里插入图片描述 matlab代码如下:

%谢尔宾斯三角形 %给定初始3点 Tripots=rand(3,2); Tripots=[0,1;1*sin(2*pi/3),1*cos(2*pi/3);1*sin(4*pi/3),1*cos(4*pi/3)]; %定义SierpinskiTriangle三角形点数 N=2^17;%定义1000个点 SierpinskiTriangle=zeros(N+3,2); SierpinskiTriangle(1:3,:)=Tripots; %定义参考点 ReferencePoint=rand(1,2); for j=1:N %选取参考点与随机角点的中点,作为新的参考点 ReferencePoint=(Tripots(randi([1,3],1),:)+ReferencePoint)/2; %记录在SierpinskiTriangle中 SierpinskiTriangle(3+j,:)=ReferencePoint; end scatter(SierpinskiTriangle(:,1),SierpinskiTriangle(:,2),0.1,'filled') axis off

灰度图绘制利用hist3()函数。

参考: 1数学实验(李尚志)P125 2知乎:谢尔宾斯基三角形能用编程写出来么?该怎么写?https://www.zhihu.com/question/53448865

二、BarnsleyFern巴恩斯利蕨

巴恩斯利蕨(Barnsley fern),名字来源于它的首创者——美国佐治亚理工学院的巴恩斯利教授。

为了生成植物的形状,巴恩斯利教授把两种运算规则相结合:确定性算法与随机性算法。确定性算法的公式如下: f ( x , y ) = [ a b c d ] [ x y ] + [ e f



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有