简单的思考(一):MATLAB实现心形线

本文介绍了如何利用MATLAB编程语言生成一个心形线动画,通过改变参数a来演示函数变化,展示了在B站常见的视觉效果制作过程。

今天刷B站的时候看见了:
在这里插入图片描述
于是想着自己能不能也做出来

clc;clear;
% 定义x的范围
x = -2:0.01:2;

% 初始化图形
figure;
set(gcf,'position',[0,0,800,600],'color','w');
h1 = plot(x,abs(x).^(2/3) + (0.9*sqrt((3.3-x.^2))).*sin(0.1*pi*x),'r','LineWidth',3);
hold on
xlim([-2 2]);
ylim([-1.5 2.5]);
title('\color{red}f(x)=x^2^/^3+e/3*(π-x^2)^1^/^2*sin(a*π*x)','fontsize',20)
str_title= strcat ('\color{red}a=',num2str(0.1));
text(-0.2,2.3,str_title,'FontName','Times New Roman', 'FontSize',20);

filename = '心形线.gif';  % GIF文件名

% 创建动画
for a = 0.2:0.1:20
    % 更新数据
    y1 = abs(x).^(2/3) + (0.9*sqrt((3.3-x.^2))).*sin(a*pi*x);

    % 删除旧的文本对象
    delete(findobj('Type','text'));

    % 添加新的文本
    str_title= strcat ('\color{red}a=',num2str(a));
    text(-0.2,2.3,str_title,'FontName','Times New Roman', 'FontSize',20);

    % 更新图形
    set(h1, 'YData', real(y1));

    % 更新图形窗口
    drawnow;

    % 捕获当前帧
    frame = getframe(gcf);
    im = frame2im(frame);
    [imind,cm] = rgb2ind(im,256);

    % 写入GIF文件
    if a == 0.2
        imwrite(imind,cm,filename,'gif', 'Loopcount',inf, 'DelayTime',0.01);
    else
        imwrite(imind,cm,filename,'gif','WriteMode','append', 'DelayTime',0.01);
    end

    % 暂停
    pause(0.01);
end

% 关闭hold状态
hold off;

结果:
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从零开始的奋豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值