《matlab三维绘图.ppt》由会员分享,可在线阅读,更多相关《matlab三维绘图.ppt(30页珍藏版)》请在三一办公上搜索。
1、MATLAB 绘图,北京科技大学数学实验,北京科技大学数学实验,三维曲面绘图,三维曲线绘图,二、MATLAB三维曲线绘图,plot3三维曲线绘制指令,北京科技大学数学实验,plot3的调用格式:,plot3(X,Y,Z)plot3(X,Y,Z,String)plot3(X1,Y1,Z1,String1,X2,Y2,Z2,String2,),plot3与plot的 用法相同,例:绘制三维曲线的图像:,北京科技大学数学实验,,,t=0:pi/10:20*pi;x=t.*sin(t);y=t.*cos(t);z=t;plot3(x,y,z),解:matlab命令为:,meshgrid生成网格矩阵,北
2、京科技大学数学实验,三、MATLAB三维曲面绘图,调用格式:X,Y=meshgrid(x,y)-生成小矩形顶点的坐 标值矩阵,X,Y=meshgrid(x)等价于X,Y=meshgrid(x,x),例:x=1,2,3;y=1,2,3,4;X,Y=meshgrid(x,y)X=1 2 3 1 2 3 1 2 3 1 2 3 Y=1 1 1 2 2 2 3 3 3 4 4 4,北京科技大学数学实验,mesh三维网格线绘图命令,北京科技大学数学实验,利用函数meshgrid生成格点矩阵后,再求出各格点对应的函数值,就可以利用三维网格命 mesh画出空间网格曲面。,mesh(Z)-Z为nm矩阵,X,Y
3、坐标为元素的下标 mesh(X,Y,Z)-X,Y,Z分别为三维空间的坐标,例:x=1,2,3 y=1,2,3,4 X,Y=meshgrid(x,y)X=1 2 3 Y=1 1 1 1 2 3 2 2 2 1 2 3 3 3 3 1 2 3 4 4 4 Z=ones(size(X);mesh(X,Y,Z),北京科技大学数学实验,例:x=1:.1:3;y=1:.1:4;X,Y=meshgrid(x,y);Z=ones(size(X);mesh(X,Y,Z),北京科技大学数学实验,surf 绘制三维表面图,北京科技大学数学实验,与三维网格图的区别:网格图:线条有颜色,空挡没有颜色曲面图:线条是黑色,
4、空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化),解:matlab命令为:t=-2:0.1:2;x,y=meshgrid(t);z=x.*exp(-x.2-y.2);subplot(1,2,1),mesh(x,y,z),title(网格图)subplot(1,2,2),surf(x,y,z),title(曲面图),北京科技大学数学实验,例:绘制函数 的图像,比较指令mesh和surf。,北京科技大学数学实验,例 用平行截面法讨论由方程构成的马鞍面形状。解:Matlab命令为,t=-10:0.1:10;x,y=meshgrid(t);z1=(x.2-2*y.2)+eps;subplo
5、t(1,3,1),mesh(x,y,z1),title(马鞍面)a=input(a=(-50a50),z2=a*ones(size(x);subplot(1,3,2),mesh(x,y,z2),title(平面)r0=abs(z1-z2)=1;zz=r0.*z2;yy=r0.*y;xx=r0.*x;subplot(1,3,3),plot3(xx(r0=0),yy(r0=0),zz(r0=0),x)title(交线),北京科技大学数学实验,北京科技大学数学实验,马鞍面、平面及交线,三维图形的控制命令,视角控制命令view,view(az,el)设置查看三维图的视点。az为水平方位角,从y轴负方向
6、开始,逆时针旋转为正;el为垂直方位角,以向z轴方向旋转为正。三维默认视角为az=-37.5,el=30,view(x,y,z)笛卡尔坐标系下的视角,忽略向量的幅值,旋转控制命令rotate,rotate(h,direction,alpha,orgin),将图形绕方向旋转一个角度h-表示被旋转的对象direction-方向轴:可用球坐标theta,phi或直角坐标x,y,zalpha-按右手法旋转的角度orgin-支点,例4-34 利用rotate函数,从不同角度查看函数,t=-2:.1:2;x,y=meshgrid(t);z=x.*exp(-x.2-y.2);subplot(121),mes
7、h(x,y,z);subplot(122),h=mesh(x,y,z)%返回图形对象的句柄rotate(h,-2,-2,0,30,2,2,0),rotate3d 动态旋转命令,可以让用户使用鼠标来旋转视角,subplot(121),surf(ones(10,10)%subplot(122),h=surf(ones(10,10);rotate(h,0 0 1,45,1 0 0)for i=1:45 subplot(122),h=surf(ones(10,10);rotate(h,0 0 1,i,1 0 0)end,背景颜色控制命令colordef,colordef white 将图形的背景颜色设
8、置为白色colordef blackcolordef none 将图形背景和图形窗口的颜色设置为默认的颜色colordef(fig,color_option)将图形句柄fig图形的背景设置为color_option指定的颜色,见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为常用的色图矩阵。,z=peaks(20);CM=cool
9、;%CM=hot;pink;%用两个已知的色图构成新的色图surf(z)colormap(CM)colorbar%显示色度条,图形着色控制命令shading,shading flat 使用平滑方式着色。网格图的某条线段或曲面图中的某整个贴片都是一种颜色,该颜色取值线段的两端或者该贴片4个顶点中下标最小那点的颜色。shading interp 使用插值的方式为图形着色。网格图线段,或者曲面图贴片上各点的颜色由该线段两端或该贴片4个顶点的颜色线性插值所得。shading faceted 以平面为单位进行着色,在flat用色基础上,在贴片的四周勾出黑色网线。,subplot(131),surf(pe
10、aks(40);subplot(132),surf(peaks(40);shading flatsubplot(133),surf(peaks(40);shading interp,透视控制命令hidden,hidden on 消隐被遮挡的图形hidden off 透视被遮挡的图形,Matlab在绘制三维网线图和曲面图时,一般进行消隐处理,为得到透视效果,用以下命令:,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),color
11、map(hot),hold offhidden off%透视外面大球看到里面小球axis equal,axis off%坐标轴三个方向上刻度增量相同,并消隐坐标轴,光照控制命令light,light(propertyname,propertyvalue,)创建光源并设置其属性handle=light()返回所创建光源的句柄,Matlab提供了许多函数在图形中进行对光源的定位并改变光照对象的特征,见P73表4-7.其中light函数用于设置光源。,z=peaks(50);subplot(121),surf(z)subplot(122),surf(z),light(position,20,-20,5),对象和句柄,MATLAB把构成图形的各个基本要素称为图形对象,包括图形窗口、坐标轴、线条、曲面、文本和其它对象。每一个对象都有一个数字来标识,叫做句柄。当每次创建一个对象时,MATLAB就为它建立一个唯一的句柄。,作业:P79 5,7,8,9,
链接地址:https://www.31ppt.com/p-5438903.html