Matlab绘图-很详细,很全面(3)

2019-08-17 12:58

title ('两个等直径圆管的交线'); hold off

例517 分析由函数 构成的曲面形状与平面z=a的交线。

此外,还有两个和mesh函数相似的函数,即带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz,其用法和mesh类似。不同的是,meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

surf函数也有两个类似的函数,即具有等高线的曲面函数surfc和具有光照效果的曲面函数surfl。

例518 在xy平面内选择[-8, 8]×[-8, 8]绘制函数, [x,y]=meshgrid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); meshc(x,y,z); title('meshc'); subplot(2,2,2); meshz(x,y,z); title('meshz'); subplot(2,2,3); surfc(x,y,z); title('surfc'); subplot(2,2,4); surfl(x,y,z); title('surfl'); 3.标准三维曲面

Matlab提供了一些函数用于绘制标准三维曲面,这些函数可以产生相应的绘图数据,常用于三维图形的演示。如,sphere函数和cylinder函数分别用于绘制三维球面和柱面。sphere函数的调用格式为: [x,y,z]=sphere(n);

该函数将产生(n+1)×(n+1矩阵x,y,z 。采用这三个矩阵可以绘制出圆心位于原点、半径为1的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。n决定了球面的圆滑程度,其默认值为20。若n值取的比较小,则绘制出多面体的表面图。 cylinder函数的调用格式为: [x,y,z]=cylinder(R,n)

其中R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。如:cylinder(3)生成一个圆柱,cylinder([10,1])生成一个圆锥。而t=0:pi/100:4*pi; R=sin(t); cylinder(R,30);生成一个正弦圆柱面。

另外Matlab还提供了一个peaks函数,称为多峰函数,常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数:

在矩形区域[-3 3]×[-3 3]的等分网格点上的函数值确定。如:z=peaks(30) 将生成一个30×30矩阵, 例519 绘制标准三维曲面图形 t=0:pi/20:2*pi;

[x,y,z]=cylinder(2+sin(t),30); subplot(1,3,1); surf(x,y,z); subplot(1,3,2); [x,y,z]=sphere; surf(x,y,z); subplot(1,3,3); [x,y,z]=peaks(30); meshz(x,y,z);

3.其他三维图形。

在介绍二维图形时,曾经提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,其函数分别为bar3,stem3,pie3和fill3。 bar3绘制三维条形图,常用格式为: bar3(y); bar3(x,y)

在第一种格式中,y的每个元素对应于一个条形。第二种格式在x指定的位置上绘制y中元素的条形图。

stem3函数绘制离散序列数据的三维杆图,常用格式为: stem3(z) stem3(x,y,z)

第一种格式将数据序列z表示为从xy平面向上延伸的杆图,x和y自动生成。第二种格式在x和y指定的位置上绘制数据序列z的杆图,x,y,z的维数要相同。 pie3函数绘制三维饼图,常用格式为: pie3(x)

x为向量,用x中的数据绘制一个三维饼图。

fill3函数可在三维空间内绘制出填充过的多边形,常用格式为: fill3(x,y,z,c)

用x,y,z做多边形的顶点,而c指定了填充的颜色。 例520 绘制三维图形。

1绘制魔方阵的三维条形图2以三维杆图形式绘制曲线y=2sinx 3已知x =

[2347,1827,2043,3025] ,绘制三维饼图 4用随机的顶点坐标值画出5个黄色三角形 subplot(2,2,1); bar3(magic(4)); subplot(2,2,2); y=2*sin(0:pi/10:2*pi); stem3(y); subplot(2,2,3);

pie3([2347,1827,2043,3025]); subplot(2,2,4);

fill3(rand(3,5),rand(3,5),rand(3,5),'y');

除了上面讨论的三维图形外,常用的图形还有瀑布图和三维曲面的等高线图。绘制瀑布图用waterfall函数,用法和meshz函数相似,只是它的网格线在x轴方向出现,具有瀑布效果。等高线图分二维和三维两种形式,分别使用函数contour和contour3绘制。 例521 绘制多峰函数的瀑布图和等高线图。

subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z);

