Matlab绘图(一二三维) (5)

此外,还有两个和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\');

推荐:

三.三维图形的精细处理

一.视点处理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzxys.html