一,用matlab绘制菊花
在command窗口复制下列代码,按回车运行即可
%data base
t0=linspace(0,2*pi);
for i=1:100
if rem(i,4)==0
t1(i)=NaN
else t1(i)=t0(i)
end
if rem(i,4)==2
t2(i)=NaN
else t2(i)=t0(i)
end
end
p=linspace(0,0.25*pi);
[xx,yy]=meshgrid(-2:0.05:2);
[xxx,yyy]=meshgrid([0.01 0.01]);
%drawing process
for i=1:10
if rem(i,2)==0
a=t1
elseif rem(i,2)==1
a=t2
end
b=p
[a,b]=meshgrid(a,b)
q=i*cos(1.25*b).*sin(b)
[x,y,z]=sph2cart(a,b,q);
z=(7.5/i+0.25)*z
surf(x,y,z,31*ones(size(z)))
hold on
end
h=0.25*cos(2.5*(xx.^2+yy.^2).^0.5)+0.14;
surf(xx,yy,h,26*ones(size(h)));
hold on
c=zeros(size(xxx))
for i=1:50
surf(xxx,yyy,c,i*ones(size(c)))
hold on
end
axis equal
二,用matlab绘制玫瑰花
首先,新建m文件,复制以下代码
function y=hb(x)
[m n]=size(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
end
保存后,将下列代码复制到command窗口中,按回车运行即可。
t=0:0.01*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).*hb(5*b+pi*i).*abs(sin(pi*a))
[x,y,z]=pol2cart(b,a,z)
surf(x,y,z,(40+i)*ones(size(z)))
hold on
end
%绘制花托
[xx,yy]=meshgrid(-5:0.1:5);
h=2*cos((xx.^2+yy.^2).^0.5)-0.64;
surf(xx,yy,h,27*ones(size(h)));
hold on
%绘制补色
xxx=[-0.1 0.1];
yyy=xxx;
[xxx,yyy]=meshgrid(xxx,yyy);
c=zeros(size(xxx))
for i=1:50
surf(xxx,yyy,c,i*ones(size(c)))
hold on
end
axis equal
详情 请见作者 000000.0.0.00
,用matlab绘制菊花,用matlab绘制菊花,用matlab绘制菊花,用matlab绘制菊花,用matlab绘制菊花
评论0