视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
实验Matlab三维作图的绘制
2025-09-28 00:45:14 责编:小OO
文档
实验9三维绘图

一、实验目的

学会MATLAB软件中三维绘图的方法。

二、实验内容与要求

1.三维曲线图

格式一:plot3(X,Y,Z,S).

说明:当X,Y,Z均为同维向量时,则plot3描出点X(i),Y(i),Z(i)依次相连的空间曲线.若X,Y均为同维矩阵,X,Y,Z每一组相应列向量为坐标画出一条曲线,S为‘color﹣linestyle﹣marker’控制字符表1.6~表1.10.

【例 1.79】绘制螺旋线.

>>t=0:pi/60:10*pi;

>>x=sin(t);

>>y=cos(t);

>>plot3(x,y,t,’*-b’)

>>grid on

图形的结果如图1.16所示.

格式二:comet3(x,y,z).

说明:显示一个彗星通过数据x,y,z确定的三维曲线.

【例1.80】

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

>>comet3(sin(t),cos(t),t)

可见到彗星头(一个小圆圈)沿着数据指定的轨道前进的动画图象,彗星轨道为整个函数所画的螺旋线.

格式三:fill3(X,Y,Z,C)℅填充由参数X,Y,Z确定的多边形,参数C指定颜色.

图1.16例 1.79图形结果图 1.17例1.81图形结果

【例1.81】>>X=[2,1,2;9,7,1;6,7,0];

>>Y=[1,7,0;4,7,9;0,4,3];

>>Z=[1,8,6;7,9,6;1,6,1];

>>C=[1,0,0;0,1,0;0,0,1]

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

>>grid on

图形的结果如图1.17所示.

问题 1.30:图 1.17中每个三角形按什么规律画出的?(用X,Y,Z的对应列元素值为坐标画三角形)每个三角形内填充的颜色又有何规律?(用C 第i列元素值对应的颜色,从第i个三角形对应顶点向中心过渡)若C=[1,5,10;1,5,10;1,5,10],结果如何?

2.三维网格图

格式:mesh(X,Y,Z,C)℅画出颜色由C指定的三维网格图.

meshc(X,Y,Z,C)℅画出带有等高线的三维网格图.

meshz(X,Y,Z,C)℅画出带有底座的三维网格图.

说明:若X与Y均为向量,n=length(X),m=length(Y),Z必须满足[m,n]=size(Z),则空间中的点(X(j),Y(i),Z(i,j))为所画曲面网线的交点,X 对应于Z的列,Y对应于Z的行;若X,Y,Z均为同维矩阵,则空间中的点(X(i,j),Y(i,j),Z(i,j))为所画曲面的网线的交点;矩阵C指定网线的颜色,MATLAB对矩阵C中的数据进行线性处理,以便从当前色图中获得有用的颜色,若C缺省,网线颜色和曲面的高度Z相匹配.

在三维作图常用到命令meshgrid,其功能是生成二元函数z=f(x,y)中x-y平面上的矩形定义域中数据点矩阵X和Y.

格式:[X,Y]=meshgrid(x,y).

说明:输入向量x为x-y平面上x轴的值,向量y为x-y平面上y轴的值.输出矩阵X为x-y平面上数据点的横坐标值,输出矩阵Y为x-y平面上数据点的纵坐标值.

【例1.82】

>>x=1:4;

>>y=1:5;

>>[x,y]=meshgrid(x,y)

x=

1234

1234

1234

1234

1234

y=

1111

2222

3333

4444

5555

图1.18所示x-y 平面上的矩形定义域中20个数据点(星号点)的坐标就是有X ,Y 决定的。

【例1.83】绘出带有底座的马鞍面。

222245

x y Z =->>[x,y]=meshgrid(x,y);

>>z=(x.^2/4^2-y.^2/5^2);

>>x=-8:8;

>>y=-8:8;

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

>>Z=(x.^2/4^2-y.^2/5^2);

>>meshz(X,Y ,Z)

图形结果如图1.19所示。

图1.19例1.83图形结果

问题1.31:将mesh(X,Y,Z)改为mesh(x,y,Z),结果如何?(一样)曲面网格颜色有何规律?(从高到低按赤、橙、黄、绿、青、蓝、紫排列)

3.三维曲面图格式:surf(X,Y,Z,C)%画出颜色由C 指定的三维曲面图。

Surfc(X,Y,Z,C)%画出带有等高线的三维曲面图。

说明:surf 同mesh 命令用法和使用格式相同,不同之处在于绘得的图形是一个彩色曲面而

不是彩色网格。C 缺省时,数据Z 同时为曲面高度,也是颜色数据。

【例1.84】绘出带有等高线的理想气体状态方程曲面。

pv=nRT,n=2mol:

>>R=8.31;

>>n=2;

>>p=(1:20)*1e5;

>>v=(1:20)*1e-3;

>>[p,v]=meshgrid(p,v);

>>T=p.*v/n/R;

>>surfc(p,v,T);

>>view(45,30)

图形结果如图1.20所示。

4.三维旋转曲面图格式:[X ,Y ,Z]=cylinder(r,n).