xlabel('XX');ylabel('YY');zlabel('ZZ'); subplot(1,2,2);

contour3(X,Y,Z,12,'k');%其中12代表高度的等级数 xlabel('XX');ylabel('YY');zlabel('ZZ');

三.三维图形的精细处理

一.视点处理

在日常生活中,从不同的角度观察物体,所看到的物体形状是不一样的。同样,从不同视点绘制的三维图形的形状也是不一样的。视点位置可由方位角和仰角表示。 方位角

Matlab提供了设置视点的函数view,其调用格式为: view(az,el)

其中az为方位角,el为仰角,它们均以度为单位。系统默认的视点定义为方位角为-37.5度,仰角30度。

例522 从不同视点绘制多峰函数曲面。

subplot(2,2,1);mesh(peaks); view(-37.5,30); title('1');

subplot(2,2,2);mesh(peaks); view(0,90); title('2');

subplot(2,2,3);mesh(peaks); view(90,0); title('3');

subplot(2,2,4);mesh(peaks); view(-7,-10); title('4');

二.色彩处理 三.图形的裁剪处理

Matlab定义的NaN常数可以用于表示那些不可使用的数据,利用这些特性,可以将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。例如,要削掉正弦波顶部或底部大于0.5的部分,可使用下面的程序。 x=0:pi/10:4*pi; y=sin(x);

i=find(abs(y)>0.5); x(i)=NaN; plot(x,y);

例524 绘制两个球面,其中一个在另一个里面,将外面的球裁掉一部分,以便能看到里面的球。

[x,y,z]=sphere(25); %生成外面的大球 z1=z;

z1(:,1:4)=NaN;%将大球裁去一部分 c1=ones(size(z1));

surf(3*x,3*y,3*z1,c1); %生成里面的小球 hold on z2=z;

c2=2*ones(size(z2));

c2(:,1:4)=3*ones(size(c2(:,1:4))); surf(1.5*x,1.5*y,1.5*z2,c2); colormap([0 1 0;0.5 0 0;1 0 0]); grid on hold off

色图中使用三种颜色,外面的球是绿色,里面的球采用深浅不同的两种红色。

四.隐函数作图

如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算函数向量,从而用plot等函数绘制出图形。但是当函数采用隐函数形式时,如: ,则很难利用上述方法绘制图形。Matlab提供了一个ezplot函数绘制隐函数图形。用法如下: ① 对于函数f=f(x),ezplot的调用格式为: ezplot(f),在默认区间(-2pi,2pi)绘制图形。 ezplot(f,[a,b]),在区间(a,b)绘制 ② 对于隐函数f=f(x,y),ezplot的调用格式为;

ezplot(f),在默认区间(-2pi,2pi),(-2pi,2pi)绘制f(x,y)=0的图形。 ezplot(f,[xmin,xmax,ymin,ymax]);在区间 绘制图形。 ezplot(f,[a,b]),在区间(a,b),(a,b)绘制 ③ 对于参数方程x=x(t),y=y(t),ezplot函数的调用格式为: ezplot(x,y),在默认区间 绘制x=x(t),y=y(t)图形。

ezplot(x,y,[tmin,tmax]),在区间(tmin,tmax)绘制x=x(t),y=y(t)图形。 例525 隐函数绘图举例。

subplot(2,2,1);

ezplot('x^2+y^2-9');axis equal; subplot(2,2,2);

ezplot('x^3+y^3-5*x*y+1/5') subplot(2,2,3);

ezplot('cos(tan(pi*x))',[0,1]); subplot(2,2,4);

ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]);

其他隐函数绘图还有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。


Matlab绘图-很详细,很全面(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011年农机化工作会议讲话(修改稿)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: