520表白季,教你用matlab畫動態心形曲線圖,可自動保存GIF格式圖片,送給女朋友,她們一定會驚訝,趕緊收藏!!!

昨天發表了一篇用python教你畫心形圖表白的文章:
想要表白的看這裏,教你用python畫不同類型的心形圖虜獲芳心,值得收藏!!
裏面詳細介紹了各種心形圖的畫法以及最終的表白神器,值得點贊收藏!!

同樣matlab也可以實現相同的功能並且還可以做得更好,今天就用教你用matlab畫動態心形曲線圖,不信請看下面:

matlab畫動態心形曲線圖

利用數學上的格式f(x)=x^2^/^3+e/3*(π-x^2)^1^/^2*sin(a*π*x)可以爲你展現非常完美的圖像。

% 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畫動態心形曲線圖(基礎版)

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心形圖

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;

在這裏插入圖片描述

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. 最重要的是希望可以幫助那些羞澀的程序猿們表白成功。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章