Matlab创建蕨形叶和塞平斯基三角形的图形用户界面(wzl)

在这里插入图片描述
首先了解蕨形叶
在这里插入图片描述

function fern1
%两个组件
h1=uicontrol('style','togglebutton','string','Stop');
h2=axes('XLim',[-3 3],'YLim',[0,10],'Position',[0.15,0.15,0.75,0.75]);
%画蕨形叶图
x=[0.5;0.5];
plot(h2,x(1),x(2),'.','color',[0 2/3 0],'markersize',1);
axis([-3 3 0 10]);
hold on
drawnow;

A1=[0.85 0.04;-0.04 0.85]; b1=[0;1.6];
A2=[0.2 -0.26;0.23 0.22]; b2=[0;1.6];
A3=[-0.15 0.28;0.26 0.24]; b3=[0;0.44];
A4=[0 0;0 0.16];
while h1.Value==0
    r=rand;
    if r<0.85
        x=A1*x+b1;
    elseif r<0.92
        x=A2*x+b2;
    elseif r<0.99
        x=A3*x+b3;
    else
        x=A4*x;
    end
    plot(h2,x(1),x(2),'.','color',[0 2/3 0],'markersize',1);
    drawnow;
end
%按钮的响应
h1.Callback=@stop2close;
    function stop2close(hobject,eventdata)
        set(hobject,'string','close','callback','close(gcf)');
    end
end

只需在这蕨形叶基础上进行修改即可

function Sierpinski
%两个组件
h1=uicontrol('style','togglebutton','string','Stop');
h2=axes('Position',[0.15,0.15,0.75,0.75]);
%画蕨形叶图
x=[0,0];
plot(h2,x(1),x(2),'.','color',[0 2/3 0],'markersize',1);
axis([-0.3 1.3 0 1.3]);
hold on
drawnow;

A1=[0.85 0.04;-0.04 0.85];
b1=[0;0];
b2=[1/2;0];
b3=[1/4;sqrt(3)/4];

while h1.Value==0
    r=rand;
    if r<1/3
        x=A*x+b1;
    elseif r<2/3
        x=A*x+b2;    
    else
        x=A*x+b3;
    end
    plot(h2,x(1),x(2),'.','color',[0 2/3 0],'markersize',1);
    drawnow;
end
%按钮的响应
h1.Callback=@stop2close;
    function stop2close(hobject,eventdata)
        set(hobject,'string','close','callback','close(gcf)');
    end
end

画出图像:
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值