Matlab实用程序--图形应用2

2022-07-27 09:22:07 浏览数 (1)

实例20:图形的隐藏属性

代码语言:javascript复制
function shili20
h0=figure('toolbar','none',...
    'position',[200 150 450 300],...
    'name','实例20');
subplot(1,2,1)
[x,y,z]=sphere(10);
mesh(x,y,z)
axis off
title('Figure1:Opaque')
hidden on


subplot(1,2,2)
[x,y,z]=sphere(10);
mesh(x,y,z)
axis off
title('Figure2:Transparent')
hidden off

实例21:PEAKS函数曲线

代码语言:javascript复制
function shili21
h0=figure('toolbar','none',...
    'position',[200 100 450 450],...
    'name','实例21');
[x,y,z]=peaks(30);
subplot(2,1,1)
x=x(1,:);
y=y(:,1);
i=find(y>0.8&y<1.2);
j=find(x>-0.6&x<0.5);
z(i,j)=nan*z(i,j);
surfc(x,y,z)
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure1:surfc函数形成的曲面')


subplot(2,1,2)
x=x(1,:);
y=y(:,1);
i=find(y>0.8&y<1.2);
j=find(x>-0.6&x<0.5);
z(i,j)=nan*z(i,j);
surfl(x,y,z)
xlabel('X轴');
ylabel('Y轴');
zlabel('Z轴');
title('Figure2:surfl函数形成的曲面') 

实例22:片状图

代码语言:javascript复制
function shili22
h0=figure('toolbar','none',...
    'position',[200 150 550 350],...
    'name','实例22');
subplot(1,2,1)
x=rand(1,20);
y=rand(1,20);
z=peaks(x,y*pi);
t=delaunay(x,y);
trimesh(t,x,y,z)
hidden off
title('Figure1:Triangular Surface Plot');


subplot(1,2,2)
x=rand(1,20);
y=rand(1,20);
z=peaks(x,y*pi);
t=delaunay(x,y);
trisurf(t,x,y,z)
title('Figure1:Triangular Surface Plot');

实例23:视角的调整

代码语言:javascript复制
function shili23
h0=figure('toolbar','none',...
    'position',[200 150 450 350],...
    'name','实例23');
x=-5:0.5:5;
[x,y]=meshgrid(x);
r=sqrt(x.^2 y.^2) eps;
z=sin(r)./r;
subplot(2,2,1)
surf(x,y,z)
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Figure1')
view(-37.5,30)


subplot(2,2,2)
surf(x,y,z)
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Figure2')
view(-37.5 90,30)


subplot(2,2,3)
surf(x,y,z)
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Figure3')
view(-37.5,60)


subplot(2,2,4)
surf(x,y,z)
xlabel('X-axis')
ylabel('Y-axis')
zlabel('Z-axis')
title('Figure4')
view(180,0)

实例24:向量场的绘制

代码语言:javascript复制
function shili24
h0=figure('toolbar','none',...
    'position',[200 150 450 350],...
    'name','实例24');
subplot(2,2,1)
z=peaks;
ribbon(z)
title('Figure1')


subplot(2,2,2)
[x,y,z]=peaks(15);
[dx,dy]=gradient(z,0.5,0.5);
contour(x,y,z,10)
hold on
quiver(x,y,dx,dy)
hold off
title('Figure2')


subplot(2,2,3)
[x,y,z]=peaks(15);
[nx,ny,nz]=surfnorm(x,y,z);
surf(x,y,z)
hold on
quiver3(x,y,z,nx,ny,nz)
hold off
title('Figure3')


subplot(2,2,4)
x=rand(3,5);
y=rand(3,5);
z=rand(3,5);
c=rand(3,5);
fill3(x,y,z,c)
grid on
title('Figure4')

实例25:灯光定位

代码语言:javascript复制
function shili25
h0=figure('toolbar','none',...
    'position',[200 150 450 250],...
    'name','实例25');
vert=[1 1 1;1 2 1;
    2 2 1;2 1 1;
    1 1 2;1 2 2;
    2 2 2;2 1 2];
fac=[1 2 3 4;2 6 7 3;
    4 3 7 8;1 5 8 4;
    1 2 6 5;5 6 7 8];
grid off
sphere(36)
h=findobj('type','surface');
set(h,'facelighting','phong',...
    'facecolor',...
    'interp',...
    'edgecolor',[0.4 0.4 0.4],...
    'backfacelighting',...
    'lit')
hold on
patch('faces',fac,'vertices',vert,...
    'facecolor','y');
light('position',[1 3 2]);
light('position',[-3 -1 3]);
material shiny
axis vis3d off
hold off

实例26:柱状图

代码语言:javascript复制
function shili26
h0=figure('toolbar','none',...
    'position',[200 50 450 450],...
    'name','实例26');
subplot(2,1,1)
x=[5 2 1
    8 7 3
    9 8 6
    5 5 5
    4 3 2];
bar(x)
xlabel('X轴');
ylabel('Y轴');
title('第一子图');


subplot(2,1,2)
y=[5 2 1
    8 7 3
    9 8 6
    5 5 5
    4 3 2];
barh(y)
xlabel('X轴');
ylabel('Y轴');
title('第二子图');

实例27:设置照明方式

代码语言:javascript复制
function shili27
h0=figure('toolbar','none',...
    'position',[200 150 450 350],...
    'name','实例27');
subplot(2,2,1)
sphere
shading flat
camlight left
camlight right
lighting flat
colorbar
axis off
title('Figure1')


subplot(2,2,2)
sphere
shading flat
camlight left
camlight right
lighting gouraud
colorbar
axis off
title('Figure2')


subplot(2,2,3)
sphere
shading interp
camlight right
camlight left
lighting phong
colorbar
axis off
title('Figure3')


subplot(2,2,4)
sphere
shading flat
camlight left
camlight right
lighting none
colorbar
axis off
title('Figure4')

实例28:羽状图

代码语言:javascript复制
function shili28
h0=figure('toolbar','none',...
    'position',[200 150 450 350],...
    'name','实例28');
subplot(2,1,1)
alpha=90:-10:0;
r=ones(size(alpha));
m=alpha*pi/180;
n=r*10;
[u,v]=pol2cart(m,n);
feather(u,v)
title('羽状图')
axis([0 20 0 10])


subplot(2,1,2)
t=0:0.5:10;
x=0.05 i;
y=exp(-x*t);
feather(y)
title('复数矩阵的羽状图')

实例29:立体透视(1)

代码语言:javascript复制
function shili29
h0=figure('toolbar','none',...
    'position',[200 150 450 250],...
    'name','实例29');
[x,y,z]=meshgrid(-2:0.1:2,...
    -2:0.1:2,...
    -2:0.1:2);
v=x.*exp(-x.^2-y.^2-z.^2);
grid on
for i=-2:0.5:2;
    h1=surf(linspace(-2,2,20),...
        linspace(-2,2,20),...
        zeros(20) i);
    rotate(h1,[1 -1 1],30)
    dx=get(h1,'xdata');
    dy=get(h1,'ydata');
    dz=get(h1,'zdata');
    delete(h1)
    slice(x,y,z,v,[-2 2],2,-2)
    hold on
    slice(x,y,z,v,dx,dy,dz)
    hold off
    axis tight
    view(-5,10)
    drawnow
end

0 人点赞