MATLAB--曲面图、三维图

%% mesh 网格图
[X,Y]=meshgrid(-5:0.5:5);
R=sqrt(X.^2+Y.^2)+eps;%加上eps防顶点缺口
Z=sin(R)./R;
mesh(Z)
mesh(X,Y,Z)
h=meshc(Z)            下图一
meshz(X,Y,Z)           下图二
%% 固定化纵横比   
axis vis3d
%% 透明
hidden on%看不到遮挡的网格 off能看到
alpha(0.1)  %[0 1]值越小透明度越大    下图二
%% surf 曲面图
%surf(Z)%填充    下图一
surf(X,Y,Z)
surfc(Z)
surfl(Z)%有灯光    下图三、四
%% 显示方式
% shading faceted%默认的方式     下图一
% shading flat       下图三
shading interp        下图四

MATLAB--曲面图、三维图_第1张图片MATLAB--曲面图、三维图_第2张图片

MATLAB--曲面图、三维图_第3张图片MATLAB--曲面图、三维图_第4张图片

%% 标准曲面  视角变化
%% 单位圆 sphere
sphere  %默认半径为1
[x,y,z]=sphere(60);%指定取点的点数,使其更光滑
mesh(x,y,z)     下图一

MATLAB--曲面图、三维图_第5张图片MATLAB--曲面图、三维图_第6张图片

%% 圆柱 cylinder
cylinder
% %指定半径
cylinder(2)
[x1,y1,z1]=cylinder(2,60);
t=-1:0.02:1;
y2=cos(t)+0.1;
cylinder(y2)      上图二
%% peaks
peaks
peaks(60)    下图一

MATLAB--曲面图、三维图_第7张图片MATLAB--曲面图、三维图_第8张图片
%% 视角
xlabel('这是x轴')
ylabel('这是y轴')
view(30,60)%观察的角度不同,x轴30度可手动改变观察视角    上图二
view([50 60])
view(2)
view(3)

%% 等高线
% contour
[x,y,z]=peaks(50)
contour(z)
contour(z,20)%20为线的条数
v=linspace(min(min(z)),max(max(z)),10);%设定线的范围
contour(z,v)
contour(x,y,z)
[c,h]=contour(x,y,z,v);%c存放数据,h为contour的句柄
h.ShowText='on';      下图一
% 单条绘制
v=[1 2 5]
[c,h]=contour(x,y,z,v);
% 文字
% clabel(c)%一条线显示一个数据
% clabel(c,h)%一条线显示两个数据
% clabel(c,h,[2 5])%只标注2和5的线
clabel(c,h,'fontname','宋体','fontweight','bold')     下图二

MATLAB--曲面图、三维图_第9张图片MATLAB--曲面图、三维图_第10张图片
%contourf
contourf(z)      下图一
%contour3
contour3(z)     下图二

MATLAB--曲面图、三维图_第11张图片MATLAB--曲面图、三维图_第12张图片

%% ezplot3
syms t
x=sin(t)+1;
y=cos(t);
z=t;
ezplot3(x,y,z)
ezplot3(x,y,z,[0 4*pi],'animate')%设定范围,animate增加一个对图形轨迹动态的展示点,图中的小红点

MATLAB--曲面图、三维图_第13张图片

%% ezmesh 三位网格图    
syms x y
z=x^2+y^2;
ezmesh(z,[-2*pi 2*pi -2*pi 3*pi])
ezmesh(z,[-2*pi 2*pi -2*pi 3*pi],100)    下图一
% 空间参数方程   
syms u v
x=u^2-v;
y=u+v;
z=u-2*v;
ezmesh(x,y,z,[-2*pi 2*pi -2*pi 3*pi],100)    下图二

MATLAB--曲面图、三维图_第14张图片MATLAB--曲面图、三维图_第15张图片
%% ezmeshc
syms x y
z=x^2+y^2;
ezmeshc(z,[-2*pi 2*pi -2*pi 3*pi])
ezmeshc(z,[-2*pi 2*pi -2*pi 3*pi],100)     下图一
% 空间参数方程
syms u v
x=u^2-v;
y=u+v;
z=u-2*v;
ezmeshc(x,y,z,[-2*pi 2*pi -2*pi 3*pi],100)         下图二 

MATLAB--曲面图、三维图_第16张图片MATLAB--曲面图、三维图_第17张图片

%% ezsurf
syms x y
z=x^2+y^2;
ezsurf(z,[-2*pi 2*pi -2*pi 3*pi])
ezsurf(z,[-2*pi 2*pi -2*pi 3*pi],100)    下图一
% 空间参数方程
syms u v
x=u^2-v;
y=u+v;
z=u-2*v;
ezsurf(x,y,z,[-2*pi 2*pi -2*pi 3*pi],100)        下图二 

