前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >520表白季,教你用matlab画动态心形曲线图,可自动保存GIF格式图片,送给女朋友,她们一定会惊讶,赶紧收藏!!!

520表白季,教你用matlab画动态心形曲线图,可自动保存GIF格式图片,送给女朋友,她们一定会惊讶,赶紧收藏!!!

作者头像
全栈程序员站长
发布2022-11-02 10:19:19
2.6K0
发布2022-11-02 10:19:19
举报
文章被收录于专栏:全栈程序员必看

昨天发表了一篇用python教你画心形图表白的文章: 想要表白的看这里,教你用python画不同类型的心形图虏获芳心,值得收藏!! 里面详细介绍了各种心形图的画法以及最终的表白神器,值得点赞收藏!!

同样matlab也可以实现相同的功能并且还可以做得更好,今天就用教你用matlab画动态心形曲线图,不信请看下面:

虏获芳心

matlab画动态心形曲线图

利用数学上的格式f(x)=x^2^/^3+e/3*(π-x^2)^1^/^2*sin(a*π*x)可以为你展现非常完美的图像。

代码语言:javascript
复制
% matlab动态心形曲线(保存GIF格式)
clc;clear all;
a=10;
x=-2:0.01:2;
figure(1);
set(gcf,'position',[0,0,800,600],'color','w');
for i=1:100
str_title = strcat('\color{red}a=',num2str(a));
y = abs(x).^(2/3)+(0.9*sqrt((3.3-x.^2))).*sin(a*pi*x);
a=i/10;
figure(i);
set(gcf,'position',[0,0,800,600],'color','w');
p1 = plot(x,y,'r','LineWidth',3);
hold on;
title('\color{red}f(x)=x^2^/^3+e/3*(π-x^2)^1^/^2*sin(a*π*x)','fontsize',15);
text(-0.2,2.3,str_title,'FontName','Times New Roman','FontSize',20);
xlim([-2 2]);
ylim([-1.5 2.5]);
frame = getframe(gcf);
im = frame2im(frame);
[I,map] = rgb2ind(im,256);
if i==1
imwrite(I,map,'心形图.gif','gif','Loopcount',Inf,'DelayTime',0.05);
else
imwrite(I,map,'心形图.gif','gif','WriteMode','append','DelayTime',0.05);
end
close(figure(i));
end

成果图:

在这里插入图片描述
在这里插入图片描述

这是其中的一张(a=4.6)

在这里插入图片描述
在这里插入图片描述

怎么样是不是很震撼,喜欢的话感觉点赞收藏起来吧

在这里插入图片描述
在这里插入图片描述

matlab画动态心形曲线图(基础版)

代码语言:javascript
复制
clc;clear all;
t=0:0.1:2*pi;
x=16*sin(t).^3;
y=13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);
figure;
h = plot(x(1),y(1),'r');
axis([-20,20,-20,20]);
axis off
[A,map] = rgb2ind(frame2im(getframe),256);
imwrite(A,map,'love.gif','LoopCount',inf,'DelayTime',0.1);
for i = 2:length(t)
h.XData(i) = x(i);
h.YData(i) = y(i);
drawnow
title('\color{red}I LOVE YOU','fontsize',15);
%在本地保存的图片也能显示出来,保存地址默认
[A,map] = rgb2ind(frame2im(getframe),256);
imwrite(A,map,'love.gif','WriteMode','append','DelayTime',0.1);  
end
在这里插入图片描述
在这里插入图片描述

matlab画3D心形图

代码语言:javascript
复制
f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;
[x,y,z]=meshgrid(linspace(-3,3));
val=f(x,y,z);
[p,v]=isosurface(x,y,z,val,0);
patch('faces',p,'vertices',v,'facevertexcdata',jet(size(v,1)),'facecolor','w','edgecolor','flat');
view(3);grid on;axis equal;
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
f=@(x,y,z)(x.^2+ (9./4).*y.^2 + z.^2 - 1).^3 - x.^2.*z.^3 - (9./80).*y.^2.*z.^3;
[x,y,z]=meshgrid(linspace(-1.5,1.5));
val=f(x,y,z);
isosurface(x,y,z,val,0); 
axis equal;view(3);colormap([1 0.2 0.2])
在这里插入图片描述
在这里插入图片描述

备注

1. 觉得喜欢的小伙伴们来个三连击(点赞+关注+收藏); 2. 让更多的人可以看到这篇文章; 3. 最重要的是希望可以帮助那些羞涩的程序猿们表白成功。

在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/181019.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 虏获芳心
  • matlab画动态心形曲线图
  • matlab画动态心形曲线图(基础版)
  • matlab画3D心形图
  • 备注
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档