首页 > 分享 > 如何用matlab代码表白——matlab画爱心和玫瑰、I LOVE YOU

如何用matlab代码表白——matlab画爱心和玫瑰、I LOVE YOU

写在前面

本篇博客主要是利用matlab2016a绘制一些玫瑰花或表白语句,通过绘制掌握matlab画图的一些常规操作,话不多说,直接上代码及注释。

1 爱心2 玫瑰3 I LOVE YOU4 参考文献与链接

1 爱心

clear;clc;%清空工作区以及命令行窗口 n=200;%一共有200个点 x=linspace(-1.5,1.5,n);%均分计算指令,用于产生[-1.5,1.5]之间的200点行线性的矢量。 y=linspace(-1.5,1.5,n); z=linspace(-1.5,1.5,n); [X,Y,Z]=meshgrid(x,y,z);%生成三维数组200*200*200,用来计算三变量的函数和绘制三维立体图 F=((-(X.^2).*(Z.^3)-(9/80).*(Y.^2).*(Z.^3))+0.5.*((X.^2)+(Y.^2)+(Z.^2)-1).^3);%心形线公式 isosurface(F,0)%从三维体数据中提取等值面数据 camlight right;%可以设置光源位置 lighting phong%在对象的每个面上产生均匀分布的光照,phong使图表面光滑细腻,色彩丰富 colormap('autumn');%将当前图窗的颜色图设置为autumn指定的颜色图 caxis([0,25])%设置颜色图的范围 grid on%添加网格 axis equal%设置坐标轴范围和纵横比 title('To:丰') view(-40,15);%指定观看图的角度

12345678910111213141516

在这里插入图片描述

2 玫瑰

主函数

%% 主函数 clear;clc; t=0:0.001*pi:2*pi;% 控制玫瑰花瓣网格,步长越小,越光滑 for i=1:5%设置另一个变量 r(i,:)=i-0.9:0.1:i+0.1; end %绘制花瓣 for i=1:5%控制花瓣层数 a=r(i,:); b=t; [a,b]=meshgrid(a,b);%将变量一一对应 z=(log(a)+5).*Petal(5*b+pi*i).*abs(sin(pi*a));%图形的公式 [x,y,z]=pol2cart(b,a,z);%将变量一一对应 C(:,:,1) = ones(size(z)); % red C(:,:,2) = zeros(size(z)); % green C(:,:,3) = zeros(size(z)); % blue 根据三原色控制红色最大 mesh(x,y,z,C)%surf的第四个变量控制颜色 hold on end %% 绘制花托 [xx,yy]=meshgrid(-5:0.1:5); h=2*cos((xx.^2+yy.^2).^0.5)-0.64;%图形公式 %% 根据三原色将绿色设为最大 CO(:,:,1) = zeros(size(h)); CO(:,:,2) = ones(size(h)); CO(:,:,3) = zeros(size(h)); mesh(xx,yy,h,CO);%surf的第四个变量控制颜色 hold on%继续绘图 camlight right;%可以设置光源位置 lighting phong%设置光照 view(-50,45);%设置观看角度 set(gcf,'color','[1 1 1]')%将背景设置为白色 hold off%不再继续绘图 axis off%隐藏坐标轴

12345678910111213141516171819202122232425262728293031323334

花瓣函数

%% 画花瓣的函数 function y=Petal(x) %% 花瓣函数,绘制花瓣 [m n]=size(x);%创建大小为x的行向量 for i=1:m%控制循环几次函数 for j=1:n%控制进行几次判断 if rem(x(i,j),2*pi)>=0&&rem(x(i,j),2*pi)<0.5*pi%控制进行那个表达式 y(i,j)=sin(2*x(i,j)-0.5*pi)+1; elseif rem(x(i,j),2*pi)>=0.5*pi&&rem(x(i,j),2*pi)<1.5*pi y(i,j)=2; elseif rem(x(i,j),2*pi)>=1.5*pi&&rem(x(i,j),2*pi)<2*pi y(i,j)=-cos(2*x(i,j))+1; end end end 123456789101112131415

在这里插入图片描述

3 I Love you

%% 画中间的爱心 [x,y,z]=meshgrid(-1.5:0.02:1.5);%生成三维数组 v=(x.^2+9/4*y.^2+z.^2-1).^3-x.^2.*z.^3-9/80*y.^2.*z.^3; %心形线公式 p=isosurface(x,y,z,v,0); %做出函数图像 patch(p,'edgecolor','none','facecolor','w'); %把上图绘制的图像作为补丁放于绘制出的坐标轴中央 %% 可视化三元标量函数 %x,y,z,f共同指明了一个三元标量函数。x,y,z为三维自变量网格, %一般用meshgrid函数生成,f为三维数组,代表网格中每一点处的函数值 h=contourslice(x,y,z,v,-1.5:0.3:1.5,-1.5:0.3:1.5,-1.5:0.3:1.5,[0 0]); %% 设置图形的线的宽度,颜色 set(h,'linewidth',2,'edgecolor','r'); view([-37.5 30]);%设置观看的角度 axis equal%设置坐标轴范围 hold on %继续绘图 %% 绘制 I text(-3,0,1,'I','FontSize',140,'Color','r','FontName','TimesNewRoman','FontAngle','italic');%设置字体,大小,斜体 %% 绘制U text(2.5,0,0,'U','FontSize',140,'Color','r','FontName','TimesNewRoman','FontAngle','italic'); set(gcf,'color','[1 1 1]')%将背景设置为白色 hold off%不再继续绘图 axis off%隐藏坐标轴

123456789101112131415161718192021

在这里插入图片描述

最后希望你能刷到这个博客。

在我最脆弱的时候,很庆幸有你出现在我的世界。一切仿佛命中注定一样,也许最大的美好并不是拥有全世界,而是在这个世界中我恰好拥有你。你的过去我不曾参与,你的未来我们一起走过。(清风明月)

4 参考文献及链接

Matlab画3D爱心
Matlab画3D玫瑰
这是我的个人公众号,如果感兴趣的话就关注一下吧!!!
在这里插入图片描述

"努力成为更好的自己"

相关知识

matlab 玫瑰花
slandarer/MATLAB 高级绘图
MATLAB植物虫害识别
matlab玫瑰花球
玫瑰花的MATLAB代码
matlab输出一朵玫瑰花
520还在画玫瑰?教你用MATLAB画个玫瑰花球
MATLAB表白玫瑰花绘制——旋转玫瑰、蓝色玫瑰
使用感知器神经网络的监督学习进行花卉分类(Matlab代码实现)
【优化覆盖】基于matlab入侵杂草和花授粉混合算法无线传感器覆盖优化问题【含Matlab源码 1328期】

网址: 如何用matlab代码表白——matlab画爱心和玫瑰、I LOVE YOU https://m.huajiangbk.com/newsview792207.html

所属分类:花卉
上一篇: 隐晦不明显的表白句子精选
下一篇: JAVA表白浪漫烟花效果代码