在MATLAB中,plot3函数用于绘制三维曲线.它与plot相同,都是MATLAB内部函数.其使用格式是:
●plot3(X,Y,Z)
●plot3(X,Y,Z,’String’)
●plot3(X1,Y1,Z1,’String1’,X2,Y2,Z2,’String2’,...)
其中,X1、Y1、Z1可以为向量或者矩阵,通过String来控制曲线的颜色、线型和数据点.
当X1、Y1、Z1为长度相同的向量时,plot3命令将绘制一条分别以向量X1、Y1、Z1为 X 、 Y 、 Z 轴坐标值的空间曲线;当X1、Y1、Z1为矩阵时,该命令以每个矩阵的对应列为 X 、 Y 、 Z 坐标绘制出空间曲线.
空间参数曲线的方程为 x = x ( t ), y = y ( t ), z = z ( t ),参数 t 连接了变量 x , y , z 的函数关系.MATLAB提供了空间参数曲线绘图功能.
例2-22 绘制三维曲线图:
解 MATLAB命令为:
运行结果如图2-23所示.
图2-23 三维圆锥曲线图
例2-23 在同一坐标系下绘制如下两个函数的图像:
解 MATLAB命令为:
运行结果如图2-24所示.
例2-24 使用plot3函数绘制三维螺旋线,并用红色星号线画出.
解 MATLAB命令为:
运行结果如图2-25所示.
图2-24 两条对称的三维圆锥曲线图
图2-25 三维螺旋线
三维图形比二维图形具有更多的控制信息,除了可以像二维图形那样控制线型、颜色外,还可以控制图形的视角、材质、光照等,这些是二维图形所没有的.
1.视角控制命令view
三维视图表现一个空间内的图形,为了使图形的效果更逼真,可以从不同的位置和角度来观察该图形.MATLAB提供了图形视角控制命令,view函数主要用于从不同的角度观察图形.其调用格式为:
●view(az,el) 设置查看三维图的三个角度,其中az为水平方位角,从 Y 轴负方向开始,以逆时针方向旋转为正;el为垂直方位角,以向 Z 轴方向的旋转为正,以向Z轴负方向的旋转为负.
●view([x,y,z]) 在笛卡儿坐标系下的视角,而忽略向量 x , y , z 的幅值.
●view(2) 设置默认的二维视角,此时az=0,el=90.
●view(3) 设置默认的三维视角,此时az=-37.5,el=30.
例2-25 绘制函数 ,并从不同的角度观察图形.
解 MATLAB命令为:
运行结果如图2-26所示.
图2-26 以不同的视角看表面图
2.旋转控制命令rotate
rotate命令的调用格式为:rotate(h,direction,alpha),该命令将图形绕方向旋转一个角度,其中参数h表示旋转对象;参数direction有两种方法设置方向,即球坐标设置法(将其设置为[theta,phi],其单位是度)和直角坐标法([ x , y , z ]);参数alpha是按右手法旋转的角度.
例2-26 利用rotate从不同的角度查看函数 z = .
解 MATLAB命令为:
运行结果如图2-27所示.
图2-27 被旋转的图形
说明 使用view命令旋转的是坐标轴,而使用rotate命令旋转的是图形本身,而坐标轴不变.
还有一个动态旋转命令rotate3d,可以让用户使用鼠标来旋转视图,无须自行输入视角的角度参数.
例2-27 使用动态旋转命令调整三维函数peaks的视角.
解 MATLAB命令为:
运行结果如图2-28所示.
图形中会出现旋转的光标,可以在图形区域按住鼠标左键来回调整视角,在图形窗口的左下方会出现所调整的角度.
调整一定角度后(az=70,el=25),出现的图形如图2-29所示.
图2-28 原始图形
图2-29 旋转后的图形
3.背景颜色控制命令colordef
丰富的颜色可以使图形更有表现力,MATLAB提供了多种色彩控制命令,它们可以对整个图形中的所有因素进行颜色设置.
设置图形背景颜色的命令是colordef,其调用格式为:
●colordef white 将图形的背景颜色设置为白色.
●colordef black 将图形的背景颜色设置为黑色.
●colordef none 将图形背景和图形窗口的颜色设置为默认的颜色.
●colordef(fig,color_option) 将图形句柄fig图形的背景设置为由color_option设置的颜色.
说明 它将影响其后产生的图形窗口中所有对象的颜色.
例2-28 为peaks函数设置不同的背景颜色.
解 MATLAB命令为:
运行结果如图2-30所示.
图2-30 为peaks函数设置不同的背景颜色
4.图形颜色控制命令colormap
在MATLAB中,除了可以方便地控制图形的背景颜色外,还可以控制图形的颜色与表现,这主要由函数colormap来完成,其调用格式为:
表2-5 MATLAB中常见的颜色配比方案
用单色绘图,[R,G,B]代表一个配色方案,R代表红色,G代表绿色,B代表蓝色,且R、G、B必须在[01]区间内.通过设置R、G、B的大小,可以调制出不同的颜色.
表2-5列出了一些常见的颜色配比方案.
在colormap([R,G,B])命令中,函数的变量[R,G,B]是一个三列矩阵,行数不限,这个矩阵就是色图矩阵.色图可以通过矩阵元素的直接赋值来定义,也可以按照某个数据规律产生.
MATLAB预定义了一些色图矩阵CM数值,它们的维度由其调用格式来决定.调用格式为:
表2-6列出了MATLAB中常用的色图矩阵名称及其含义.
表2-6 色图矩阵名称及其含义
例2-29 绘制peaks函数的图形,同时设置该图形的颜色.
解 MATLAB命令为:
运行结果如图2-31所示
5.图形着色控制命令shading
在MATLAB中,除了可以为图形设置不同的颜色外,还可以设置颜色的着色方式.着色控制命令由shading命令决定,其调用格式为:
图2-31 使用cool绘图
●shading flat 使用平滑方式着色.网格图的某条线段或者曲面图中的某个贴片都是一种颜色,该颜色取自线段的两端,或者该贴片四顶点中下标最小那点的颜色.
●shading interp 使用插值的方式为图形着色.网格图线段或者曲面图贴片上各点的颜色由该线段两端,或者该贴片四顶点的颜色线性插值所得.
●shading faceted 以平面为单位进行着色,在flat用色的基础上,在贴片上的四周勾画黑色网线,是系统默认值.
例2-30 绘制圆,然后进行不同的着色.
解 MATLAB命令为:
运行结果如图2-32所示.
图2-32 图形的不同着色方式
6.透视控制命令hidden
在MATLAB中,当使用mesh、surf等命令绘制三维图形时,三维图形后面的网格线会隐藏重叠,如果要了解隐藏的网格线,需要使用透视控制命令hidden.其调用格式为:
●hidden on 消隐重叠线.
●hidden off 透视重叠线.
例2-31 透视演示.
解 MATLAB命令为:
运行结果如图2-33所示.
7.光照控制命令light
MATLAB提供了许多函数对图形中的光源进行定位,并改变光照对象的特征,如表2-7所示.
图2-33 剔透玲珑球
表2-7 MATLAB的图像光源操作函数
在表2-7中,light函数用于设置光源,其调用格式为:
●light(’PropertyName’,Propertyvalue,...) 创建光源并设置其属性.
●handle=light(...) 返回所创建光源的句柄.
例2-32 生成一个曲面图,之后添加光源.
解 绘制peaks函数的曲面图,MATLAB命令为:
运行结果如图2-34所示.
图2-34 原始图形
现在给曲面图添加光源,MATLAB命令为:
运行结果如图2-35所示.
图2-35 添加了光源后的曲面图
图2-35显示的是添加光源的图形,而且射向图形的角度是[20,20,5].
表2-8列出了MATLAB中的一些三维特殊图形函数.
表2-8 三维特殊图形函数
1.三维条形图
在MATLAB中,使用bar3和bar3h来绘制三维条形图,其调用格式与二维图形函数bar和barh相似.
例2-33 使用bar3和bar3h绘制一个随机矩阵的横向与纵向三维条形图.
解 MATLAB命令为:
运行结果如图2-36所示.
图2-36 三维条形图
2.三维饼形图
饼形图是分析数据比例时常用的图表类型,主要用于显示各个项目与其总和的比例关系,它强调部分与整体的关系.
pie3函数用于绘制三维饼形图,其用法与二维饼形图绘制函数pie基本相同.
例2-34 绘制三维饼形图,分析各个部分销量所占的比例.
解 MATLAB命令为:
运行结果如图2-37所示.
图2-37 三维饼形图
3.三维离散杆图
stem3函数用于绘制三维离散杆图,其用法与二维离散图的stem函数基本相同.
例2-35 使用stem3函数绘制 y =e - st +11的三维离散杆图.
解 MATLAB命令为:
图2-38 三维离散杆图
运行结果如图2-38所示.
4.柱坐标图
在MATLAB中,绘制柱坐标图的主要命令是pol2cart.这个命令用于将极坐标或者柱坐标的数值转换成直角坐标系下的坐标值,然后使用三维绘图命令进行绘图,也就是在直角坐标系统下绘制使用柱坐标值描述的图形.
例2-36 绘制柱坐标图.
解 MATLAB命令为:
运行结果如图2-39所示.
5.三维等高线
图2-39 柱坐标图
contour3函数用于绘制一个矩阵的三维等高线图,其用法与绘制二维等高线图的contour函数基本相同.
例2-37 绘制函数 的等高线图.
解 MATLAB命令为:
运行结果如图2-40所示.
如果使用表2-6中的cool颜色图并加视角,则MATLAB命令为:
运行结果如图2-41所示.
图2-40 等高线图
图2-41 加了视角的等高线图