https://www.bilibili.com/video/BV1q5411d7ny?share_source=copy_web
中午突然刷到上边链接这个视频
就用matlab编了一个程序验证一下
写的比较简单
代码如下:
%不论任意点坐标如何都能收敛到谢尔宾斯基三角形
x=[0 1 2 0];%x坐标,三角形三顶点+任意点
y=[0 1 0 1];%y坐标,三角形三顶点+任意点
q=ones(1,20000);%使用矩阵节约绘图时间
p=ones(1,size(q,2));%同时设置计算次数
z=[1,2,3];
for n=1:size(q,2)
b=randsrc(1,1,z(1:3));%随机三选一
x(4)=0.5*(x(4)+x(b));%任意点与随机某顶点取中点
y(4)=0.5*(y(4)+y(b));%任意点与随机某顶点取中点
q(n)=x(4);%保存每次中点
p(n)=y(4);
end
plot(x(1:3),y(1:3),'o',q,p,'.');%绘图
这是1000次
这是1万次
有那味儿了!
======================================================================
[2022.05.21]修改:
优化了计算时间;
增加了注释,更方便理解改进;