MATLAB 三维图形的绘制

MATLAB 三维图形的绘制三维图形的绘制 最常用的三维绘图是绘制三维曲线图、三维网格图、三维曲面图,相应的matlab命令分别为plot3、mesh、surf。 plot3 plot3(X1,Y1,Z1,lineSpec)   lineSpec定义曲线线型、颜色、数据点,与plot相同。其中X1,Y1, Z1的维数必须相同,也就是说对于X1中的任一个点,在与Y1、Z1相应的位置也必须存在一个值,这样

三维图形的绘制

 

最常用的三维绘图是绘制三维曲线图、三维网格图、三维曲面图,相应的matlab命令分别为plot3meshsurf

 

plot3

 

plot3(X1,Y1,Z1,lineSpec)   lineSpec定义曲线线型、颜色、数据点,与plot相同。其中X1,Y1, Z1的维数必须相同,也就是说对于X1中的任一个点,在与Y1Z1相应的位置也必须存在一个值,这样在空间中才会存在这个点。

(1)X1,Y1, Z1为长度相同的向量时,plot3将以X1,Y1, Z1相应位置上的点为xyz轴的坐标值绘制三维曲线。

(2)X1,Y1, Z1m×n的矩阵时,plot3将得到n条曲线,其中第i条曲线为分别以X1,Y1, Z1矩阵的第i列分量为xyz轴的坐标值,但好像m=1时,不管n为多少,都只得到一条曲线。


2.x1,y1,z1都为1×2矩阵,x2,y2,z2都为2×1矩阵,x3,y3,z3都为2×2矩阵。

>> t=[0:pi/100:3*pi];
>> x1=[t t];
>> y1=[cos(t) 2*cos(t)];
>> z1=[(cos(t)).^2+(sin(t)).^2 (cos(t)).^2+(sin(t)).^2+2];
>> subplot(1,3,1)
>> plot3(x1,y1,z1,'+-b');
>> x2=[t;t];
>> y2=[cos(t);2*cos(t)];
>> z2=[(cos(t)).^2+(sin(t)).^2;(cos(t)).^2+(sin(t)).^2+2];
>> subplot(1,3,2);
>> plot3(x2,y2,z2,'+-b');
>> x3=[t 3*t;2*t 4*t];
>> y3=[cos(t) 3*cos(t);2*cos(t) 4*cos(t)];
>> z3=[(cos(t)).^2+(sin(t)).^2 (cos(t)).^2+(sin(t)).^2+3;(cos(t)).^2+(sin(t)).^2+2 (cos(t)).^2+(sin(t)).^2+4];
>> subplot(1,3,3); 
>>  plot3(x3,y3,z3,'+-b');

MATLAB 三维图形的绘制


x1,y1,z1都为1×2矩阵,先画第一列的曲线(按t从小到大),然后再画第二列(按t从小到大)。

x2,y2,z2都为2×1矩阵,只需要画第一列的曲线,先画第一行第一列,然后第二行第一列,按着t从小到大重复上面步骤。

x3,y3,z3都为2×2矩阵,先画第一列的曲线,先画第一行第一列,然后第二行第一列,按着t从小到大重复上面步骤。第二列同第一列相同,如上图有两条曲线。


mesh

mesh命令用于绘制三维网格图形,将相邻的点用直线连接构成一个网格图,网格节点是z中的数据点。

 

mesh(X,Y,Z,C)

其中C用于定义颜色,若没有定义C,则mesh(X,Y,Z)绘制的颜色随着Z的大小成比例变化。

X,Y必须都为向量,若X,Y的长度分别为m,n,则[m,n]=size(Z),此时网格线中每个节点的坐标为(X(i),Y(j),Z(i.j)).

 

mesh(Z)

Z必须是一个矩阵,不可以是标量或向量,将(i,j)作为Z(i,j)x,y轴坐标值。mesh(Z)=(m,n),X=1:m,Y=1:n.

 

surf

surf命令得到的是着色的三维表面图,着色的方法是对每一个网格依据网格所代表的节点着色。 

surf(X,Y,Z,C)

surf(X,Y,Z)

surf(Z)

各个参数意义与mesh相同。

2.对相同的数据节点分别用surfmesh绘图,结果如下。

>> x=0:0.2:2*pi;
>> y=0:0.2:2*pi;
>> z=sin(x')*cos(2*y);
>> subplot(1,2,1);
>> surf(x,y,z);
>> subplot(1,2,2);
>> mesh(x,y,z);

MATLAB 三维图形的绘制

另外:

1.meshgrid 将给定的区域按一定的方式绘制成平面网格。

[X,Y]=meshgrid(x,y)

其中x,y用来定义划分区域,也可以定义划分方法。X,Y用来存储划分后的数据。

2.meshc(x,y,z) 

调用方式与mesh一致,用于在mesh命令下绘制的三维曲面图下画出等高线。

3.meshz(x,y,z)

调用方式与mesh一致,在mesh作用之后,增加绘制边界的功能。

4.surfc(x,y,z) 

调用方式与surf一致,用于在surf命令下绘制的三维曲面图下画出等高线。

5.surfl(x,y,z)

调用方式与surf一致,用来绘制光照效果表面图。

今天的文章MATLAB 三维图形的绘制分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24767.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注