📄 7.txt
字号:
图形结果为图7-29。
命令6 pie3
功能 三维饼形图
用法 pie3(X) 用x中的数据画一个三维饼形图。X中的每一个元素代表三维饼形图中的一部分。
pie3(X,explode) x中的某一部分可以从三维饼形图中分离出来。explode是一个与x同型的向量或矩阵,explode中非零的元素对应x中从饼形图中分离出来的分量。
h = pie3(…) 返回一个分量为patch,surface和text图形句柄对象的向量。即每一块对应一个句柄。
注意:命令pie3将x的每一个元素在所有元素的总和中所占的比例表达出来。若x中的分量和小于1(则所有元素小于1),则认为x中的值指明三维饼形图的每一部分的大小。
例7-30
>>x = [1 3 0.5 2.5 2]
>>ex = [0 1 0 0 0]
>>pie3(x,ex)
图形结果为图7-30。
7.2.3 曲面与网格图命令
命令1 mesh
功能 生成由X,Y和Z指定的网线面,由C指定的颜色的三维网格图。网格图是作为视点由view(3)设定的surface图形对象。曲面的颜色与背景颜色相同(当要动画显示不透明曲面时,这时可用命令hidden控制),或者当画一个标准的可透视的网线图时,曲面的颜色就没有(命令shading控制渲染模式)。当前的色图决定线的颜色。
用法 mesh(X,Y,Z) 画出颜色由c指定的三维网格图,所以和曲面的高度相匹配,
1.若X与Y均为向量,length(X)=n,length(Y)=m,而[m,n]=size(Z),空间中的点 (X(j),Y(I),Z(I,j)) 为所画曲面网线的交点,分别地,X对应于z的列,Y对应于z的行。
2.若X与Y均为矩阵,则空间中的点 (X(I,j),Y(I,j),Z(I,j))为所画曲面的网线的交点。
mesh(Z) 由[n,m] = size(Z)得,X =1:n与Y=1:m,其中z为定义在矩形划分区域上的单值函数。
mesh(…,C) 用由矩阵c指定的颜色画网线网格图。Matlab对矩阵c中的数据进行线性处理,以便从当前色图中获得有用的颜色。
mesh(…,PropertyName’,PropertyValue, …) 对指定的属性PropertyName设置属性值PropertyValue,可以在同一语句中对多个属性进行设置。
h = mesh(…) 返回surface图形对象句柄。
运算规则:
1.数据X,Y和z的范围,或者是对当前轴的XLimMode,YLimMode和ZLimMode属性的设置决定坐标轴的范围。命令aXis可对这些属性进行设置。
2.参量c的范围,或者是对当前轴的Clim和ClimMode属性的设置(可用命令caxis进行设置),决定颜色的刻度化程度。刻度化颜色值作为引用当前色图的下标。
3.网格图显示命令生成由于把z的数据值用当前色图表现出来的颜色值。Matlab会自动用最大值与最小值计算颜色的范围(可用命令caxis auto进行设置),最小值用色图中的第一个颜色表现,最大值用色图中的最后一个颜色表现。Matlab会对数据的中间值执行一个线性变换,使数据能在当前的范围内显示出来。
例7-31
>>[X,Y] = meshgrid(-3:.125:3);
>>Z = peaks(X,Y);
>>mesh(X,Y,Z);
图形结果为图7-31。
命令2 surf
功能 在矩形区域内显示三维带阴影曲面图。
用法 surf(Z) 生成一个由矩阵z确定的三维带阴影的曲面图,其中 [m,n] = size(Z),而X = 1:n,Y = 1:m。高度z为定义在一个几何矩形区域内的单值函数,z同时指定曲面高度数据的颜色,所以颜色对于曲面高度是恰当的。
surf(X,Y,Z) 数据z同时为曲面高度,也是颜色数据。X和Y为定义X坐标轴和Y坐标轴的曲面数据。若X与Y均为向量,length(X)=n,length(Y)=m,而[m,n]=size(Z),在这种情况下,空间曲面上的节点为(X(I),Y(j),Z(I,j))。
surf(X,Y,Z,C) 用指定的颜色c画出三维网格图。Matlab会自动对矩阵c中的数据进行线性变换,以获得当前色图中可用的颜色。
surf(…,’PropertyName’,PropertyValue) 对指定的属性PropertyName设置为属性值PropertyValue
h = surf(…) 返回一个surface图形对象句柄给变量h。
运算规则:
1.严格地讲,一个参数曲面是由两个独立的变量I、j来定义的,它们在一个矩形区域上连续变化。例如,a<=I<=b,c<=j<=d,三个变量X,Y,Z确定了曲面。曲面颜色由第四参数矩阵C确定。
2.矩形定义域上的点有如下关系:
A(I-1,j)
|
B(I,j-1) ---- C(I,j) ---- D(I,j+1)
|
E(I+1,j)
这个矩形坐标方格对应于曲面上的有四条边的块,在空间的点的坐标为[X(?,Y(?,Z),每个矩形内部的点根据矩形的下标和相邻的四个点连接;曲面上的点只有相邻的三个点,曲面上四个角上的点只有两个相邻点,上面这些定义了一个四边形的网格图。
3.曲面颜色可以有两种方法来指定:指定每个节点的颜色或者是每一块的中心点颜色。在这种一般的设置中,曲面不一定为变量X和Y的单值函数,进一步而言,有四边的曲面块不一定为平面的,而可以用极坐标,柱面坐标和球面坐标定义曲面。
4.命令shading设置阴影模式。若模式为interp,C必须与X,Y,Z同型;它指定了每个节点的颜色,曲面块内的颜色由附近几个点的颜色用双线性函数计算出来的。若模式为facted(缺省模式)或flat,c(I,j)指定曲面块中的颜色:
A(I,j)----------- B (I,j+1)
| C(I,j) |
C(I+1,j) --------- D(I+1,j)
在这种情形下,C可以与X,Y,和Z同型,且它的最后一行和最后一列将被忽略,换句话说,就是C的行数和列数可以比X,Y,Z少1。
5.命令surf将指定图形视角为view(3)。
6.数据X,Y,Z的范围或者通过对坐标轴的属性XlimMode,YlimMode和ZlimMode的当前设置(可以通过命令axis来设置),将决定坐标轴的标签。
7.参数C的范围或者通过对坐标轴的属性Clim和ClimMode的设置(可以通过命令caxis来设置),将决定颜色刻度化。刻度化的颜色值将作为引用当前色图的下标。
例7-32
>>[X,Y,Z] = peaks(30);
>>surf(X,Y,Z)
>>colormap hsv
结果图形为图7-32。
命令3 surfc
功能 在矩形区域内显示三维带阴影曲面图,且在曲面下面画出等高线。
用法 surfc(Z)、surfc(X,Y,Z)、 surfc(X,Y,Z,C)、
surfc(…,’PropertyName’,PropertyValue)、
surfc(…)、 h = surfc(…)
上面各个使用形式的曲面效果与命令surf的相同,只不过是在曲面下面增加了曲面的等高线而已。
例7-33
>>[X,Y,Z] = peaks(30);
>>surfc(X,Y,Z)
>>colormap hsv
图形结果为图7-33。
命令4 surfl
功能 画带光照模式的三维曲面图。该命令显示一个带阴影的曲面,结合了周围的,散射的和镜面反射的光照模式。想获得较平滑的颜色过度,要使用有线性强度变化的色图(如:gray,copper,bone,pink等)。参数X,Y,Z确定的点定义了参数曲面的“里面”和“外面”,若用户想曲面的“里面”有光照模式,只要使用:
surfl(X’,Y’,Z’)
用法 surfl(Z) 以向量z的元素生成一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)。
surfl(X,Y,Z) 以矩阵X,Y,Z生成的一个三维的带阴影的曲面,其中阴影模式中的光源的方位、光照系数为缺省值(见下面)。
surfl(…,’light’) 用一个matlab光照对象(light object)生成一个带颜色、带光照的曲面,这与用缺省光照模式产生的效果不同。
surfl(…,’cdata’) 改变曲面颜色数据(color data),使曲面成为可反光的曲面。
surfl(…,s) 指定光源与曲面之间的方位s,其中s为一个二维向量[azimuth,elevation],或者三维向量[sx,sy,sz]。缺省光源方位为从当前视角开始,逆时针45℉(度)。
surfl(X,Y,Z,s,k) 指定反射常系数k,其中k为一个定义环境光(ambient light)系数(0<=ka<=1)、漫反射(diffuse reflection)系数(0〈=kb〈=1〉、镜面反射(specular reflection)系数(0〈=ks〈=1〉与镜面反射亮度(以相素为单位)等的四维向量[ka,kd,ks,shine],缺省值为k=[0.55 0.6 0.4 10]。
h = surfl(…) 返回一个曲面图形句柄向量h。
例7-34
>>[X,Y] = meshgrid(-3:1/8:3);
>>Z = peaks(X,Y);
>>surfl(X,Y,Z);
>>shading interp
>>colormap(gray);
图形结果为图7-34。
命令5 waterfall
功能 瀑布图
用法 waterfall(X,Y,Z) 用所给参数X、Y与Z的数据画一“瀑布”效果图。若X与Y都是向量,则X与Z的列相对应,Y与Z的行相对应,即length(X)=Z的列数,length(Y)=Z的行数。参数X与Y定义了x-轴与y-轴,Z定义了z-轴的高度,Z同时确定了颜色,所以颜色能恰当地反映曲面的高度。若想研究数据的列,可以输入:waterfall(Z’)或waterfall(X’,Y’,Z’)
waterfall(Z) 画出一瀑布图,其中缺省地有:X=1:Z的行数,Y=1:Z的行数,且Z同时确定颜色,所以颜色能恰当地反映曲面高度。
waterfall(…,C) 用比例化的颜色值从当前色图中获得颜色,参量C决定颜色的比例,为此,必须与Z同型。系统使用一线性变换,从当前色图中获得颜色。
h = waterfall(…) 返回patch图形对象的句柄h,可用于画出图形。
例7-35
>>[X,Y,Z] = peaks(30);
>>waterfall(X,Y,Z)
图形结果为图7-35。
命令6 cylinder
功能 生成圆柱图形。该命令生成一单位圆柱体的x-,y-,z-轴的坐标值。用户可以用命令surf或命令mesh画出圆柱形对象,或者用没有输出参量的形式而立即画出图形。
用法 [X,Y,Z] = cylinder 返回一半径为1、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点。
[X,Y,Z] = cylinder? 返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有20个距离相同的点。
[X,Y,Z] = cylinder(r,n) 返回一半径为r、高度为1的圆柱体的x-,y-,z-轴的坐标值,圆柱体的圆周有指定的n个距离相同的点。
cylinder(…) 没有任何的输出参量,直接画出圆柱体。
例7-36
>>t = 0:pi/10:2*pi;
>>[X,Y,Z] = cylinder(2+(cos(t)).^2);
>>surf(X,Y,Z); axis square
图形结果为图7-36。
命令7 sphere
功能 生成球体
用法 sphere 生成三维直角坐标系中的单位球体。该单位球体由20*20个面。
sphere(n) 在当前坐标系中画出有n*n个面的球体
[X,Y,Z] = sphere(n) 返回三个阶数为(n+1)*(n+1)的,直角坐标系中的坐标矩阵。该命令没有画图,只是返回矩阵。用户可以用命令surf(X,Y,Z)或mesh(X,Y,Z)画出球体。
例7-37
>>[X,Y,Z]=sphere;
>>mesh(X,Y,Z)
>>hidden off
图形结果为图7-37。
7.2.4 三维数据的其他表现形式命令
命令1 pcolor
功能 伪彩色图。该图为一矩形单元的、由参数c定义了颜色的阵列,系统通过c中的每相邻的四点定义的曲面补片而生成一伪彩色图。是从上面向下观看的“平面”曲面图。若用户使用命令shading faceted或shading flat,则每一单元的固定颜色是与之相连的角的颜色有关的。所以,C(i,j)定义了单元的地i行与地j列的颜色。C中的最后一行与最后一列都没有用上。若用户使用命令shading interp,则每一单元的颜色是对它的四个顶点的颜色进行一双线性插值后的颜色,这时c的所有元素都参加了运算。
用法 pcolor(C) 画一伪彩色图。C中的元素都线性地映射于当前色图下标。从C映射到当前的色图是由命令colormap和caxis定义的。
pcolor(X,Y,C) 在参数x和y指定的位置上画一由C确定的为彩色图。该图为一逻辑上为矩形、带二维格栅的、顶点在[X(i,j),Y(i,j)]的图形(若X和Y为矩阵时)。参量X与Y为指定格栅线的向量或矩阵。若X与Y为向量,则X对应于C的列,而y对应于C的行;若X与Y同为矩阵,则必须为同型矩阵。该命令等价于命令:surf(X,Y,0,C),观察角度为:view([0,90])。
h = pcolor(…) 返回一surface图形对象句柄于h
例7-38
>>pcolor(magic(20))
>>colormap(gray(2))
>>axis ij;axis square
图形结果为图7-38。
命令2 quiver
功能 矢量图或速度图
用法 quiver(U,V) 在范围为x =1:n和y =1:m的坐标系中显示由U和V定义的向量,而[m,n]=size(U)=size(V),这种形式是在一个几何矩形中画出U和V的,quiver命令本身会自动地画出这些向量,使之不会重叠。
quiver(X,Y,U,V) 由向量X和Y中的分量的任意组合而成的向量与。若X与Y都是向量length(X)=n,而length(Y)=m,而[m,n]=size(U)=size(V),向量X对应于矩阵U、V的列向量,而向量Y对应于矩阵U、V的行向量。
quiver(…,scale) 自动对向量的长度进行处理。使之不会重叠,当然可以对scale进行取值,若scale=2,则向量长度伸长2倍,若scale=0,则如实画出向量图。
quiver(…,LineSpec) 可以指定画矢量图用的线型,符号,颜色,quiver命令会在原来的向量图上画出记号。
quiver(…,LineSpec,'filled') 对用LineSpec指定的记号进行填充
h = quiver(…) 返回每个向量图的句柄
例7-39
>>[z,x,y]=peaks(30);
>>[Dx,Dy]=gradient(z,0.1,0.1);
>>quiver(x,y,Dx,Dy)
图形结果为图7-39。
命令3 slice
功能 立体切片图。该命令显示通过立体图形的矩形切片图。
用法 slice(X,Y,Z,V,sx,sy,sz) 显示三元函数V=V(X,Y,Z)确定的超立体形在x-轴、y-轴与z-轴方向上的若干点(对应若干平面。即若函数V=V(X,Y,Z)中有一变量如X取一定值X0,则函数V=V(X0,Y,Z)变成一立体曲面(只不过是将该曲面通过颜色表示高度V,从而显示于一平面而已。)的切片图,各点的坐标由参量向量sx、sy与sz指定。参量X、
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -