式中的光源的方位、光照系数为缺省值。
>>[X,Y] = meshgrid(-3:1/8:3); >>Z = peaks(X,Y); >>surfl(X,Y,Z); >>shading interp >>colormap(gray); (5) waterfall%瀑布图
waterfall(X,Y,Z) 用所给参数X、Y与Z的数据画一“瀑布”效果图。 >>[X,Y,Z] = peaks(30); >>waterfall(X,Y,Z) (6) cylinder% 生成圆柱图
[X,Y,Z] = cylinder 返回半径为1、高度为1的圆柱体,圆柱体的圆周有20个距离相同的点。
[X,Y,Z] = cylinder(r) 返回半径为r、高度为1的圆柱体,圆柱体的圆周有20个距离相同的点。
[X,Y,Z] = cylinder(r,n) 返回半径为r、高度为1的圆柱体,圆柱体的圆周有指定的n个距离相同的点。
>>t = 0:pi/10:2*pi;
>>[X,Y,Z] = cylinder(2+(cos(t)).^2); >>surf(X,Y,Z); axis square
(7) sphere%生成三维直角坐标系中的单位球体 sphere(n) 在当前坐标系中画出有n*n个面的球体
[X,Y,Z] = sphere(n) 返回三个阶数为(n+1)*(n+1)的,直角坐标系中的坐标矩阵。该命令没有画图,只是返回矩阵。可以用命令surf(X,Y,Z)或mesh(X,Y,Z)画出球体。
>>[X,Y,Z]=sphere; >>mesh(X,Y,Z) >>hidden off
4 三维数据的其他表现形式命令 (1) pcolor% 伪彩色图
pcolor(C) 画一伪彩色图。C中的元素都线性地映射于当前色图下标。从C
11
映射到当前的色图是由命令colormap和caxis定义的。
pcolor(X,Y,C) 在参数x和y指定的位置上画一由C确定的为彩色图。 注意:pcolor(X,Y,C) =surf(X,Y,0,C),观察角度为:view([0,90])。 >>pcolor(magic(20)) >>colormap(gray(2)) (2) quiver%矢量图或速度图 >>[z,x,y]=peaks(30); >>[Dx,Dy]=gradient(z,0.1,0.1); >>quiver(x,y,Dx,Dy)
(3) slice%立体切片图,显示立体图形的矩形切片图(略) (4) axis%坐标轴设置
axis([xmin xmax ymin ymax]) 设置当前坐标轴的x-轴与y-轴的范围。 axis([xmin xmax ymin ymax zmin zmax cmin cmax]) 设置当前坐标轴的x-轴、y-轴与z-轴的范围,当前颜色刻度范围。
v = axis 返回一包含x-轴、y-轴与z-轴的刻度因子的行向量,其中v为一四维或六维向量,这取决于当前坐标为二维还是三维的。返回的值包含当前坐标轴的XLim、Ylim与Zlim属性值。
axis auto 自动计算当前轴的范围
axis manual 、axis(axis) 把坐标固定在当前的范围,相当于图形保持状态(hold)为on
axis tight 把坐标轴的范围定为数据的范围
axis fill 用于将坐标轴的取值范围分别设置为绘图所用数据在相应方向上的最大、最小值。
axis ij 使用矩阵坐标系:坐标原点在左上角、横坐标(j-轴)的值从左到右增加,纵坐标(i-轴)的值从上到下增加。
axis xy使用笛卡儿坐标系(缺省):坐标原点在左下角、横坐标(x-轴)的值从左到右增加,纵坐标(y-轴)的值从下到上增加。
axis equal 设置坐标轴的纵横比,使在每个方向的数据单位都相同。其中x-轴、y-轴与z-轴将根据所给数据在各个方向的数据单位自动调整其纵横比。
axis image 效果与命令axis equal相同,但图形区域刚好紧紧包围图象数据。
12
axis square 设置当前图形为正方形(或立方体形),系统将调整x-轴、y-轴与z-轴,使它们有相同的长度,同时相应地自动调整数据单位之间的增加量。
axis normal 自动调整坐标轴的纵横比
axis vis3d 该命令将冻结坐标系此时的状态,以便进行旋转。
axis off 关闭所用坐标轴上的标记、格栅和单位标记。但保留由text和gtext设置的对象。
axis on 显示坐标轴上的标记、单位和格栅。 >>x = 0:.025:pi/2;
>>plot(x,exp(x).*sin(2*x),'-m<') >>axis([0 pi/2 0 5]) (5) hidden%显示隐含线条
隐含线条的显示,隐藏观察角度观看没有被其他物体遮住的线条。 hidden on 对当前图形打开隐含线条的显示状态, hidden off 对当前图形关闭隐含线条的显示,hidden 在两种状态on与off之间切换
>>mesh(peaks) >>hidden off
(6) shading% 设置颜色色调属性(略) shading flat、shading faceted 、shading interp >>sphere(16) >>axis square >>shading flat >>title('Flat Shading')
(7) caxis%颜色坐标轴刻度(略)
>>[X,Y,Z] = sphere;>>C = Z;surf(X,Y,Z,C)>>caxis([-1 3]) (8) view%指定立体图形的观察点
view([x,y,z]) 在笛卡儿坐标系中于点(x,y,z)设置视点。注意:输入参量只能是方括号的向量形式,而非数学中的点的形式。
view(2) 设置缺省的二维形式视点。其中az=0,el=90,即从z-轴上方观看。 view(3) 设置缺省的三维形式视点。其中az=-37.5,el=30。
view(T) 根据转换矩阵T设置视点。其中T为4*4阶的矩阵,如同用命令viewmtx生成的透视转换矩阵一样。
13
[az,el] = view 返回当前的方位角az与仰角el。 T = view 返回当前的4*4阶的转换矩阵T。 >>peaks; >>az = 0;el = 90; >>view(az, el)
(9) viewmtx%视点转换
T = viewmtx(az,el) 返回一与视点的方位角az与仰角el(单位都为度)对应的正交矩阵,并没有改变当前视点。
T = viewmtx(az,el,phi) 返回一透视的转换矩阵,其中参量phi是单位为度的透视角度,为标准化立方体(单位为度)的对像视角角度与透视扭曲程度。
(10) surfnorm%计算与显示三维曲面的法线
surfnorm(Z)、surfnorm(X,Y,Z) 画出一曲面与它的法线图。其中矩阵Z用于指定曲面的高度值;X与Y为向量或矩阵,用于定义曲面的x与y部分。
[Nx,Ny,Nz] = surform(…) 返回组成曲面的法线在三个坐标轴上的投影分量Nx,Ny与Nz。
>>[x,y,z] = cylinder(1:10); >>surfnorm(y,x,z)
>>axis([-12 12 -12 12 -0.1 1]) 5.通用图形函数命令
图形对象句柄命令 figure、line、patch、surface、 image、 uicontrol、uimenu 例1:命令line画函数图示例 >>t = 0:pi/20:2*pi;
>>hline1 = plot(t,exp(t).*sin(t),'k');
>>hline2 = line(t+.06,exp(t).*sin(t),'LineWidth',4,'Color',[.8 .8 .8]); >>set(gca,'Children',[hline1 hline2])
例2:生成随机直线图: >>line(rand(4,2),rand(4,2),rand(4,1)) >>line(rand(1,4),rand(1,4),rand(1,4)) >>line(rand(4,1),rand(4,1),rand(4,1)) >>line(rand(2,4),rand(2,4),rand(1,4)) >>line(rand(4,2),rand(4,2),rand(4,1))
14
五.轴的产生和控制
1 axes%创建坐标轴图形对象
axes 在当前图形窗口中用缺省的属性值创建一坐标轴图形对象。
axes('PropertyName',PropertyValue,?) 用参量'PropertyName'指定的属性名与用参量PropertyValue指定的属性值创建一坐标轴。对于没有指定的属性名,系统则使用缺省的属性值。
axes(h) 使已经存在的坐标轴h成为当前的坐标轴。同时使坐标轴h为图形窗口中的所有子对象属性(Children property)的第一坐标轴,也使图形窗口的CurrentAxes属性为h。当前坐标轴是图形函数image、line、patch、surface与text等命令输出图形对象的目的地。
h = axes(?) 返回已经创建的坐标轴对象的句柄。 2 cla%清除当前坐标轴 3 gca%获取当前坐标轴句柄 六.图形窗口的控制命令
1 subplot%生成与控制多个坐标轴,把当前图形窗口分隔成几个矩形部分,不同的部分按行方向以数字进行标号的
2 hold%图形保持(on、off) 3 gcf%获得当前图形窗口的句柄 4 clf%清除当前图形窗口 5 close%关闭指定的图形窗口 close(h) 删除由句柄h指定的图形窗口 close name 删除指定名字name的窗口。 close all 删除所有没有隐藏的图形。 6 newplot%画新图形对象 七.颜色与光照模式命令 (略) 八.画图实例
15