如何用matlab代码表白 |
您所在的位置:网站首页 › 如何画立体爱心图案 › 如何用matlab代码表白 |
写在前面
本篇博客主要是利用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);%指定观看图的角度主函数 %% 主函数 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%隐藏坐标轴花瓣函数 %% 画花瓣的函数 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&&rem(x(i,j),2*pi)=1.5*pi&&rem(x(i,j),2*pi) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |