matlab各种三维绘图及实例
matlab画三维图像的示例代码(附demo)
matlab画三维图像的⽰例代码(附demo)当我们学习surface命令时,已经看到了三维作图的⼀些端倪。
在matlab中我么可以调⽤mesh(x,y,z)函数来产⽣三维图像。
⾸先,我们⽤z=cos(x)sin(y)在-2pi ≤x,y≤ 2pi内的图像来看看:[x,y] = meshgrid(-2*pi:0.1:2*pi);z = cos(x).*sin(y);mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')显⽰图像如下:同样⽤mesh命令产⽣z = ye-(x2+y2)的三维图像:[x,y] = meshgrid(-2:0.1:2);z = y.*exp(-x.^2-y.^2);mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')下⾯绘制表⾯带有渐变颜⾊的图像,可以通过 surf 和 surfc 命令实现,只要简单更改上⾯例⼦中的命令为:surf(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')则图像如下所⽰,图像表⾯的颜⾊与⾼度是相称的:若使⽤surfc则会在图像中留下映像:surfc(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')还可以调⽤surfl(命令中的'l'表⽰这是⼀个光照表⾯ lighted surface)命令显⽰三维光照物体的表⾯,可以使⽤这个命令产⽣没有线条的三维图像,图像还可以是彩⾊的或灰度的。
例如仍然产⽣函数z = ye-(x2+y2)的灰度图像,图像中的阴影可设置为flat、interp、faceted:surfl(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')shading interp;colormap(gray);下⾯我们使⽤matlab内置函数来产⽣像球形或圆柱形这样的基本图像,例如:t = 0:pi/10:2*pi;[X,Y,Z] = cylinder(1+sin(t));surf(X,Y,Z),colormap('default');axis square会得到如下图像:试试另⼀个稍微有点不同的函数,阴影设置为faceted:t = 0:pi/10:2*pi;[X,Y,Z] = cylinder(1+cos(t));surf(X,Y,Z),shading faceted;axis square若将阴影设置为shading flat,则图像显⽰为:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
matlab绘图(一维、二维、三维)
>> t=[0:0.1:20];
>> x=t;
>> y=sin(t); >> z=cos(t); >> plot3(x,y,z)
第25页,共42页。
数学实验
数学实验
先画点 (x,y,z),后连线,构成曲面网格图
点: ( xij , yij , zij ) i 1,,m, j 1,,n
x11 x12
第13页,共42页。
同时绘制多个函数图像
数学实验
plot(x1,y1,s1,x2,y2,s2, ... ,xn,yn,sn)
等价于:
hold on
plot(x1,y1,s1) plot(x2,y2,s2) ...
plot(xn,yn,sn)
属性选项 可以省略
第14页,共42页。
图形的其他属性
数学实验
Property: linewidth, markersize, fontsize, fontweight, fontname, …
第9页,共42页。
图形的其他属性
坐标轴标注 xlabel(’text’) 或 ylabel(’text’)
例:
数学实验
第10页,共42页。
图形的其他属性
添加图例 legend(string1,string2, ...) >> legend('cos(x)');
Matlab 绘图
数学实验
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
第1页,共42页。
Matlab 绘图
数学实验
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, …
matlab各种三维绘图及实例
Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同.当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线.当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数.例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t。
*sin(t).*cos(t);plot3(x,y,z);title(’Line in 3—D Space’);xlabel(’X’);ylabel(’Y’);zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵.其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0。
25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))—x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2。
关于利用matlab制作三维图形的经典例子教材
关于利用matlab制作三维图形的经典例子教材附录附录一:程序1.城区各功能区的地形二维等高线污染浓度散点图分布图程序clcclearclose allD=load('坐标数据.dat');M=load('浓度含量shuju.dat');x=D(:,2);y=D(:,3);z=D(:,4);c=D(:,5);xi=linspace(min(x),max(x),300);yi=linspace(min(y),max(y),300);[xi,yi]=meshgrid(xi,yi);zi=griddata(x,y,z,xi,yi);ci=griddata(x,y,c,xi,yi);marker={'d','^','s','o','V'};color={'b','y','c','r','m'};mat={'As','Cd','Cr','Cu','Hg','Ni','Pb','Zn'};str={'等高线','生活区','工业区','山林区','交通区','绿地区'};for j=1:8% 等高线图形figurecontourf(xi,yi,zi,0:10:500);%set(h,'ShowText','on','TextStep',get(h,'L evelStep')*2)%clabel(C,h,[0:10:50,50:50:300,300:100:500 ]);legend( '生活区','工业区','山林区','交通区','绿地区');%legend( {'k','r','y','c','b'});title(['重金属 ',mat{j}, ' 空间二维等高线分布图'])xlabel('X---轴')ylabel('Y---轴')colormap summercolorbargrid onhold onfor i=1:5loc=c==i;plot(x(loc),y(loc),marker{i},'markerfacec olor',color{i},'MarkerEdgeColor',color{i} );end% legend(str,'location','best')for k=1:length(x)text(x(k)-200,y(k)+200,num2str(M(k,j+1)), 'fontsize',8);endlegend( '功能一区——生活区','功能二区——工业区','功能三区——山林区','功能四区——交通区','功能五区——绿地区');end2.重金属‘**’含量程序clc; clear;load shuju1.txtA=shuju1;x=A(:,1);y=A(:,2);z=A(:,3);scatter(x,y,5,z)%散点图figure(1)[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x),200)',linspace(min(y),max(y),200),'v4');%插值pcolor(X,Y,Z);shading interp%伪彩色图figure(2),contourf(X,Y,Z) %等高线图legend('污染程度分布');title('重金属As含量空间分布平面图')xlabel('x—轴'),ylabel('y—轴');%zlabel('z—轴')figure(3),surf(X,Y,Z)%三维曲面legend('污染程度分布');title('重金属As含量空间分布平面图')xlabel('x—轴'),ylabel('y—轴');zlabel('z—轴')3 重金属综合污染指数程序%Cd综合污染指数Grandvalue=190;maxvalue=0;sum=0;C=[352.60556.20113.70240.50120.30514.10246.30158.00211.30236.50]; % 可以输入任意长度的污染浓度数据 C=C'n=length(C);for i=1:n;if C(i)>maxvaluemaxvalue= C(i);elsesum=sum+ C(i)/Grandvalue;endendp=sqrt(((sum/n)^2+(maxvalue/Grandvalue)^2 )/2)附录二:污染状况空间分布图。
matlab三维绘图
例4-34 利用rotate函数,从不同角度查看函数 z xe
x y
2
2
t=-2:.1:2; [x,y]=meshgrid(t); z=x.*exp(-x.^2-y.^2); subplot(121),mesh(x,y,z); subplot(122),h=mesh(x,y,z) rotate(h,[-2,-2,0],30,[2,2,0])
透视控制命令hidden
Matlab在绘制三维网线图和曲面图时,一般进行消 隐处理,为得到透视效果,用以下命令:
hidden on 消隐被遮挡的图形 hidden off 透视被遮挡的图形
[x0,y0,z0]=sphere(30); X=2*x0;Y=2*y0;Z=2*z0; surf(x0,y0,z0); %画里面的小球 shading interp %使用插值的方式进行着色 hold on,mesh(X,Y,Z),colormap(hot), hold off hidden off %透视外面大球看到里面小球 axis equal,axis off %坐标轴三个方向上刻度增量相同,并消隐坐标轴
见P70 例4-36
图形颜色控制命令colormap
colormap([R,G,B]) 用单色绘图, [R,G,B]代表一 个配色方案,取值在[0,1]之间。通过对R、G、B大 小的设置,可以调制出不同的颜色。p71表4-5 colormap(CM) CM为色图矩阵。色图为m*3的矩 阵。Matlab预定义了一些色图矩阵的值,表4-6为 常用的色图矩阵。
北京科技大学数学实验
北京科技大学数学实验
例
用平行截面法讨论由方程构成的马鞍面形状。
解:Matlab命令为
使用matlab绘制三维图形的方法
使用matlab绘制三维图形的方法要使用MATLAB绘制三维图形,首先需要了解MATLAB中的三维绘图函数和绘图选项。
下面将介绍一些常用的绘制三维图形的方法。
1.绘制基本的三维图形要绘制基本的三维图形,可以使用以下函数:- plot3(函数:用于在三维坐标系中绘制线条。
- scatter3(函数:用于在三维坐标系中绘制散点图。
- surf(函数:用于绘制三维曲面图。
- mesh(函数:用于绘制三维网格图。
- bar3(函数:用于绘制三维条形图。
- contour3(函数:用于绘制三维等高线图。
例如,下面的代码演示了如何使用plot3(函数绘制一个三维线条图:```x = linspace(0, 2*pi, 100);y = sin(x);z = cos(x);plot3(x, y, z, 'LineWidth', 2);xlabel('X');ylabel('Y');zlabel('Z');title('3D Line Plot');```2.添加颜色和纹理在绘制三维图形时,可以使用颜色和纹理来增加图形的信息。
MATLAB 提供了一系列函数来处理颜色和纹理,如:- colormap(函数:用于设置颜色映射。
- caxis(函数:用于设置坐标轴范围。
- shading(函数:用于设置颜色插值方法。
- texturemap(函数:用于设置纹理映射方法。
例如,下面的代码展示了如何使用纹理映射来绘制一个球体:```[X, Y, Z] = sphere(50);C = colormap('jet');surface(X, Y, Z, 'FaceColor', 'texturemap', 'CData', C);axis equal;```3.绘制多个数据集要在同一张图中绘制多个数据集,可以使用hold on和hold off命令。
matlab三维绘图
三维线图函数
● 例 题 : 绘 制 三 维 的 螺 旋 曲 线 图 , 其 中 x=sint, y=cos(2t),z=sint+cost,t的区间为[0,2π]。 程序如下: t=0:pi/50:2*pi; plot3(sin(t),cos(2*t),sin(t)+cos(t),'r','Linewidth',2) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
●例题:绘制多个球体,各球的中心离原点的距离由x、y、z 值决定。 程序如下: [x,y,z]=sphere; surf(x,y,z) hold on surf(x+3,y-2,z) surf(x,y+1,z-3) daspect([1 1 1]) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
三维网格图
●所谓的网格图,是指把相邻的数据点连接起来形 成的网状曲面。利用在x-y平面的矩形网格点上的 z轴坐标值,MATLAB定义了一个网格曲面。三维 网格图的形成原理为:在x-y平面上指定一个长方 形区域,采用与坐标轴平行的直线将其分格;计 算矩形网格点上的函数值,即z轴的值,得到三 维空间的数据点;将这些数据点分别用于x-z或者 平行面内的曲线和处于y-z或者平行面内的曲线连 接起来,即形成网格图。网格图对显示大型的数 值矩阵很有用处。
模块十 三维图形绘制
◆三维线图 ◆三维多边形 ◆三维网格图 ◆三维曲面图 ◆三维柱面绘图函数
三维线图函数
● plot3():主要用于绘制三维曲线,该函数的 调用格式同plot()函数类似。 ● 调用格式为: plot3(X, Y, Z, LineSpec,’ PropertyName’, Property Value) 调用该函数,绘制出通过一系列坐标为X, Y, Z 指定点的一条曲线。其中,X, Y, Z为第一到第 三维数据,可以是向量,也可以是矩阵,但必 须尺寸相等。
matlab画图大全[资料]
matlab绘图大全Matlab绘图系列之高级绘图一、目录1.彗星图二维彗星图三维彗星图2.帧动画3.程序动画4.色图变换5.Voronoi图和三角剖分Voronoi图三角剖分6.四面体7.彩带图彩带图三维流彩带图8.伪彩图9.切片图切片图切片轮廓线图10.轮廓图显示轮廓线显示围裙瀑布效果带光照模式的阴影图11.函数绘图轮廓线、网格图、曲面图、轮廓网格图轮廓曲面图、二维曲线、极坐标曲线图、自定义函数12.三维图形控制视点灯光效果色彩控制二、图形示例1.彗星图二维彗星图t=0:.01:2*pi;x=cos(2*t).*(cos(t).^2);y=sin(2*t).*(sin(t).^2);comet(x,y);title('二维彗星轨迹图')hold onplot(x,y)三维彗星图a=12;b=9;T0=2*pi;%T0是轨道的周期T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2);%地球与另一焦点的距离th=12.5*pi/180;%未经轨道与x-y平面的倾角E=exp(-t/20);%轨道收缩率x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));plot3(x,y,z,'g')%画全程轨线hold on,sphere(20);%画地球axis offtitle('卫星返回地球示例')x1=-18*T0;x2=6*T0;y1=-12*T0;y2=12*T0;z1=-6*T0;z2=6*T0;axis([x1 x2 y1 y2 z1 z2])% axis([-15 10 -15 10 -10 10])axis equalcomet3(x,y,z,0.02);%画运动轨线hold off2.帧动画Z=peaks;surf(Z)%绘制网格表面图axis tightset(gca,'nextplot','replacechildren');%设定axis覆盖重画模式title('帧动画播放示例')for j=1:20surf(sin(2*pi*j/20)*Z,Z)%重新绘制网格表面图,这里后面一个Z当成了颜色矩阵F(j)=getframe;%创建帧endmovie(F,20)%播放动画20次3.程序动画t=0:pi/50:10*pii=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');%设定擦除模式grid onaxis([-2 2 -2 2 -1 10*pi])title('程序动画示例')for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)end4.色图变换load spineimage(X)colormap coolspinmap(10)5.Voronoi图和三角剖分Voronoi图rand('state',5)x=rand(1,10);y=rand(1,10);subplot(131)voronoi(x,y);%绘制voronoi图形axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(132)[vx,vy]=voronoi(x,y);plot(x,y,'r+',vx,vy,'b-');%应用返回值绘制axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(133)rand('state',5);x=rand(10,2);[v,c]=voronoin(x);%返回值v参数维voronoi顶点矩阵,返回值c 参数为voronoi元胞数组for i=1:length(c)if all(c{i}~=1)patch(v(c{i},1),v(c{i},2),i);%应用色图iendendaxis equalaxis([-0.2 1.6 -0.5 2.5])box on三角剖分[x,y]=meshgrid(1:15,1:15);tri=delaunay(x,y);z=peaks(15);trimesh(tri,x,y,z)6.四面体d=[-1 1];[x,y,z]=meshgrid(d,d,d);%定义一个立方体x=[x(:);0];y=[y(:);0];z=[z(:);0];%[x,y,z]分别为加上中心的立方体顶点X=[x(:) y(:) z(:)];Tes=delaunayn(X);%返回m×n的数组值tetramesh(Tes,X);%绘制四面体图camorbit(20,0);%旋转摄像目标位置7.彩带图彩带图[x,y]=meshgrid(-3:.5:3,-3:.1:3);z=peaks(x,y);ribbon(y,z)三维流彩带图load wind%打开保存的数据lims=[100.64 116.67 17.25 28.75 -0.02 6.86];%定义坐标轴范围[x,y,z,u,v,w]=subvolume(x,y,z,u,v,w,lims);%lims来定义数据子集[sx sy sz]=meshgrid(110,20:5:30,1:5);%定义网格点verts=stream3(x,y,z,u,v,w,sx,sy,sz,.5);%计算彩带顶点cav=curl(x,y,z,u,v,w);%计算卷曲角速度wind_speed=sqrt(u.^2+v.^2+w.^2);%计算流速h=streamribbon(verts,x,y,z,cav,wind_speed,2);%绘制流彩带图view(3)8.伪彩图n=6%定义轮数r=(0:n)'/n;%定义轮的半径theta=pi*(-n:n)/n;%定义轮的扇区角X=r*cos(theta);Y=r*sin(theta);%定义网格顶点C=r*cos(2*theta);%定义色图pcolor(X,Y,C)%绘制伪彩图axis equal tight9.切片图切片图[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv切片轮廓线图[x y z v]=flow;%打开水流数据h=contourslice(x,y,z,v,[1:9],[],[0],linspace(-8,2,10));%切片轮廓线view([-12 30])10.轮廓图显示轮廓线[x,y,z]=peaks;subplot(1,2,1)meshc(x,y,z);%同时画出网格图与轮廓线title('meshc 网格图与轮廓线')axis([-inf inf -inf inf -inf inf]);subplot(1,2,2)surfc(x,y,z);%同时画出曲面图与轮廓线title('surfc 曲面图与轮廓线')axis([-inf inf -inf inf -inf inf]);显示围裙[x y z]=peaks;meshz(x,y,z);瀑布效果[X,Y,Z]=peaks(30);waterfall(X,Y,Z)带光照模式的阴影图[x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);surfl(x,y,z);shading interp%着色处理colormap(gray);%灰度处理axis([-3 3 -3 3 -8 8])11.函数绘图轮廓线、网格图、曲面图、轮廓网格图%图1绘制轮廓线、网格图、曲面图、轮廓网格图subplot(221)f=['3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2)'];%定义双变量x、y的函数式ezcontour(f,[-3,3],49)%x、y为[-3 3],网格为49×49subplot(222)ezmesh('sqrt(x^2+y^2)');subplot(223)ezsurf('real(atan(x+i*y))')%经过滤波,如果相同数据surf绘图没有滤波subplot(224)ezmeshc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi])%x、y的数值范围分别为[-5 5]、[-2*pi 2*pi]轮廓曲面图、二维曲线、极坐标曲线图、自定义函数%图2绘制轮廓曲面图、二维曲线、极坐标曲线图、自定义函数figure(2)subplot(221)ezsurfc('sin(u)*sin(v)')subplot(222)ezplot('x^2-y^4');subplot(223)ezpolar('1+cos(t)')subplot(224)fplot('myfun',[-20 20])function Y=myfun(x)Y(:,1)=200*sin(x(:))./x(:);Y(:,2)=x(:).^2;三维曲线图%绘制三维曲线图figure(3)ezplot3('sin(t)','cos(t)','t',[0,6*pi])12.三维图形控制视点View图形旋转subplot(121)surf(peaks);title('旋转前图形');subplot(122)h=surf(peaks);rotate(h,[1 0 1],180)title('旋转后图形');灯光效果%灯光效果(1)camlight(2)light(3)lightangle(4)lighting(5)materialsphere;camlight色彩控制%色彩控制(1)缺省设置colordef、whitebg(2)色图colormap(3)浓淡处理shadingload flujetimage(X)colormap(jet)subplot(131)sphere(16)axis squareshading flattitle('Flat Shading')subplot(132)sphere(16)axis squareshading facetedtitle('Faceted Shading') subplot(133)sphere(16)axis squareshading interptitle('Interpolated Shading')。
Matlab 三维立体绘图
– 請劃出其網狀圖形,並標示x座標、y座標以及給定的 點座標。 – 請劃出其曲面圖形,並標示x座標、y座標以及給定的 點座標。
8
4-1 基本立體繪圖指令
1 2 3 4
0 3 4 7
2 2 4 6
% 標示曲面高度
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改變位置及顏色
5
3
1 4 4 8
4-1 基本立體繪圖指令
– 範例4-2 :plotxyz002.m
8
8 7 6
6 4 4 4 4
– 範例4-5 :plotxyz02.m surf 和 mesh 指令的用法類似
x = linspace(-2, 2, 25); y = linspace(-2, 2, 25); % 在 x 軸 [-2,2] 之間取 25 點 % 在 y 軸 [-2,2] 之間取 25 點
[xx,yy] = meshgrid(x, y);
2
Matrix Indexing Coordinate
• Conversion from matrix indexing to x-y coordinates
– Jx – Iy
1
j (= x)
2
1 2 3 4
0 3 4 7
2 2 4 6
3
1 4 4 8
(i, j) = (3, 2)
A(4,3)=8 A(3,2)=4
matlab三维绘图命令和演示
三维绘图1三维绘图指令2基本XYZ 立体绘图命令●mesh 和plot 是三度空间立体绘图的基本命令,mesh 可画出立体网状图,plot 则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2,2,25);%在x 轴上取25点 y=linspace(-2,2,25);%在y 轴上取25点[xx,yy]=meshgrid(x,y);%xx 和yy 都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz 也是21x21的矩阵 mesh(xx,yy,zz);%画出立体网状图● surf 和mesh 的用法类似:x=linspace(-2,2,25);%在x 轴上取25点y=linspace(-2,2,25);%在y轴上取25点[xx,yy]=meshgrid(x,y);%xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz也是25x25的矩阵surf(xx,yy,zz);%画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3*exp(-(x+1).^2-y.^2)●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks,20);●contour画出曲面等高线在XY平面的投影:contour(peaks,20);●plot3可画出三度空间中的曲线:t=linspace(0,20*pi,501);plot3(t.*sin(t),t.*cos(t),t);亦可同时画出两条三度空间中的曲线:t=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);3三维绘图的主要功能绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图?绘制三维曲面图、柱面图和球面图?绘制三维多面体并填充颜色(一)三维线图plot3?——?基本的三维图形指令调用格式:plot3(x,y,z)?——?x,y,z是长度相同的向量plot3(X,Y,Z)?——?X,Y,Z是维数相同的矩阵plot3(x,y,z,s)?——?带开关量plot3(x1,y1,z1,’s1’,?x2,y2,z2,’s2’,?…)二维图形的所有基本特性对三维图形全都适用。
matlab 三维立体绘图
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-7:plotxyz04.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-12:plotxyz09.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
整理:基本三维立体绘图指令的列表
类别 指令 mesh, ezmesh 网状图 meshc, ezmeshc meshz surf, ezsurf 曲面图 surfc, ezsurfc surfl 说明 立体网状图 网状图加上等高线 网状图加上“围裙”(或“舞 台”) 三维曲面图 曲面图加上等高线 曲面图加上光源
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改变位置及颜色 end end
MATLAB 程序设计入门篇:三维立体绘图
NCU CM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
y = 31− x) e (
2 −x2−( y+1)2
x 3 5 −x2−y2 1 −(x+1)2−y2 −10( − x − y )e − e 5 3
美赛matlab3D绘图必备
设置坐标轴标签:使用xlbel、ylbel、zlbel函数设置坐标轴标签
设置坐标轴颜色:使用color函数设置坐标轴颜色
设置坐标轴刻度:使用set函数设置坐标轴刻度
设置坐标轴样式:使用set函数设置坐标轴样式,如线型、颜色等
绘制基本图形
图形注释与修饰
注释:在图形上添加文字说明,如坐标轴标签、图例等
保存和展示:将绘制好的三维模型保存为图片格式,并在PPT中展示
绘制三维数据可视化交互界面
导入Mtlb库:使用import语句导入Mtlb库
绘制三维图形:使用plot3函数绘制三维图形
添加交互功能:使用uicontrol函数添加交互按钮,使用cllbck函数实现交互功能
创建三维数据:使用rndn函数生成三维数据
使用isosurfce函数绘制三维曲面
使用plot3函数绘制三维曲面
使用surf函数绘制三维曲面
使用mesh函数绘制三维曲面
绘制等高线图
什么是等高线图:表示地形、地貌等高线分布的图形
等高线图的作用:直观展示地形、地貌特征,便于分析和研究
等高线图的绘制方法:使用Mtlb的surf函数或conur3函数
向量场图的应用: . 流体力学:模拟流体流动 b. 电磁学:模拟电磁场分布
Mtlb 3D绘图应用实例
PRT 04
绘制三维数据分布图
设置图形属性:使用title、colorbr、legend等函数设置图形属性
保存图形:使用sves函数将图形保存为文件
展示图形:使用show函数展示三维数据分布图
导入数据:将三维数据导入Mtlb
可以通过设置不同的参数,如点的大小、颜色、透明度等,来调整散点图的视觉效果。
绘制向量场图
matlab三维绘图命令和演示
三维绘图2 基本XYZ立体绘图命令●mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵mesh(xx, yy, zz); % 画出立体网状图●surf和mesh的用法类似:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是25x25的矩阵surf(xx, yy, zz); % 画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2)●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks, 20);●contour画出曲面等高线在XY平面的投影:contour(peaks, 20);plot3可画出三度空间中的曲线:t=linspace(0,20*pi, 501);plot3(t.*sin(t), t.*cos(t), t);亦可同时画出两条三度空间中的曲线:t=linspace(0, 10*pi, 501);plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);三维绘图的主要功能:绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图绘制三维曲面图、柱面图和球面图绘制三维多面体并填充颜色(一)三维线图plot3 ——基本的三维图形指令调用格式:plot3(x,y,z) —— x,y,z是长度相同的向量plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵plot3(x,y,z,s) ——带开关量plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,…)二维图形的所有基本特性对三维图形全都适用。
matlab三维绘图ppt课件
xx
1
三维曲线绘图 三维曲面绘图
2
xx
二、MATLAB三维曲线绘图
plot3——三维曲线绘制指令 plot3的调用格式:
plot3(X,Y,Z) plot3(X,Y,Z,’String’) plot3(X1,Y1,Z1,’ String1’,X2,Y2,Z2,’ String2’,…) plot3与plot的 用法相同
➢ shading faceted
以平面为单位进行着色,在flat用色基础上,在贴片的 四周勾出黑色网线。
23
subplot(131),surf(peaks(40)); subplot(132),surf(peaks(40));shading flat subplot(133),surf(peaks(40));shading interp
subplot(122),h = surf(ones(10,10));rotate(h,[0 0 1],i,[1 0 0]) end
➢ rotate3d
动态旋转命令,可以让用户使用鼠标来旋转视角
19
背景颜色控制命令colordef
➢ colordef white 将图形的背景颜色设置为白色 ➢ colordef black ➢ colordef none 将图形背景和图形窗口的颜色设置
28
对象和句柄
MATLAB把构成图形的各个基本要素称为图形对象, 包括图形窗口、坐标轴、线条、曲面、文本和其它对 象。
每一个对象都有一个数字来标识,叫做句柄。当每次 创建一个对象时,MATLAB就为它建立一个唯一的句 柄。
29
作业ห้องสมุดไป่ตู้P79
5,7,8,9
30
22
matlab 三维图形绘制实例(完整资料).doc
【最新整理,下载后即可编辑】三维图形一.三维曲线plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
Example1.绘制三维曲线。
程序如下:clf,t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t); %向量的乘除幂运算前面要加点plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');grid on;所的图形如下:XLine in 3-D SpaceYZ二. 三维曲面 1. 产生三维数据 在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。
语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。
2. 绘制三维曲面的函数surf 函数和mesh 函数example2. 绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下: clf,[x,y]=meshgrid(0:0.25:4*pi); %产生平面坐标区域内的网格坐标矩阵z=sin(x+sin(y))-x./10; surf(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);title('surf 函数所产生的曲面'); figure;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);title('mesh 函数所产生的曲面');-2.5-2-1.5-1-0.500.51surf 函数所产生的曲面-2.5-2-1.5-1-0.500.51mesh 函数所产生的曲面Example3.绘制4种三维曲面图。
MATLAB教程三维图形
x=sin(t); y=cos(t); z=t;
plot3(x,y,z) ,
axis square; grid on
Kjqx.m
x1=[0.5, 0.5, 0, 0.5]; y1=[0.5, 0.5, 0, 0.5]; z1=[ 1, 0, 0, 1 ]; x2=[0.5, 0.5, 1, 0.5]; y2=[0.5, 0.5, 0, 0.5]; z2=[ 1, 0, 0, 1 ]; x3=[0,1]; y3=[0,0]; z3=[0,0]; plot3(x1,y1,z1,x2,y2,z2,x3,y3,z3)
三.网线和表面图
1、三维绘图数据的产生
在matlab中,曲面是用x y平面上各个格点的 Z坐标 来定义的。画曲面前先要生成三维绘图数据。
(1)利用meshgrid函数生成平面网格坐标矩阵。再 利用函数关系求Z.
x=a:△x:b; y=c:△y:d; [X,Y]=meshgrid(x,y); Z=f (x,y) (2)利用双峰函数peaks [x,y,z]=peaks(n) 分别创建x,y,z三个均为n×n阶的方阵 peaks(n)直接使用peaks函数所创建的矩阵绘制表面图
色图矩阵是m×3 的数值矩阵,它的每一行是RGB三元组。 [0 0 0] 黑色 [1 0 0] 红色 [0 1 0]蓝色 [0 0 1]绿色
色图函数 pink 粉色 copper 铜色 hot 暖色 cool 冷色 flag 四色旗 prism光谱色
setu.m spring summer autumn winter
ys.m ys02.m
1.5.4 动画
1、彗星轨迹图
Comet(x,y,p)
彗长为p*length(y)的二维彗星轨迹,p的默认值为0y)的三维彗星轨迹,p的默认值为0.1 ddqxn.m huixing.m
Matlab绘图3
一、三维曲线绘图
plot3 :主要用来表现三维曲线 其调用格式为: plot3(X,Y,Z,s) • X、Y、Z:第一到三维数据,是尺寸相等 的向量; • s:是字符串,用来设置线型、颜色、数 据点标记。 • 绘制以向量 X、Y、Z 的元素为 x、y、z 坐标的三维曲线。
例1、绘制螺旋线 x=sin t, y=cos t, z=t, 0<t<8π. t=0:0.1:8*pi; x=sin(t); y=cos(t); z=t; plot3(x,y,z,'linewidth',3) title('绘制螺旋线') xlabel('sin(t)','fontweight','bold','fontsize',15) ylabel('cos(t)','fontweight','bold','fontsize',15) zlabel('t','fontweight','bold','fontsize',15) 其中:’fontweight’,’bold’ 表示字体加粗
视角修饰 (函数view(az,el)) az ----方位角;el ---- 俯视角 省缺值为:az=-37.5; el=30 例10、观察不同视角的波峰图形
z=peaks(40);
subplot(2,2,1);mesh(z);
subplot(2,2,2);mesh(z);view(-15,60);
• • • •
c= contourc(Z,n)------计算 n 条等高线的坐标
MATLAB绘三维图
希望对大家有所帮助,多谢您的浏览!1 / 181第六讲 MATLAB 可视化(二)绘三维图【目录】一、三维图形绘制步骤 .......................................................................................................... 1 二、三维绘图基本操作 .......................................................................................................... 2 1、三维线图 .......................................................................................................................... 2 2、三维网线图 ...................................................................................................................... 3 3、三维曲面图 ...................................................................................................................... 4 三、透视、镂空和裁切 .......................................................................................................... 5 1、图形的透视 ...................................................................................................................... 5 2、图形的镂空 ...................................................................................................................... 6 3、图形的裁切 ...................................................................................................................... 7 四、三维图形的精细控制 ...................................................................................................... 8 1、视点与旋动 ...................................................................................................................... 8 2、色彩控制 .......................................................................................................................... 9 3、浓淡处理 ........................................................................................................................ 11 五、照明和材质处理 ............................................................................................................ 12 六、简洁绘图指令 . (13)【正文】一、三维图形绘制步骤步骤典型指令1 三维曲线数据:先取一个参变量采样向量然后计算各坐标数据向量 t=pi*(0:100)/100;x=f1(t);y=f2(t);z=f3(t); 三维曲面数据:产生自变量采样向量;由自变量向量产生格点矩阵;计算格点矩阵相对应的函数值矩阵 x=x1:dx:x2;y=y1:dy:y2; [X,Y]=meshgrid(x,y); Z=f(x,y); 2 选定图形窗及子窗位置:同二维3 调用三维曲线绘图指令:线型、色彩、数据点形plot3(x,y,z,'b-')调用三维曲面绘图指令Mesh(X,Y,Z); 4 设置轴的范围与刻度、坐标分隔线 同二维 5 图形注释:图名、坐标名、图例、文字 同二维6 着色、明暗、灯光、材质处理 colormap,shading,light,material7 视点、三度(横、纵、高)比view,aspect二、三维绘图基本操作希望对大家有所帮助,多谢您的浏览!1、三维线图用来画三维曲线,三维曲线与一组(x,y,z)坐标相对应的点连接而成。
matlab的三维绘图和四维绘图
matlab的三维绘图和四维绘图⼀、三维绘图1.曲线图plot3(X1,Y1,Z1,...):以默认线性属性绘制三维点集(X1,Y1,Z1)确定的曲线plot3(X1,Y1,Z1,LineSpec):以参数LineSpec确定的线性属性绘制三维点集plot3(X1,Y1,Z1,'PropertyName',PropertyValue,...):根据指定的属性绘制三维曲线theta = 0:0.01*pi:2*pi;x = sin(theta);y = cos(theta);z = cos(4*theta);plot3(x,y,z,'LineWidth',2);hold on;theta = 0:0.02*pi:2*pi;x = sin(theta);y = cos(theta);z = cos(4*theta);plot3(x,y,z,'rd','MarkerSize',10,'LineWidth',2);2.⽹格图绘制函数z=f(x,y)的三维⽹格图的过程:确定⾃变量x和y的取值范围和取值间隔利⽤meshgrid函数⽣成“格点”矩阵计算⾃变量采样“格点”上的函数值:Z = f(x,y)matlab中提供了mesh函数⽤于实现绘制⽹格图:mesh(X,Y,Z):绘制三维⽹格图,颜⾊与曲⾯的⾼度相匹配mesh(Z):系统默认颜⾊与⽹格区域的情况下绘制数据Z的⽹格图mesh(...,C,'PropertyName',PropertyValue):对指定的颜⾊C,指定的属性值,画出三维图形meshc(...):⽤于画⽹格图与基本的等值线图meshz(...):⽤于绘制包含零平⾯的⽹格图h = mesh(...):返回图形对象句柄属性值向量h[X,Y] = meshgrid(-3:.5:3);Z = 2 * X.^2-3 * Y.^2;subplot(2,2,1)plot3(X,Y,Z)title('plot3')subplot(2,2,2)mesh(X,Y,Z)title('mesh')subplot(2,2,3)meshc(X,Y,Z)title('meshc')subplot(2,2,4)meshz(X,Y,Z)title('meshz')set(gcf,'Color','w');3.曲⾯图表⽰三维空间内数据的变化规律。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab绘制三维图形三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
例在xy平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。
程序如下:[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);subplot(2,2,1);mesh(x,y,z);title('mesh(x,y,z)')subplot(2,2,2);meshc(x,y,z);title('meshc(x,y,z)')subplot(2,2,3);meshz(x,y,z)title('meshz(x,y,z)')subplot(2,2,4);surf(x,y,z);title('surf(x,y,z)')3.标准三维曲面sphere函数的调用格式为:[x,y,z]=sphere(n):generates three (N+1)-by-(N+1) matrices so that SURF(X,Y,Z) produces a unit sphere.cylinder函数的调用格式为:[x,y,z]= cylinder(R,n),其中r为圆周半径,n为组成圆周的点数。
MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。
例绘制标准三维曲面图形。
程序如下:t=0:pi/20:2*pi;[x,y,z]= cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);subplot(2,2,2);[x,y,z]=sphere;surf(x,y,z);subplot(2,1,2);[x,y,z]=peaks(30);surf(x,y,z);其他三维图形在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。
bar3函数绘制三维条形图,常用格式为:bar3(y)bar3(x,y)stem3函数绘制离散序列数据的三维杆图,常用格式为:stem3(z)stem3(x,y,z)pie3函数绘制三维饼图,常用格式为:pie3(x)fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为:fill3(x,y,z,c)例绘制三维图形:(1) 绘制魔方阵的三维条形图。
(2) 以三维杆图形式绘制曲线y=2sin(x)。
(3) 已知x=[2347,1827,2043,3025],绘制饼图。
(4) 用随机的顶点坐标值画出五个黄色三角形。
程序如下:subplot(2,2,1);bar3(magic(4))subplot(2,2,2);y=2*sin(0:pi/10:2*pi);stem3(y);subplot(2,2,3);pie3([2347,1827,2043,3025]);subplot(2,2,4);fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )例绘制多峰函数的瀑布图和等高线图。
程序如下:subplot(1,2,1);[X,Y,Z]=peaks(30);waterfall(X,Y,Z)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');subplot(1,2,2);contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');图形修饰处理视点处理MATLAB提供了设置视点的函数view,其调用格式为:view(az,el)其中az为方位角,el为仰角,它们均以度为单位。
系统缺省的视点定义为方位角-37.5°,仰角30°。
例从不同视点绘制多峰函数曲面。
程序如下:subplot(2,2,1);mesh(peaks);view(-37.5,30); %指定子图1的视点title('azimuth=-37.5,elevation=30')subplot(2,2,2);mesh(peaks);view(0,90); %指定子图2的视点title('azimuth=0,elevation=90')subplot(2,2,3);mesh(peaks);view(90,0); %指定子图3的视点title('azimuth=90,elevation=0')subplot(2,2,4);mesh(peaks);view(-7,-10); %指定子图4的视点title('azimuth=-7,elevation=-10')色彩处理1.颜色的向量表示MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。
向量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB三元组。
2.色图色图(Color map)是MATLAB系统引入的概念。
在MATLAB中,每个图形窗口只能有一个色图。
色图是m×3 的数值矩阵,它的每一行是RGB三元组。
色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。
3.三维表面图形的着色三维表面图实际上就是在网格图的每一个网格片上涂上颜色。
surf函数用缺省的着色方式对网格片着色。
除此之外,还可以用shading命令来改变着色方式。
shading faceted命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其shading flat命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。
shading interp命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。
颜色是黑色。
这是系统的缺省着色方式例 3种图形着色方式的效果展示。
程序如下:[x,y,z]=sphere(20);colormap(copper);subplot(1,3,1);surf(x,y,z);axis equalsubplot(1,3,2);surf(x,y,z);shading flat;axis equalsubplot(1,3,3);surf(x,y,z);shading interp;axis equal光照处理MATLAB提供了灯光设置的函数,其调用格式为:light('Color',选项1,'Style',选项2,'Position',选项3)光照处理后的球面。
程序如下:[x,y,z]=sphere(20);subplot(1,2,1);surf(x,y,z);axis equal;light('Posi',[0,1,1]);shading interp;hold on;plot3(0,1,1,'p');text(0,1,1,' light');subplot(1,2,2);surf(x,y,z);axis equal;light('Posi',[1,0,1]);shading interp;hold on;plot3(1,0,1,'p');text(1,0,1,' light');图形的裁剪处理例4-22 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。
程序如下:[x,y]=meshgrid(-5:0.1:5);z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);surf(x,y,z);shading interp;pause %程序暂停i=find(x<=0&y<=0);z1=z;z1(i)=NaN;surf(x,y,z1);shading interp;为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。
图像处理与动画制作图像处理1.imread和imwrite函数imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。