用matlab绘制的漂亮图形
1.不同坐标系下的图形对比
theta=0:pi/20:4*pi;
phi= theta.^2- theta;
[t,p]=meshgrid(theta,phi);
r=t.*p;
subplot(1,2,1);mesh(t,p,r);
ylabel('x');xlabel('y');zlabel('z');
[x,y,z]=sph2cart(t,p,r);
subplot(1,2,2);mesh(x,y,z);
ylabel('x');xlabel('y');zlabel('z');
2.球曲面的法线
[x,y,z]=sphere;
Surfnorm(x,y,z)
3.
x=rand(100,1)*16-8;
y=rand(100,1)*16-8;
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
xlin=linspace(min(x),max(x),33);
ylin=linspace(min(y),max(y),33); [X,Y]= meshgrid(xlin,ylin);
Z=griddata(x,y,z,X,Y);
mesh(X,Y,Z);
axis tight;hold on;
ylabel('x');xlabel('y');zlabel('z'); plot3(x,y,z,’r’,’MarkerSize’,15)
x=rand(1000,1)*16-8;
y=rand(1000,1)*16-8;
r=sqrt(x.^2+y.^2)+eps;
z=sin(r)./r;
xlin=linspace(min(x),max(x),99);
ylin=linspace(min(y),max(y),99); [X,Y]= meshgrid(xlin,ylin);
Z=griddata(x,y,z,X,Y);
mesh(X,Y,Z);
axis tight;hold on;
ylabel('x');xlabel('y');zlabel('z'); plot3(x,y,z,'r','MarkerSize',30);
去掉网格后:
4.圆通
fnplt(fncmb(rsmak(‘cylinder’,1,2),[0 0 -1;0 1 0;1 0 0])); axis equal,axis off;
shading interp
5.
c=8.01*10^(-6);
T=9.8*0.940*10^(-7);
for m=1:100
a=m/10000000;
for n=1:100
b=n/10000000;
omiga(m,n)=sqrt((10.6667*a^3*b^5+10.6667*a^5*b^3)/(2.3112*a^5*b^5*c)* T)/(2*pi);
end
end
mesh((1:100)/10000000,(1:100)/10000000,omiga);
ylabel('半短轴b');xlabel('半长轴a');zlabel('频率f');
6.马鞍面
x=-8:8; y=-8:8;
[X,Y]= meshgrid(x,y);
Z=(X.^2./4.^2-Y.^2./5.^2);
meshz(X,Y,Z);
ylabel('x');xlabel('y');zlabel('z');
x=-8:8;y=-8:8;
[X,Y]= meshgrid(x,y);
Z=X.^2./4.^2-Y.^2./5.^2;
surfc(X,Y,Z);
ylabel('x');xlabel('y');zlabel('z');
7.螺旋线
t=0:pi/60:10*pi;
x=sin(t);y=cos(t);
plot3(x,y,t,'*-b');
ylabel('x');xlabel('y');zlabel('z');
t=0:pi/60:10*pi;
x=sin(t);y=cos(t);
fill3(x,y,t,'*-b');
ylabel('x');xlabel('y');zlabel('z');
8.
[x,y]= meshgrid([-2:0.2:2]); f=x.^2+y.^2;
[fx,fy]= gradient(f,0.2,0.2); quiver(x,y,fx,fy);
hold on
contour(x,y,f);
9.
[x,y]= meshgrid([-4:0.1:4]); z=x.*exp(-x.^2-y.^2);
plot3(x,y,z);
10. [x,y]= meshgrid([-2:0.05:2]); z=x.*exp(-x.^2-y.^2);
surf(x,y,z);
11.牛顿环(动态的)
clear
R=1;N=400;lamda=200e-9;rr=0.0017; [x,y]= meshgrid(linspace(-rr,rr,N)); r=sqrt(x.^2+y.^2);
phi=r.^2/R./lamda.*pi.*2+pi;
I=4.*cos(phi./2).^2;
H=imshow(I);
t=0;k=1;
while k;
s=get(gcf,'currentkey');
if strcmp(s,'space');
clc;k=0;
end
t=t+0.01;
pause(0.2);
phi=phi+t;
I=4.*cos(phi./2).^2;
set(H,'CData',I);
end
12.衍射调制下的双孔干涉条纹clear all
lambda=500e-9;D=1;d=1e-6;a=3.5*d;
ymax=10*lambda*D/a;xmax=ymax;
N=101;
xs=linspace(-xmax,xmax,N);
ys=linspace(-ymax,ymax,N);
for i=1:N;
for j=1:N;
r1(i,j)=sqrt(D.^2+(ys(i)-a./2).^2+xs(i).^2);
r2(i,j)=sqrt(D.^2+(ys(j)-a./2).^2+xs(j).^2);
Dr=r2-r1;
phi(i,j)=Dr(i,j)./lambda.*pi.*2;
m(i,j)=pi.*d.*sin(phi(i,j))./lambda;
I(i,j)=(4.*cos(phi(i,j)./2).^2).*real((2.*besselj(1,m(i,j))./m(i,j)). ^2);
end
end
NC=225;
Ir=I*NC;
subplot(1,2,1);
image(xs,ys,Ir);
axis equal
colormap(gray(NC));
subplot(1,2,2);
plot(I,m),hold on
lambda=600e-9;D=1;d=1e-6;a=2.5*d;
ymax=10*lambda*D/a;xmax=ymax;
N=101;
xs=linspace(-xmax,xmax,N);
ys=linspace(-ymax,ymax,N);
for i=1:N;
for j=1:N;
r1(i,j)=sqrt(D.^2+(ys(i)-a./2).^2+xs(i).^2);
r2(i,j)=sqrt(D.^2+(ys(j)-a./2).^2+xs(j).^2);
Dr=r2-r1;
phi(i,j)=Dr(i,j)./lambda.*pi.*2;
m(i,j)=pi.*d.*sin(phi(i,j))./lambda;
I(i,j)=(4.*cos(phi(i,j)./2).^2).*real((2.*besselj(1,m(i,j))./m(i,j)). ^2);
end
end
NC=225;
Ir=I*NC;
colormap(gray(NC));
plot(m,I),hold on
13.
lambda=500e-9;D=1;d=1e-6;a=3.5*d;
ymax=10*lambda*D/a;xmax=ymax;
N=101;
xs=linspace(-xmax,xmax,N);
ys=linspace(-10000*ymax,10000*ymax,N);
for i=1:N;
for j=1:N;
r1(i,j)=sqrt(D.^2+(ys(i)-a./2).^2+xs(i).^2);
r2(i,j)=sqrt(D.^2+(ys(j)-a./2).^2+xs(j).^2);
Dr=r2-r1;
phi(i,j)=Dr(i,j)./lambda.*pi.*2;
I(i,j)=real(4.*cos(phi(i,j)./2).^2);
end
end
NC=225;
Ir=I/3.*NC;
image(xs,ys,Ir);
colormap(gray(NC));
hold on
14.沙丘
figure( 'Position',[200 31 700 696],'color','w'); hold on ;axis equal ; axis off
title('沙丘','fontsize',16,'color','k');
text(180,480,'——万祎龙 ','fontsize',12,'color','k');
i=1;
for py=1:2:360
c=py*4*pi/360;
b=pi*cos(c);
a=0:pi/30:6*pi;
x=100*a/pi+20;
y=10*sin(a+cos(a)*pi-b)*cos(c)+py;
plot(x,y,'color','k');
Z(i,:)=sin(a+cos(a)*pi-b)*cos(c);
i=i+1;
end
15.
%存脚本文件heart.m
%%一个半径为R的圆周等分成N份,然后一等分点为圆心,以等分点到该圆垂直直径
%%的距离为半径画圆。
N=90;R=1;
t0=(1:N)*2*pi/N; %%中央圆
x0=R*cos(t0);
y0=R*sin(t0);
t1=linspace(0,2*pi,100); %运动圆
X=cos(t1);
Y=sin(t1);
figure('color','k');
hold on
for i=1:N
x=x0(i)+x0(i)*X;
y=y0(i)+x0(i)*Y;
plot(x,y,'g');
end
axis equal
axis off
16.
figure('color','k','Position',[1 31 1280 696]);
axes1=axes('position',[0.2 0.6 0.3 0.3]);
axis( axes1,'equal');
axis(axes1,'off');
hold on
rl=1;rs=0.5;
N=30;
t1=linspace(0,2*pi,N); xl=rl*cos(t1); yl=rl*sin(t1); t2=linspace(0,2*pi,100); xs=rs*cos(t2); ys=rs*sin(t2);
for i=1:N
plot(xl(i)+xs,yl(i)+ys);
end
axes2=axes('position',[0.5 0.6 0.3 0.3]);
axis( axes2,'equal');
axis(axes2,'off');
hold on
rl=1;rs=1;
N=30;
t1=linspace(0,2*pi,N); xl=rl*cos(t1); yl=rl*sin(t1);
t2=linspace(0,2*pi,100); xs=rs*cos(t2); ys=rs*sin(t2);
for i=1:N
plot(xl(i)+xs,yl(i)+ys);
end
axes3=axes('position',[0.35 0.20 0.3 0.3]);
axis( axes3,'equal');
axis(axes3,'off');
hold on
rl=1;rs=1.5;
N=30;
t1=linspace(0,2*pi,N); xl=rl*cos(t1); yl=rl*sin(t1);
t2=linspace(0,2*pi,100); xs=rs*cos(t2); ys=rs*sin(t2);
for i=1:N
plot(xl(i)+xs,yl(i)+ys);
end
17. %%一个半径为R的圆周等分成N份,然后一等分点为圆心,以等分点到定点%%的距离为半径画圆。
N=60;R=1;
t0=(1:N)*2*pi/N; %%中央圆
x0=R*cos(t0);
y0=R*sin(t0);
t1=linspace(0,2*pi,100); %运动圆X=cos(t1);
Y=sin(t1);
figure('color','k');
hold on
for i=1:N
Rm=(x0(i)^2+(y0(i)-1)^2)^.5; x=x0(i)+Rm*X;
y=y0(i)+Rm*Y;
plot(x,y,'color','r');
end
axis equal
axis off
18.
%存函数文件diamond.m
function diamond
N=20;
t=linspace(0,2*pi,N);
y=sin(t);