说明:返回一母线向量为r 、高度为1的旋转曲面x,y,z 轴的坐标值,旋转轴为z 轴,旋转曲面的圆周有指定的n 个距离相同的点。用户可以用命令surf 或命令mesh 画出旋转曲面图像。

【例1.85】绘制一个旋转抛物面22

()z x y =+/60.

>>z=0:20;

>>R=(60*z).^(1/2);>>[X,Y,Z]=cylinder(R,40);

>>mesh(X,Y,Z)

图形结果如图 1.21所示。

图1.20例1.84图形结果图1.21例1.85的图形结果

5.三维球面图格式:[X ,Y ,Z]=sphere(n).

说明:生成三维直角坐标系中的单位球体坐标,该单位球体有个面。该命令没有画图,只有返回矩阵,用户可以用命令surf(X,Y,Z)或mesh(X,Y,Z)画出球体。

【例1.86】

>>[X,Y,Z]=sphere;

>>mesh(X,Y,Z)

图形结果如图 1.22

所示。

图1.22例1.86图形结果

三、练习和思考1画出如下三维网格曲面图。

四、提高内容

1.矢量图格式:quiver(X,Y,U,V)%在由向量X 和Y 决定的每一个平面点上画出由U,V 决定的向量.

quiver(…,scale)%自动对向量的长度进行处理,若scale=2,则向量长度伸长2倍,若scale=0,则如实画出向量图.

【例1.87】:给出点电荷的电场强度分布图;

2222,4/Y

X R R Q E +==πε,

设,,14/U E Q -∇==由πε求出 E.

>>[X,Y]=meshgrid(-19:2:19);

>>R=(X.^2+Y.^2).^(1/2);

>>U=1./R;

>>[EX,EY]=gradient(U);

>>quiver(X,Y,-EX,-EY,0.5)

>>axis square 结果如图1.23所示.

图:1.23例1.87图形结果

注意:gradient 为梯度算符∇,电场强度的大小图中

是用箭头长短表示的.

格式一:contour(x,y,z,n).

说明:(x,y)是平面z=0上点的坐标矩阵,二维函数z为相应点的高度值矩阵,等高曲线是一个平面的曲线,n是等高线条数.

[c,h]=contour(…)%返回contourc命令描述的等高矩阵c和句柄列向量h,这些可作为clabel命令的输入参量,每条线对应一个句柄.

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

【例1.88】

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

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

>>contour(x,y,z,8);

图形结果如图1.24所示.

格式二:clabel(C,h).

说明:在从命令contour生成的二维等高线结构C的位置上添加标签h.

【例1.】

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

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

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

>>clabel(C,h);

1.24格式一图形结果图1.25格式二图形结果

格式三:contour(X,Y,Z,n)

说明:用X与Y定义x,y轴的范围,画出由矩阵Z确定的n条等高线的三维图.

【例1.90】

>>[X,Y]=meshgrid([-2:0.25:2]);

>>Z=X.*exp(-X.^2-Y.^2);

>>contour3(X,Y,Z,30)

图形结果如图1.26所示.

3.三维曲面法线图

格式:surfnorm(X,Y,Z)

说明:画出一曲面与它的法线图,其中,矩阵Z用于指定曲面的高度值,X与Y为向量或矩阵,用于定义曲面的x与y部分.

【例1.91】

>>[x,y,z]=cylinder(1:10);

>>surfnorm(x,y,z)

图1.26格式三图形结果图1.27例 1.91图形结果四.三维饼图

格式:pie3(X,explode).

说明:x中的某一部分可以从三维饼形图中分离出来,explode是一个与x同型的向量或矩阵,explode中非零的元素对应x中从饼形图中分离出来的分量.

【例1.92】

>>x=[1,3,0.5,2.5,2]

x =

1.0000 3.00000.5000

2.5000 2.0000

>>ex=[0,1,0,0,0]

ex =

1000

>>pie3(x,ex)图形如图1.28所示.

图1.28例 1.92图形结果

5.直角坐标,柱坐标,球坐标之间的转换柱坐标和直角坐标之间的转换.格式:),(],[2r theta cart pol y x =%将二维极坐标转换为直角坐标.

),(],[2y x pol cart r theta =%将二维直角坐标转换为极坐标

),,(],,[2z r theta cart pol z y x =%将三维柱坐标转换为直角坐标

),,(],,[2

z y x pol cart z r theta =%将三维直角坐标转换为柱坐标【例1.93】

>>theta=0:pi/30:2*pi;

>>ro=sin(theta);

>>[t,r]=meshgrid(theta,ro);

>>z=r.*t;

>>[x,y,z]=pol2cart(t,r,z);

>>mesh(x,y,z)

图形结果如图1.29所示.

球坐标和直角坐标之间的转换.

格式:),,(],,[2

r phi theta cart sph z y x =%将三维球坐标转换为直角坐标.)

,,(],,[2z y x sph cart r phi theta =%将三维直角坐标转换为球坐标.【例1.94】

>>ph=theta.^2-theta;

>>[t,p]=meshgrid(theta,ph);

>>r=t.*p;

>>[x,y,z]=sph2cart(t,p,r);

>>mesh(x,y,z)

图形结果如图1.30所示.

图1.29例1.93图形结果图1.30例1.94图形结果下载本文

显示全文
专题