MATLAB绘图与图形处理

参考: http://www.cnblogs.com/djcsch2001/tag/MATLAB/  matlab部分写的不错!

7.2  三维图形

7.2.1  三维曲线、面填色命令

命令1  comet3

功能  三维空间中的彗星图。彗星图为一个三维的动画图像,彗星头(一个小圆圈)沿着数据指定的轨道前进,彗星体为跟在彗星头后面的一段痕迹,彗星轨道为整个函数所画的实曲线。注意一点的是,该彗星轨迹的显示模式EraseMode为none,所以用户不能打印出彗星轨迹(只能得到一个小圆圈),且若用户调整窗口大小,则彗星会消失。

用法  comet3(z) 用向量z中的数据显示一个三维彗星

      comet3(x,y,z) 显示一个彗星通过数据x,y,z确定的三维曲线。

      comet3(x,y,z,p) 指定彗星体的长度为:p*length(y)。

例7-24

>>t = -20*pi:pi/50:20*pi;

>>comet3((cos(2*t).^2).*sin(t),(sin(2*t).^2).*cos(t),t);

图形的结果为图7-24。

命令2  fill3

功能  用指定的颜色填充三维多边形。阴影类型为平面型和Gouraud型。

用法  fill3(X,Y,Z,C) 填充由参数x,y和z确定多边形。若x,y或z为矩阵,fill3生成n个多边形,其中n为矩阵的列数。在必要的时候,fill3会自动连接最后一个节点和第一个节点。以便能形成封闭的多边形。参数c指定颜色,这儿c为引用当前色图的下标向量或矩阵。若c为行向量,则c的维数必须等于x的列数和y的列数,若c为列向量,则c的维数必须等于矩阵x的行数和y 的行数。

      fill3(X,Y,Z,ColorSpec) 用指定的颜色ColorSpec填充由x,y和z确定的多边形。

      fill3(X1,Y1,Z1,C1,X2,Y2,Z2,C2,…) 对多边形的不同区域用不同的颜色进行填充。

      fill3(…,'PropertyName',PropertyValue) 允许用户对特定的patch属性进行设置。

      h = fill3(…) 返回patch图形对象的句柄向量,每一块(patch)对应一个句柄。

运算规则:

1.若X,Y,Z为同型的矩阵,fill3生成X,Y,Z中相同位置的元素确定的顶点,每一列生成一个多边形。

2.若只有X,Y或Z为矩阵,则fill3由列向量参数生成可用的同型矩阵。

3.若用户对填充的颜色指定为ColorSpec,则fill3生成阴影类型为flat-shaded的多边形,且设置块(patch)的属性FaceColor为RGB颜色形式的矩阵。

4.若用户用矩阵C指定颜色,命令fill3通过坐标轴属性Clim来调整C中的元素,在引用当前色图之前,用于指定颜色坐标轴的参数比例。

5.若参数C为一行向量,命令fill3生成带平面阴影(flat-shaded)的多边形,同时设置补片对象的面颜色(FaceColor)属性为flat。向量c中的每一元素成为每一补片对象的颜色数据(CData)属性的值。

6.若参数C为一矩阵,命令fill3生成带内插颜色的多边形,同时设置多边形补片对象的FaceColor属性为interp。命令fill3采用对多边形顶点色图的下标指定的颜色采用线性内插算法,同时多边形的颜色采用对顶点颜色用内插算法得到的颜色。矩阵C的每一列元素变成对应补片对象的Cdata属性值。

7.若参数C为一列向量,命令fill3先复制C的元素,使之成为所需维数的矩阵,再按上面的方法6进行计算。

例7-25

>>X = 10*rand(4);Y=10*rand(4);Z=10*rand(4);

>>C = rand(4);

>>fill3(X,Y,Z,C)

图形结果可能为图7-25。

 

7.2.2  三维图形等高线

命令1  contour

功能  曲面的等高线图

