matlab绘制动态心形曲线

close all
clear all
a=1:0.25:25;
N=length(a);
% T=1/a;

y_mat=cell(1,N);
x_mat=cell(1,N);
for n=1:N
    x=-2:0.01:2;
    xb=abs(x);
    y=power(xb,2/3)+0.9.*(sqrt(3.3-xb.^2)).*sin(a(n)*pi.*xb);
    y=real(y);
    
    % 找到中间平台突起部分,剔除部分自变量x
    [y2,idx]=sort(y);
    dropIdx=idx(1):idx(2)-1;
    x_shift=abs(x(idx(2))-x(idx(1)))/2;
    y(dropIdx)=[];
    x(dropIdx)=[];
    
    for i=1:1:length(x)
        if x(i)>0
            x(i)=x(i)-x_shift;
        else
            x(i)=x(i)+x_shift;
        end
    end
    y_mat{n}=y(:);
    x_mat{n}=x(:);
end

figure
for n=1:N
    plot( x_mat{n},y_mat{n},'-r','linewidth',1);
    xlim([-3 3])
    ylim([-2 4])
    grid  on
    %         lgdName=sprintf('$\alpha$=%2.1f',a(n));
    lgdName=sprintf('α=%2.1f',a(n));
    if n==1
        annotation('textbox',  [0.27 0.74 0.33 0.10],...
            'String',{'$ f(x)=x^\frac{2}{3}+0.9\sqrt{3.3-x^2}\sin(\alpha \pi x)$'},...
            'interpreter','latex','Fontname',...
            'Times New Roman','Fontsize',12,...
            'FitBoxToText','off',...
            'EdgeColor','none');
    end
    %      'String',{'$\rm{Epoch=40}$'},...
    lgd=legend(lgdName);
    set(lgd,'interpreter','latex','Fontname','Times New Roman','Fontsize',12);
    %     hold on
    pause(0.02)
end
% https://www.zhihu.com/question/303355108

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值