MATLAB--曲面图、三维图_第18张图片MATLAB--曲面图、三维图_第19张图片
%% ezcontour
syms x y
z=x^2+y^2;
ezcontour(z,[-2*pi 2*pi -2*pi 3*pi])
ezcontour(z,[-2*pi 2*pi -2*pi 3*pi],100)    下图一
%% ezcontourf
syms x y
z=x^2+y^2;
ezcontourf(z,[-2*pi 2*pi -2*pi 3*pi])
ezcontourf(z,[-2*pi 2*pi -2*pi 3*pi],100)       下图二 

MATLAB--曲面图、三维图_第20张图片MATLAB--曲面图、三维图_第21张图片

%曲面的明暗及光照
clear
clc
close
%% 明暗
[x,y,z]=peaks(10);
surf(x,y,z)
% brighten(0.5)%范围【-1 1】负数为变暗,正数变亮越靠近1越亮       
%% 光照
h=light;
h.Color=[0.5 0.6 1];
h.Position=[-4 -4 10];
h.Style='infinite';%local近光
% 白色 远光 【1 0 1】默认

peaks
camlight('headlight')%在始点位置创建光源   下图一
camlight('right')    下图二
camlight('left')       下图三

MATLAB--曲面图、三维图_第22张图片MATLAB--曲面图、三维图_第23张图片

MATLAB--曲面图、三维图_第24张图片
%% 光照模式 lighting
lighting none       下图一
%lighting flat        下图二
% lighting gouraud     下图三

MATLAB--曲面图、三维图_第25张图片MATLAB--曲面图、三维图_第26张图片MATLAB--曲面图、三维图_第27张图片

%% 曲面剪裁
[x,y,z]=sphere(100)
x(60:101,60:101)=NaN;
y(60:101,60:101)=NaN;
z(60:101,60:101)=NaN;
surf(x,y,z)
view(-130,30)
axis vis3d

MATLAB--曲面图、三维图_第28张图片

%% 反射强度  镜面反射 漫反射
light
for i=0:0.2:1
    h.DiffuseStrength=i;%漫反射
    for j=0:0.2:1
        h.SpecularStrength=j;
    end
end       下图一
%% 镜面反射强度
h.SpecularExponent=300;%1-500      %默认为10 下图二
%% 环境光
h.AmbientStrength=0.9;    下图三

MATLAB--曲面图、三维图_第29张图片MATLAB--曲面图、三维图_第30张图片

MATLAB--曲面图、三维图_第31张图片
%% 镜面反射颜色
h.SpecularColorReflectance=0.5;%0-1;1意味着反射的是光源的颜色
%% 材质material
material shiny  %发亮的 镜面强于环境和漫反射
material dull   %阴暗的 主要进行漫反射
material metal  %镜面反射强一些
material  default %默认
%meterial([ka,kd,ks,n,sc]) %ka     %kd     %ks     %n      %sc  通过edit material查找
material([0.8,0.8,0.5,6,0.8])

%% 色图
% 颜色是由RGB【0.1 0.2 0.2】构成
%colormap是由n种颜色构成,也就是一个n*3的矩阵,每一行是一种颜色
%% 制定色图
peaks
colormap(jet)
colormap cool
colormap  default
colormap(jet(10))      下图一 

MATLAB--曲面图、三维图_第32张图片MATLAB--曲面图、三维图_第33张图片
%% 获得当前色图数据
colormap  default
map=colormap;%为一个64行3列的数据
%% 自定义色图
map=rand(100,3)
colormap(map)     上图二 
%% 多图指定
close
h1=subplot(2,1,1);
peaks;
colormap(h1,cool)
title(h1,'cool')
h2=subplot(2,1,2);
peaks;
colormap(h2,'copper')
title(h2,'copper')        下图一 

close
h1=subplot(2,1,1);
contourf(peaks);
colormap(h1,hot)
title(h1,'hot')
h2=subplot(2,1,2);
contourf(peaks);
colormap(h2,'copper')
title(h2,'copper')       下图

MATLAB--曲面图、三维图_第34张图片MATLAB--曲面图、三维图_第35张图片

%% colorbar
h=colorbar(h1);
colorbar(h2)
%% 放置位置
h.Location='WestOutside';
%% 标签
h.Ticks=[-6 -3 0 3 6];
h.TickLabels={'-10\circ','-5\circ','0\circ','10\circ','5\circ'};
h.TickLength=0.02;
h.Label.String='温度';

MATLAB--曲面图、三维图_第36张图片
%% bar3 根据高度设置颜色
close
x=[17 6 21;14 15 3];
h3=bar3(x);
colorbar       下图一
for k=1:length(h3)
    zdata=h3(k).ZData;
    h3(k).CData=zdata;
    h3(k).FaceColor='interp';
end          下图二

MATLAB--曲面图、三维图_第37张图片MATLAB--曲面图、三维图_第38张图片

你可能感兴趣的:(MATLAB)