用法  contour(z)  把矩阵z中的值作为一个二维函数的值,等高曲线是一个平面的曲线,平面的高度v是Matlab自动取的;

      contour(x,y,z)  (x,y)是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵。效果同上;

      contour(z,n)  画出n条等高线;

      contour(x,y,z,n)  画出n条等高线;

      contour(z,v)  在指定的高度v上画出等高线;

      contour(x,y,z,v)  同上;

      [c,h] = contour(…)  返回如同contourc命令描述的等高矩阵c和线句柄或块句柄列向量h,这些可作为clabel命令的输入参量,每条线对应一个句柄,句柄中的userdata属性包含每条等高线的高度值;

      contour(…,’linespec’)  因为等高线是以当前的色图中的颜色画的,且是作为块对象处理的,即等高线是一般的线条,我们可象画普通线条一样,可以指定等高线的颜色或者线形。

例7-26

    >>contour(peaks(40))

图形结果为图7-26。

 

命令2  clabel

功能  在二维等高线图中添加高度标签。在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。

用法  clabel(C,h) 把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度。

      clabel(C,h,v) 在指定的高度v上显示标签h,当然要对标签做恰当的处理。

      clabel(C,h,'manual') 手动设置标签。用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。

      clabel(C) 在从命令contour生成的等高线结构c的位置上添加标签。此时标签的放置的位置是随机的。

      clabel(C,v) 在给定的位置v上显示标签

      clabel(C,'manual') 允许用户通过鼠标来给等高线贴标签

例7-27

>>[x,y] = meshgrid(-2:.2:2); 

>>z = x.*y.*exp(-x.^2-y.^2);

>>[C,h] = contour(x,y,z);

>>clabel(C,h);

图形结果为图7-27。

 

命令3  contourc

功能  低级等高线图形计算命令。该命令计算等高线矩阵c,该矩阵可用于命令contour,contour3和contourf等。矩阵z中的数值确定平面上的等高线高度值,等高线的计算结果用由矩阵z维数决定的间隔的宽度。

用法  C = contourc(Z) 从矩阵z中计算等高矩阵,其中z的维数至少为2*2阶,等高线为矩阵z中数值相等的单元。等高线的数目和相应的高度值是自动选择的。

     C = contourc(Z,n) 在矩阵z中计算出n个高度的等高线。

     C = contourc(Z,v) 在矩阵z中计算出给定高度向量v上计算等高线,当然向量v的维数决定了等高线的数目。若只要计算一条高度为a的等高线,输入:contourc(Z,[a,a]);

     C = contourc(x,y,Z) 在矩阵z中,参量x,y确定的坐标轴范围内计算等高线;

     C = contourc(x,y,Z,n) 从矩阵Z中,参量x与y确定的坐标范围内画出n条等高线;

     C = contourc(x,y,Z,v) 从矩阵Z中,参量x与y确定的坐标范围内,画在v指定的高度上指定的等高线。

命令4  contour3

功能  三维空间等高线图。该命令生成一个定义在矩形格栅上曲面的三维等高线图。

用法  contour3(Z) 画出三维空间角度观看矩阵z的等高线图,其中z的元素被认为是距离xy平面的高度,矩阵z至少为2*2阶的。等高线的条数与高度是自动选择的。若[m,n]=size(z),则x轴的范围为[1:n],y轴的范围为[1:m]。

      contour3(Z,n) 画出由矩阵z确定的n条等高线的三维图。

      contour3(Z,v) 在参量v指定的高度上画出三维等高线,当然等高线条数与向量v 的维数相同;若想只画一条高度为h的等高线,输入:contour3(Z,[h,h])

      contour3(X,Y,Z)、contour3(X,Y,Z,n)、contour3(X,Y,Z,v) 用X与Y定义x-轴与y-轴的范围。若X为矩阵,则X(1,:)定义x-轴的范围;若Y为矩阵,则Y(:,1)定义y-轴的范围;若X与Y同时为矩阵,则它们必须同型。不论为哪种使用形式,所起的作用与命令surf相同。若X或Y有不规则的间距,contour3还是使用规则的间距计算等高线,然后将数据转变给X或Y。

      contour3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值