MATLAB绘制玫瑰花
效果1
m=0:.01:1;
[R,T]=ndgrid(m,-.6:.01:20);
x=1-(5/4*(1-mod(3.6*T, 2)).^2-1/4).^2/2;
P=pi*exp(-T/8)/2;
s=sin(P);
c=cos(P);
y=2*R.^2.*(1.3*R-1).^2.*s;
S=x.*(R.*s+y.*c);
X=S.*sin(T*pi);
Y=S.*cos(T*pi);
Z=R.*c-y.*s;
figure('color',[0,0,0])
surf(X,Y,x.*Z,hypot(hypot(X,Y),Z*.9));
shading interp
axis equal off
m(2:3,:)=0;
colormap(m')
效果2
n=800;
p=pi;
[R,T]=ndgrid(linspace(0,1,n),linspace(-2,20*p,n));
x=1-(.5)*((5/4)*(1-mod(3.6*T,2*p)/p).^2-.25).^2;
U=2*exp(-T/(8*p));
L=sin(U);
J=cos(U);
y=1.99*(R.^2).*(1.2*R-1).^2.*L;
K=x.*(R.*L+y.*J);
X=K.*sin(T);
Y=K.*cos(T);
Z=x.*(R.*J-y.*L);
surf(X,Y,Z,'LineStyle','none')
grid,axis off;
colormap(cool)
效果3
n=800;
p=pi;
[R,T]=ndgrid(linspace(0,1,n),linspace(-2,20*p,n));
x=1-(.5)*((5/4)*(1-mod(3.6*T,2*p)/p).^2-.25).^2;
U=2*exp(-T/(16*p));
L=sin(U);
J=cos(U);
y=1.99*(R.^2).*(1.2*R-1).^2.*L;
K=x.*(R.*L+y.*J);
X=K.*sin(T);
Y=K.*cos(T);
Z=x.*(R.*J-y.*L);
figure('color',[0,0,0])
surf(X,Y,Z,'LineStyle','none')
axis off;
colormap(colorcube)
效果4
n=800;
p=pi;
[R,T]=ndgrid(linspace(0,1,n),linspace(-2,20*p,n));
x=1-(.5)*((5/4)*(1-mod(3.6*T,2*p)/p).^2-.25).^2;
U=2*exp(-T/(8*p));
L=sin(U);
J=cos(U);
y=1.99*(R.^2).*(1.2*R-1).^2.*L;
K=x.*(R.*L+y.*J);
X=K.*sin(T);
Y=K.*cos(T);
Z=x.*(R.*J-y.*L);
figure('color',[0,0,0])
surf(X,Y,Z,'LineStyle','none')
grid,axis off;
colormap(hsv)