基于递归法的Sierpinski“垫片”Matlab编程(添加上Matlab源码)

本文介绍了如何使用递归法在Matlab中绘制Sierpinski垫片,详细解析了分形构造原理和算法细节,并提供了一段Matlab源码。通过设置不同递归次数,生成不同层次的Sierpinski垫片图形。
摘要由CSDN通过智能技术生成
 

Sierpinski“垫片”的构造原理如下:首先取一个正三角形,将其等分为四个小的正三角形,并舍去中间的一个,然后将余下3个正三角形中的每一个再等分为4个更小的正三角形,并舍去各自中间的一个,进一步再将余下的9个正三角形分别按同样的方法操作取舍,如此反复操作下去,直至无穷。最后所得图形就是谢尔宾斯基三角形,亦即Sierpinski“垫片”。

由上述原理可知,该图形具有严格的相似性,可通过递归法实现计算机绘制。算法原理如下:一个正三角形的顶点位置可以由其中心O和半径R确定。为方便起见,用复数来表示正三角形的各个特征值,设正三角形的中心位置为p = p,半径为r = r,三个顶点的位置可用向量z=[x1+i*y1,x2+i*y2,x3+i*y3]表示,则有:

z = p + r * exp( i * ( [0:3] * pi * 2/3 + a ) )

其中,a 是正三角形的偏转角度,当 a = 0 时,正三角形有一条底边平行于坐标轴纵轴;当 a = -pi/6 时,正三角形有一条底边平行于坐标轴横轴。

由上式即可确定一个正三角形A,当半径缩小为 r/2 时,所得的正三角形B的面积恰为A 1/4 ,而且易见,B的中心及其顶点恰好是将A四等分的四个小的正三角形C1C2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值