使用matlab绘制三维图形的方法
matlab的空间三维作图与符号作图
![matlab的空间三维作图与符号作图](https://img.taocdn.com/s3/m/01928668ba1aa8114431d9a9.png)
三、加密:取更二多维的点作图举例
>> x=[0:pi/20:2*pi]; >> y=sin(x); >> plot(x,y,'.')
11
三维曲线作图过程
x t
例:绘制三维螺线:
y
sin( t )
z cos(t)
( 0 < t < 20 )
先画点,后连线
1) 计算空间离散点的坐标 (x,y,z) 2) 将这些点按顺序连接即可
调用 Matlab 的绘图命令作出曲面图形
怎样得到网格矩阵 X 和 Y ?
—— 利用 Matlab 的网格生成函数 meshgrid
5
网格生成函数
网格生成函数 [X,Y] = meshgrid(x,y) x,y 是分别对 x 变化区域和 y 变化区域进行分割后
得到的向量 X, Y 即为我们所需要的网格矩阵
>> x= -8:0.5:8; >> y= -8:0.5:8; >> [X,Y]=meshgrid(x,y); >> r=sqrt(X.^2+Y.^2)+eps; >> Z=sin(r)./r; >> mesh(X,Y,Z)
+eps?
1) x 与 y 可以取不同的步长 2) 注意这里采用的数组运算
最后一个命令能否改为 mesh(Z)?
gray cool
线性灰色系 hot 青和洋红色系 pink
黑红黄白色系 柔和色系
26
Matlab 符号作图
27
二维曲线 ezplot
二维曲线绘图命名: ezplot ezplot(f(x),[a,b])
matlab中mesh用法
![matlab中mesh用法](https://img.taocdn.com/s3/m/9235434b77c66137ee06eff9aef8941ea66e4b5b.png)
在MATLAB中,mesh函数主要用于绘制三维网格图形。
其基本用法如下:1. mesh(x, y, z):绘制由x、y和z指定的三维网格图。
其中,x和y可以是向量或矩阵,z是长度为x和y的乘积的向量。
x和y对应于z的列和行。
如果x和y都是向量,则它们的长度分别表示x和y的采样点数。
如果x和y 都是矩阵,则它们的大小分别表示x和y的采样点数。
例1:matlabx = 1:5;y = 1:5;z = x .* y;mesh(x, y, z);2. mesh(x, y, z, c):绘制由x、y、z指定的三维网格图,并使用由矩阵c 指定的颜色。
矩阵c的行数和列数应与z的行数和列数相同。
例2:matlabx = 1:5;y = 1:5;z = x .* y;c = ones(5, 5);mesh(x, y, z, c);3. mesh(x, y, z, 'PropertyName', PropertyValue):设置指定的属性(PropertyName)的属性值(PropertyValue),可以在同一语句中对多个属性进行设置。
例3:matlabx = 1:5;y = 1:5;z = x .* y;mesh(x, y, z, 'FaceColor', 'r', 'EdgeColor', 'b');此外,还有几个与mesh类似的函数:1. meshgrid(x, y):生成坐标矩阵X和Y,用于绘制二维网格图形。
例4:matlabx = 1:3;y = 1:4;[X, Y] = meshgrid(x, y);Z = X .+ Y;mesh(X, Y, Z);2. meshz(x, y, z):绘制由x、y和z指定的三维网格图,表面颜色由z 决定,背景颜色透明。
例5:matlabx = 1:5;y = 1:5;z = x .* y;meshz(x, y, z);3. meshc(x, y, z):绘制由x、y和z指定的三维网格图,同时显示等高线。
实验Matlab三维作图地绘制
![实验Matlab三维作图地绘制](https://img.taocdn.com/s3/m/396dde86524de518974b7d19.png)
实验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 =1 2 3 41 2 3 41 2 3 41 2 3 41 2 3 4y =1 1 1 12 2 2 23 3 3 34 4 4 45 5 5 5图1.18所示x-y 平面上的矩形定义域中20个数据点(星号点)的坐标就是有X ,Y 决定的。
数学2-用MATLAB绘制二维-三维图形(lq)
![数学2-用MATLAB绘制二维-三维图形(lq)](https://img.taocdn.com/s3/m/5cad3c37783e0912a2162ad2.png)
[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,
列j,和元素的值v(按所在位置先后 顺序输出)
A=[3 2 0; -5 0 7; 0 0 1]; [i,j,v]=find(A)
i= 1 2 1 2 3 j= 1 1 2 3 3 v = 3 -5 2 7 1
[X,Y]=meshgrid(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: z=f(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat %去除网格线。
例2-7画出矩形域[-1,1]×[-1,1]旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; [X,Y]=meshgrid(x,y); %生成矩形区[-1,1]×[-1,1]的网格坐标矩阵 Z=X.^2+Y.^2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲面z=x2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
用matlab绘制二维、三维图形
2.1二维图形的绘制
2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。
使用该命令,软件将开辟一个图形窗口,并 画出连接坐标面上一系列点的连线。
例2-5 采用不同形式(直角坐标、参数、极坐标),画出 单位圆x2+y2=1的图形。
分析:对于直角坐标系方程,y= 1 x2,对于参数方 程x=cost,y=sint,t[0,2 pi] ,利用plot(x,y)命令可以实现。 而在极坐标系中单位圆为r=1(1+0t),利用polar(t,r)命 令实现。
第5章matlab绘制二维图形及三维图形的方法
![第5章matlab绘制二维图形及三维图形的方法](https://img.taocdn.com/s3/m/f24e34c8aa00b52acfc7ca94.png)
实验四
专业:电子信息工程2班姓名:李书杰学号:3121003210
一、实验目的
1.掌握绘制二维图形及三维图形的方法。
2.掌握图形控制与修饰处理的方法。
3.了解图像处理及动画制作的基本方法。
二、实验内容
1.绘制下列图形曲线。
(1)y=x-x^3/3! (2)x^2+2Y^2=64
解:程序如下
2.设y=1/(1+e^-t),-pi<=t<=pi,在同一个图形窗口中采用子图的形式绘制条形图、阶梯图、杆图和对数坐标等不同图形,并对不同图形加标注说明。
解:程序如下
3.绘制下列极坐标图。
(1)ρ=5cosθ+4 (2)γ=5sin^2φ/cosφ,-π/3<φ<π/3 解:程序如下
思考练习:
2.绘制下列曲线
(1)y=1/2πe^(-x^2/2) (2)x=tsint y=tcost
解:程序如下
(1)
结果如下:
(2)
结果如下:
3.在同一坐标中绘制下列两条曲线并标注两曲线交叉点。
(1)y=2x-0.5
(2)x=sin(3t)cost
Y=sin(3t)sint
解:程序如下
4.分别用plot和fplot函数绘制y=sin(1/x)的曲线,分析两曲线的差别。
解:程序如下
结果如下:
5.绘制下列极坐标图:
(1)p=12/sqrt(θ) (2)γ=3asinφcosφ/(sin^3φ+cos^3φ)解:程序如下
结果如下:。
使用matlab绘制三维图形的方法
![使用matlab绘制三维图形的方法](https://img.taocdn.com/s3/m/6d1d86e7f8c75fbfc77db20e.png)
使用matlab 绘制三维图形的方法三维曲线plot3函数与plot 函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n),其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。
当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例 绘制三维曲线。
程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t);z=t.*sin(t).*cos(t); plot3(x,y,z);gridtitle('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z'); 如下图:XLine in 3-D SpaceYZ三维曲面1.产生三维数据在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。
其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y);语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。
2.绘制三维曲面的函数surf 函数和mesh 函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z 是维数相同的矩阵。
x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。
例 绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标 z=sin(x+sin(y))-x/10; mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]); 如下图:-2.5-2-1.5-1-0.500.51此外,还有带等高线的三维网格曲面函数meshc 和带底座的三维网格曲面函数meshz 。
matlab实验三二维图形和三维图形的创建
![matlab实验三二维图形和三维图形的创建](https://img.taocdn.com/s3/m/9e4496367375a417866f8f88.png)
实验三:二维图形和三维图形的创建一、实验目的1.掌握二维图形的绘制。
2.掌握图形的标注3.了解三维曲线和曲面图形的绘制。
二、实验内容1.生成1×10维的随机数向量a,在同一幅图片上分别用红、黄、蓝、绿色绘出其连线图、脉冲图、阶梯图和条形图,并分别标出标题“连线图”、“脉冲图”、“阶梯图”、“条形图”。
a=rand(1,10);figure(1);subplot(221);plot(a,'r');title('连线图');subplot(222);stem(a,'y');title('脉冲图');subplot(223);stairs(a,'b');title('阶梯图');subplot(224);bar(a,'g');title('条形图');2.绘制向量x=[1 3 0.5 2.5 2]的饼形图,并把3对应的部分分离出来。
x=[1 3 0.5 2.5 2];pie(x,[0 3 0 0 0]);3.用hold on命令在同一个窗口绘制曲线y=sin(t),y1=sin(t+0.25)y2=sin(t+0.5),其中t=[0 10]。
t=0:pi/100:10y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y);hold on;plot(t,y1);hold on;plot(t,y2);hold on;4.绘制曲线 x=tcos(3t)y=tsin2t 其中-π≤t≤π,步长取π/100。
要求:要图形注解、标题、坐标轴标签, 并在曲线上截取一点,将相对应的坐标值文本标注出来(ginput())。
;t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*(sin(t.^2));plot(t,x,'g-',t,y,'r-');title('曲线');xlabel(t,'Fontsize',12);ylabel('幅值','Fontsize',12);[x y]=ginput(1)5.在三个子图像中,分别绘制三维曲线,三维曲面,三维网格的半径为6,坐标为(6,7,6)的由900个面构成的球面(sphere()),对每个图形标注标题6.(1)绘一个圆柱螺旋线(形似弹簧)图。
使用matlab绘制三维图形的方法
![使用matlab绘制三维图形的方法](https://img.taocdn.com/s3/m/a03a2c4e53ea551810a6f524ccbff121dd36c535.png)
使用matlab绘制三维图形的方法要使用MATLAB绘制三维图形,首先需要了解MATLAB中的三维绘图函数和绘图选项。
下面将介绍一些常用的绘制三维图形的方法。
1.绘制基本的三维图形要绘制基本的三维图形,可以使用以下函数:- plot3(函数:用于在三维坐标系中绘制线条。
- scatter3(函数:用于在三维坐标系中绘制散点图。
- surf(函数:用于绘制三维曲面图。
- mesh(函数:用于绘制三维网格图。
- bar3(函数:用于绘制三维条形图。
- contour3(函数:用于绘制三维等高线图。
例如,下面的代码演示了如何使用plot3(函数绘制一个三维线条图:```x = linspace(0, 2*pi, 100);y = sin(x);z = cos(x);plot3(x, y, z, 'LineWidth', 2);xlabel('X');ylabel('Y');zlabel('Z');title('3D Line Plot');```2.添加颜色和纹理在绘制三维图形时,可以使用颜色和纹理来增加图形的信息。
MATLAB 提供了一系列函数来处理颜色和纹理,如:- colormap(函数:用于设置颜色映射。
- caxis(函数:用于设置坐标轴范围。
- shading(函数:用于设置颜色插值方法。
- texturemap(函数:用于设置纹理映射方法。
例如,下面的代码展示了如何使用纹理映射来绘制一个球体:```[X, Y, Z] = sphere(50);C = colormap('jet');surface(X, Y, Z, 'FaceColor', 'texturemap', 'CData', C);axis equal;```3.绘制多个数据集要在同一张图中绘制多个数据集,可以使用hold on和hold off命令。
MATLAB中的三维图形绘制与动画制作技巧
![MATLAB中的三维图形绘制与动画制作技巧](https://img.taocdn.com/s3/m/0dbf1685c67da26925c52cc58bd63186bceb92e2.png)
MATLAB中的三维图形绘制与动画制作技巧引言MATLAB是一种强大的科学计算软件,广泛应用于工程、物理、数学等各个领域。
其中,三维图形绘制和动画制作是其功能的重要一部分。
本文将深入探讨MATLAB中三维图形绘制与动画制作的技巧,并给出一些实用的示例。
一、三维图形绘制1. 坐标系的设定在绘制三维图形之前,我们需要设定坐标系。
通过使用MATLAB的figure函数和axes函数,我们可以创建一个三维坐标系,并设置其属性,如坐标轴的范围、标签等。
2. 点的绘制在三维图形中,最基本的图元是点。
通过scatter3函数,我们可以绘制出一系列点的三维分布情况。
可以通过设置点的大小、颜色、透明度等属性,增加图像的美观性。
3. 曲线的绘制MATLAB提供了多种绘制曲线的函数,如plot3、line、quiver等。
通过这些函数,我们可以绘制各种样式的曲线,例如直线、曲线、矢量、流线等。
我们可以根据需要设置线条的样式、颜色、宽度等属性。
4. 曲面的绘制除了曲线,我们还可以绘制三维曲面。
通过函数mesh、surf和contour,我们可以绘制出具有平滑外形的曲面。
可以通过设置颜色映射和透明度等属性,使得曲面具有更加细腻的外观。
二、动画制作1. 创建动画对象要制作动画,我们需要先创建一个动画对象。
通过使用MATLAB的videoWriter函数,我们可以创建一个视频文件,并设置其参数,如帧率、分辨率等。
2. 绘制关键帧动画的核心是绘制一系列关键帧,并在每一帧之间进行插值。
通过在每一帧中修改图形对象的属性,我们可以实现对象的平移、旋转和缩放等变换。
通过MATLAB提供的getframe函数,我们可以将当前图像存储为一个帧对象。
3. 帧之间的插值在关键帧之间,我们需要进行插值,以平滑动画的过渡。
通过使用MATLAB 的linspace函数,我们可以生成两个关键帧之间的若干插值。
然后,我们可以在每个插值处更新图形对象的属性,从而实现动画效果。
matlab教程三维图形
![matlab教程三维图形](https://img.taocdn.com/s3/m/0c92c027b80d6c85ec3a87c24028915f804d84cb.png)
第十八章三维图形为了显示三维图形,MATLAB提供了各种各样的函数。
有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。
另外,颜色可以用来代表第四维。
当颜色以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----色彩,而且也不是基本数据的内在属性,所以它称作伪彩色。
为了简化对三维图形的讨论,对颜色的介绍推迟到下一章。
在这一章,主要讨论绘制三维图形的基本概念。
18.1 函数plot3plot3命令将绘制二维图形的函数plot的特性扩展到三维空间。
函数格式除了包括第三维的信息(比如Z方向)之外,与二维函数plot相同。
plot3一般语法调用格式是plot3(x1,y1,z1,S1,x2,y2,z2,S2,…),这里x n,y n和z n是向量或矩阵,S n是可选的字符串,用来指定颜色、标记符号和/或线形。
总的来说,plot3可用来画一个单变量的三维函数。
如下为一个三维螺旋线例子:» t=0:pi/50:10*pi;» plot3(sin(t),cos(t),t)» title( ‘Helix‘ ),xlabel( ‘sint(t)‘ ),ylabel(‘cos(t)‘ ),zlabel(‘ t‘ )» text(0,0,0,‘ Origin‘ )» grid» v = axisv =-1 1 -1 1 0 40输出见图18.1.图18.1 螺旋线图从上例可明显看出,二维图形的所有基本特性在三维中仍都存在。
axis命令扩展到三维只是返回Z轴界限(0和40),在数轴向量中增加两个元素。
函数zlabel用来指定z轴的数据名称,函数grid在图底绘制三维网格。
函数test(x,y,z,‘ string‘ )在由三维坐标x,y,z所指定的位置放一个字符串。
另外,子图和多图形窗口可以直接应用到三维图形中。
在最后一章可以看到,通过指定plot命令的多个参量或使用hold命令,可以把多条直线或曲线重叠画出。
matlab三维绘图
![matlab三维绘图](https://img.taocdn.com/s3/m/29ad6f13e87101f69e3195f8.png)
三维线图函数
● 例 题 : 绘 制 三 维 的 螺 旋 曲 线 图 , 其 中 x=sint, y=cos(2t),z=sint+cost,t的区间为[0,2π]。 程序如下: t=0:pi/50:2*pi; plot3(sin(t),cos(2*t),sin(t)+cos(t),'r','Linewidth',2) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
●例题:绘制多个球体,各球的中心离原点的距离由x、y、z 值决定。 程序如下: [x,y,z]=sphere; surf(x,y,z) hold on surf(x+3,y-2,z) surf(x,y+1,z-3) daspect([1 1 1]) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
三维网格图
●所谓的网格图,是指把相邻的数据点连接起来形 成的网状曲面。利用在x-y平面的矩形网格点上的 z轴坐标值,MATLAB定义了一个网格曲面。三维 网格图的形成原理为:在x-y平面上指定一个长方 形区域,采用与坐标轴平行的直线将其分格;计 算矩形网格点上的函数值,即z轴的值,得到三 维空间的数据点;将这些数据点分别用于x-z或者 平行面内的曲线和处于y-z或者平行面内的曲线连 接起来,即形成网格图。网格图对显示大型的数 值矩阵很有用处。
模块十 三维图形绘制
◆三维线图 ◆三维多边形 ◆三维网格图 ◆三维曲面图 ◆三维柱面绘图函数
三维线图函数
● plot3():主要用于绘制三维曲线,该函数的 调用格式同plot()函数类似。 ● 调用格式为: plot3(X, Y, Z, LineSpec,’ PropertyName’, Property Value) 调用该函数,绘制出通过一系列坐标为X, Y, Z 指定点的一条曲线。其中,X, Y, Z为第一到第 三维数据,可以是向量,也可以是矩阵,但必 须尺寸相等。
matlab 三维立体绘图
![matlab 三维立体绘图](https://img.taocdn.com/s3/m/b4d205f3f61fb7360b4c651e.png)
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-7:plotxyz04.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-12:plotxyz09.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
整理:基本三维立体绘图指令的列表
类别 指令 mesh, ezmesh 网状图 meshc, ezmeshc meshz surf, ezsurf 曲面图 surfc, ezsurfc surfl 说明 立体网状图 网状图加上等高线 网状图加上“围裙”(或“舞 台”) 三维曲面图 曲面图加上等高线 曲面图加上光源
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改变位置及颜色 end end
MATLAB 程序设计入门篇:三维立体绘图
NCU CM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
y = 31− x) e (
2 −x2−( y+1)2
x 3 5 −x2−y2 1 −(x+1)2−y2 −10( − x − y )e − e 5 3
matlab三维绘图命令和演示
![matlab三维绘图命令和演示](https://img.taocdn.com/s3/m/3b4766c4250c844769eae009581b6bd97f19bc6b.png)
三维绘图2 基本XYZ立体绘图命令●mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵mesh(xx, yy, zz); % 画出立体网状图●surf和mesh的用法类似:x=linspace(-2, 2, 25); % 在x轴上取25点y=linspace(-2, 2, 25); % 在y轴上取25点[xx,yy]=meshgrid(x, y); % xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是25x25的矩阵surf(xx, yy, zz); % 画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) - 1/3*exp(-(x+1).^2 - y.^2)●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks, 20);●contour画出曲面等高线在XY平面的投影:contour(peaks, 20);plot3可画出三度空间中的曲线:t=linspace(0,20*pi, 501);plot3(t.*sin(t), t.*cos(t), t);亦可同时画出两条三度空间中的曲线:t=linspace(0, 10*pi, 501);plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);三维绘图的主要功能:绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图绘制三维曲面图、柱面图和球面图绘制三维多面体并填充颜色(一)三维线图plot3 ——基本的三维图形指令调用格式:plot3(x,y,z) —— x,y,z是长度相同的向量plot3(X,Y,Z) —— X,Y,Z是维数相同的矩阵plot3(x,y,z,s) ——带开关量plot3(x1,y1,z1,’s1’,x2,y2,z2,’s2’,…)二维图形的所有基本特性对三维图形全都适用。
MATLAB画三维图
![MATLAB画三维图](https://img.taocdn.com/s3/m/bce48b4a2b160b4e767fcfc7.png)
MATLAB画三维函数图下面将这几天所做的图像及程序小记一下(望大虾指教)一、螺旋线1.静态螺旋线a=0:0.1:20*pi;h=plot3(a.*cos(a),a.*sin(a),2.*a,'b','linewidth',2);axis([-50,50,-50,50,0,150]);grid onset(h,'erasemode','none','markersize',22);xlabel('x轴');ylabel('y轴');zlabel('z轴');title('静态螺旋线');2.动态螺旋线t=0:0.1:10*pi;i=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none'); grid onaxis([-2 2 -2 2 0 35])for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)endtitle('动态螺旋线');(图略)3.圆柱螺旋线t=0:0.1:10*pi;x=r.*cos(t);y=r.*sin(t);z=t;plot3(x,y,z,'h','linewidth',2);grid onaxis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱螺旋线')二、旋转抛物面b=0:0.2:2*pi;[X,Y]=meshgrid(-6:0.1:6);Z=(X.^2+Y.^2)./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('旋转抛物面')或直接用:ezsurfc('(X.^2+Y.^2)./4')三、椭圆柱面load clownezsurf('(2*cos(u))','4*sin(u)','v',[0,2*pi,0,2*pi])view(-105,40) %视角处理shading interp %灯光处理colormap(map) %颜色处理grid on %添加网格线axis equal %使x,y轴比例一致xlabel('x轴');ylabel('y轴');zlabel('z轴'); %添加坐标轴说明title('椭圆柱面') %添加标题四、椭圆抛物面b=0:0.2:2*pi;[X,Y]=meshgrid(-6:0.1:6);Z=X.^2./9+Y.^2./4;meshc(X,Y,Z);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('椭圆抛物面')或直接用:ezsurfc('X.^2./9+Y.^2./4')五、'双叶双曲面ezsurf('8*tan(u)*cos(v)','8.*tan(u)*sin(v)','2.*sec(u)',[-pi./2,3*pi./2,0,2*pi]) axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');title('双叶双曲面')六、双曲柱面load clownezsurf('2*sec(u)','2*tan(u)','v',[-pi/2,pi/2,-3*pi,3*pi]) hold on %在原来的图上继续作图ezsurf('2*sec(u)','2*tan(u)','v',[pi/2,3*pi/2,-3*pi,3*pi]) colormap(map)shading interpview(-15,30)axis equalgrid onaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');title('双曲柱面')七、双曲抛物面(马鞍面)[X,Y]=meshgrid(-7:0.1:7);Z=X.^2./8-Y.^2./6;meshc(X,Y,Z);view(85,20)axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('双曲抛物面')或直接用:ezsurfc('X.^2./8-Y.^2./6')八、抛物柱面[X,Y]=meshgrid(-7:0.1:7);Z=Y.^2./8;h=mesh(Z);rotate(h,[1 0 1],180) %旋转处理%axis([-8,8,-8,8,-2,6]);axis('square')xlabel('x轴');ylabel('y轴');zlabel('z轴'); title('抛物柱面')或直接用:ezsurfc('Y.^2./8')九、环面ezmesh('(5+2*cos(u))*cos(v)','(5+2*cos(u))*sin(v)','2*sin(u)',[0,2*pi,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('环面')十、椭球ezsurfc('(5*cos(u))*sin(v)','(3*sin(u))*sin(v)','4*cos(v)',[0,2*pi,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('椭球')十一、单叶双曲面ezsurf('4*sec(u)*cos(v)','2.*sec(u)*sin(v)','3.*tan(u)',[-pi./2,pi./2,0,2*pi]) axis equalgrid onxlabel('x轴');ylabel('y轴');zlabel('z轴');title('单叶双曲面')十二、旋转单叶双曲面load clownezsurf('8*sec(u)*cos(v)','8.*sec(u)*sin(v)','2.*tan(u)',[-pi./2,pi./2,0,2*pi]) colormap(map)view(-175,30)%alpha(.2) %透明处理axis equalgrid onaxis squarexlabel('x轴');ylabel('y轴');zlabel('z轴');title('旋转单叶双曲面')十三、圆柱面subplot(1,2,1)ezsurf('(2*cos(u))','2*sin(u)','v',[0,2*pi,0,2*pi]) grid onshading interpaxis equalxlabel('x轴');ylabel('y轴');zlabel('z轴');title('圆柱面')subplot(1,2,2)cylinder(30)shading interpaxis squaretitle('调用cylinder函数所得圆柱面')下面给出用colormap()改变图像颜色的例子:(用了灯光效果"shading interp") colormap(); %hot/cool/copper/gray/hsv/spring/summer/winter...colormap(hsv)colormap(hot)colormap(gray)colormap(cool)colormap(copper)下面做了旋转("view([ ])")、灯光(“shading interp”)、透明(“alpha()”)处理:。
MATLAB三维图形绘制
![MATLAB三维图形绘制](https://img.taocdn.com/s3/m/891e0bd32af90242a995e50a.png)
%绘制极坐标图
说明:theta为相角,radius为离原点的距离。
• 【】求传递函数为
G(s) s(0的.51s对1)数幅频特性曲线,
横坐标为w,按对数坐标。
Aw=1./(w.*sqrt((0.5*w).^2+1)); Lw=20*log10(Aw); semilogx(w,Lw) title('对数幅频特性曲线')
• colormap 色图函数—— 色图设定函数
• colormap 色图函数(m)——产生m×3的色图矩阵 缺省64×3。
颜色
Black(黑) White(白) Red(红) Green(绿) Blue(蓝) Yellow(黄) Magenta(品红) Cyan(青) Gray(灰) Dark red(暗红) Copper(铜色) Aquamarine(碧绿)
【上例续】使用消息框显示当阻尼系数大于1时的警告信 息,如下图。
>>msgbox('阻尼系数输入范围出错','警告','warn')
〔2〕其它对话框
【例续】使用警告对话框显示当阻尼系数大于1时的警告 信息。 >>warndlg('阻尼系数输入范围出错','警告')
【例续】使用出错提示框显示当阻尼系数小于0时出错 信息。 >>errordlg('阻尼系数输入出错','出错')
说明:az表示方位角(azimuth),el表示俯仰角(elevation)
°,el=30°
五、色彩的控制
1.色图(colormap)
(1) RGB三元组
RGB三元数组每行表示一种色彩,数组元素R、G、B在 0~1之间取值,分别表示红、绿、蓝基色的相对亮度,如 下表所示。
使用matlab函数构建三维立方体的几种方法
![使用matlab函数构建三维立方体的几种方法](https://img.taocdn.com/s3/m/315dd806a66e58fafab069dc5022aaea998f41ec.png)
使用 matlab 函数构建三维立方体的几种方法 matlab 是一种功能强大的科学运算软件,其基于矩阵的运算单位和和演算纸式 的编程方式,配合强大的各类工具箱函数,极大简化了编程难度而又不失应用的 灵活性,使 matlab 非常适合进行探索性的研究工作。
matlab 提供了丰富的绘图 函数,能够快速高效地画出各类图形,在通用编程软件中功能领先。
在 matlab 中,我们可以使用多种思路实现三维形体的构建,本文以构建一个三 维立方体为例详细介绍 matlab 的用法,充分说明 matlab的编程特点与构想方法, 以供参考。
1、 三维形体的点阵表示方法。
一个三维形体可以看成由无数个散点有规律集合而成。
利用 scatte3r()三维散 点绘图函数绘制足够多的点,就可以实现三维空间的形体表示。
如图 1. 使用三 重循环,用 1000 点实现一个 10*10*10 的立方体。
此功能也可用 plot3()实现. for i=0:10; for j=0:10; for k=0:10; scatter3(i,j,k); hold on; end end end 使用点阵描绘三维形体适合于比较简单有规律的目标,如果点数过多速度将较 慢,一般较少应用。
但是在由已知模型向未知模型转化的情况下,该方法十分有 效。
可以直接利用点对点的对应关系作出未知三维形体的空间结构。
2. 三维形体的线阵表示方法 三维形体可以看成由多个截面集合而成,而面可以由线集合。
本例中使用plot3 绘制线段,组合成面,循环绘制多个面,就可以实现三维空间的形体表示。
如图 2. 使用三重循环,用 100 个面,每个面 100 条线,组成了一个立方体。
x=linspace(0,1); y=linspace(0,1); [X,Y]=meshgrid(x,y); for i=1:100 Z=linspace(i,i); plot3(X,Y,Z);hold on end 此法作出立方体三维效果好,速度较快,接近实体。
Matlab绘制三维曲线
![Matlab绘制三维曲线](https://img.taocdn.com/s3/m/22308bf1a417866fb84a8ea7.png)
Matlab绘制三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
MATLAB三维绘图
![MATLAB三维绘图](https://img.taocdn.com/s3/m/88c6d24c876fb84ae45c3b3567ec102de3bddf5e.png)
第7讲 绘制三维图(第5章MATLAB 绘图)目的:1.掌握绘制三维图形的方法。
2.掌握绘制图形的辅助操作。
一、绘图时点坐标矩阵的生成。
绘图函数使用描点法绘图,所以在绘图前,需要建立空间点的概念,空间中的点需要三个坐标(,,)x y z ,matlab 使用三个矩阵来存储点的三个坐标,一个矩阵(比如A )存储点的x 坐标,一个矩阵(比如B )存储点的y 坐标,一个矩阵(比如C )存储点的z 坐标。
其中A 、B 、C 三矩阵是同型矩阵。
例如设矩阵123112X ⎛⎫⎪= ⎪ ⎪⎝⎭,014221Y −⎛⎫ ⎪= ⎪ ⎪⎝⎭,510113Z ⎛⎫ ⎪= ⎪ ⎪−⎝⎭则,matlab 绘图函数将绘制点()()1,0,5,(2,1,1),(3,4,0),,2,1,3−共6个点。
如果点的坐标没有规律那么我们需要手工输入坐标矩阵。
如果点的坐标有规律,那么我们可以使用矩阵运算或者matlab 产生点的函数来生成坐标矩阵。
例如,假设空间中点的纵横坐标如下图所示:图中点的坐标有规律:横坐标是(1,2,3,4),纵坐标是(1,2,3),所以可以使用如下方法得到点的坐标矩阵。
方法一:>> a=[1,2,3,4];b=[1,2,3];i=ones(1,3);j=ones(1,4);>>x=i’ *a; y=b‘ *j;方法二:使用matlab系统函数meshgrid(推荐使用)>> a=[1,2,3,4]; b=[1,2,3];>>[x,y]=meshgrid(a,b) % 该函数生成的x,y矩阵和方法一相同。
------------------我是华丽分割线-----------------除meshgrid外,还可以用peaks、cylinder函数等生成点坐标矩阵。
peaks(n): 本身是一个创建具有多个峰值的曲面图,例如:>> peaks(30) %产生的图如下:在matlab中可以使用,例如:命令[x,y,z]=peaks(30)取出曲面点的三个坐标矩阵x,y,z;[a,b]=peaks(30)取出曲面点的前两坐标矩阵x,y;%可以用逻辑运算a==x,b==y验证注意:命令a=peaks(30)取出的a不是曲面点的x坐标,而是点的z坐标;可以用二维绘图函数scatter(x,y)绘制散点图观察取出的坐标点:>>[x,y]=peaks(8);>>scatter(x,y)另一个可以用来取坐标点的函数是sphere(n),命令sphere(n):绘制一个具有n个纵列的单位球面。
Matlab中的3D图形绘制方法
![Matlab中的3D图形绘制方法](https://img.taocdn.com/s3/m/ab80e46bf11dc281e53a580216fc700abb6852c2.png)
Matlab中的3D图形绘制方法Matlab是一种常用于科学计算和数据可视化的高级编程语言和开发环境。
它的强大功能使得它成为工程师、科学家和研究人员的首选工具之一。
其中一个引人注目的特点是它对3D图形的支持。
在本文中,我们将探讨Matlab中的一些3D图形绘制方法。
Matlab提供了多种绘制3D图形的函数和工具。
最基本的方法是使用“plot3”函数绘制三维数据。
这个函数接受x、y和z三个参数,分别表示三维坐标系上的数据点。
通过给定一系列的数据点,我们可以在三维空间中绘制出线条或散点图。
这种方法适用于简单的数据展示和初步的分析。
除了基本的线条和散点图,Matlab还提供了一些更高级的3D图形绘制函数,如“surface”和“mesh”。
这些函数可以用来绘制三维曲面和网格图。
例如,我们可以使用“surface”函数绘制一个三维山丘的图像,其中x和y轴表示地面上的位置,z轴表示地面的高度。
通过调整x、y和z的数值,我们可以创建出各种形状和复杂度的三维表面。
Matlab还在其图形库中提供了许多其他类型的3D图形绘制函数。
例如,“bar3”函数可以用来绘制三维柱状图,其中x和y轴表示不同的类别,z轴表示各类别的数值。
这种图形可以更直观地展示不同类别之间的关系和差异。
类似地,“contour”函数可以用来绘制三维的等值线图,用于可视化函数的等值线和等高面。
另一个值得一提的技术是使用Matlab的“patch”函数绘制复杂的三维图形。
这个函数可以用来创建和修改三维物体的表面,例如绘制球体、立方体和多面体等。
我们可以通过更改物体的属性和位置来构建各种形状和几何体。
这种灵活性使得“patch”函数在计算机图形学和动画领域中得到广泛应用。
除了这些函数和工具,Matlab还允许用户通过编写自定义的脚本和函数来实现更高级的3D图形绘制。
例如,我们可以使用Matlab的3D绘图工具箱中的一些高级函数和方法来创建特定类型的三维图形,如体积渲染、光线追踪和动画效果等。
Matlab中的三维图形绘制技巧
![Matlab中的三维图形绘制技巧](https://img.taocdn.com/s3/m/4e5fa6c3aff8941ea76e58fafab069dc502247c2.png)
Matlab中的三维图形绘制技巧由于Matlab的强大数据分析和可视化功能,它被广泛应用于许多领域,包括物理学、生物学和工程学。
其中,三维图形绘制是Matlab中一项重要而有趣的技巧。
本文将介绍几种用Matlab绘制三维图形的技巧,并探讨一些常见问题的解决方法。
一、基础知识在开始之前,我们需要了解一些Matlab中三维图形绘制的基础知识。
Matlab 提供了许多函数来绘制三维图形,包括plot3、surf和mesh等函数。
其中,plot3函数用于绘制三维曲线,surf函数用于绘制三维曲面,而mesh函数则可以绘制网格曲面。
此外,Matlab还提供了一些辅助函数来设置坐标轴、标题和标签等。
二、绘制三维曲线首先,我们来学习如何使用plot3函数绘制三维曲线。
该函数接受三个向量作为输入,分别表示曲线上点的x、y和z坐标。
以绘制一个螺旋线为例,我们可以定义一个角度向量theta和对应的x、y和z坐标向量。
然后,使用plot3函数绘制曲线。
```matlabtheta = linspace(0, 10*pi, 1000);x = cos(theta);y = sin(theta);z = linspace(0, 10, 1000);plot3(x, y, z);```通过调整theta的范围和分辨率,我们可以绘制出不同形状和密度的螺旋线。
此外,我们还可以使用颜色、线型和标记等选项来自定义曲线的外观。
三、绘制三维曲面接下来,我们将介绍如何使用surf函数绘制三维曲面。
与绘制曲线类似,surf 函数也接受三个坐标向量作为输入,并将其解释为曲面上的点。
此外,我们还需要定义一个与坐标向量相同维度的矩阵来表示曲面的高度。
以下代码演示了如何绘制一个带有Z轴高度信息的平面曲面。
```matlabx = linspace(-5, 5, 100);y = linspace(-5, 5, 100);[X, Y] = meshgrid(x, y);Z = peaks(X, Y);surf(X, Y, Z);```在此示例中,我们使用meshgrid函数生成X和Y坐标矩阵,并使用peaks函数生成与X和Y相对应的高度矩阵Z。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用matlab 绘制三维图形的方法三维曲线plot3函数与plot 函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n),其中每一组x,y,z 组成一组曲线的坐标参数,选项的定义和plot 函数相同。
当x,y,z 是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z 是同维矩阵时,则以x,y,z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例 绘制三维曲线。
程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t);z=t.*sin(t).*cos(t); plot3(x,y,z);gridtitle('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z'); 如下图:XLine in 3-D SpaceYZ三维曲面1.产生三维数据在MATLAB 中,利用meshgrid 函数产生平面区域内的网格坐标矩阵。
其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y);语句执行后,矩阵X 的每一行都是向量x ,行数等于向量y 的元素的个数,矩阵Y 的每一列都是向量y ,列数等于向量x 的元素的个数。
2.绘制三维曲面的函数surf 函数和mesh 函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z 是维数相同的矩阵。
x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于指定在不同高度下的颜色范围。
例 绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标 z=sin(x+sin(y))-x/10; mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]); 如下图:-2.5-2-1.5-1-0.500.51此外,还有带等高线的三维网格曲面函数meshc 和带底座的三维网格曲面函数meshz 。
其用法与mesh 类似,不同的是meshc 还在xy 平面上绘制曲面在z 轴方向的等高线,meshz 还在xy 平面上绘制曲面的底座。
例 在xy 平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。
程序如下:[x,y]=meshgrid(-8:0.5:8);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); mesh(x,y,z);title('mesh(x,y,z)') subplot(2,2,2); meshc(x,y,z);title('meshc(x,y,z)') subplot(2,2,3); meshz(x,y,z)title('meshz(x,y,z)') subplot(2,2,4); surf(x,y,z);title('surf(x,y,z)') 如下图:10mesh(x,y,z)10-101meshc(x,y,z)10meshz(x,y,z)10-101surf(x,y,z)3.标准三维曲面sphere 函数的调用格式为:[x,y,z]=sphere(n):generates three (N+1)-by-(N+1) matrices so that SURF(X,Y,Z) produces a unit sphere. cylinder 函数的调用格式为:[x,y,z]= cylinder(R,n),其中r 为圆周半径,n 为组成圆周的点数。
MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。
例绘制标准三维曲面图形。
程序如下:t=0:pi/20:2*pi;[x,y,z]= cylinder(2+sin(t),30);subplot(2,2,1);surf(x,y,z);subplot(2,2,2);[x,y,z]=sphere;surf(x,y,z);subplot(2,1,2);[x,y,z]=peaks(30);surf(x,y,z);如下图:51 -1 01其他三维图形在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。
bar3函数绘制三维条形图,常用格式为:bar3(y)bar3(x,y)stem3函数绘制离散序列数据的三维杆图,常用格式为:stem3(z) stem3(x,y,z)pie3函数绘制三维饼图,常用格式为: pie3(x)fill3函数等效于三维函数fill ,可在三维空间内绘制出填充过的多边形,常用格式为:fill3(x,y,z,c)例 绘制三维图形:(1) 绘制魔方阵的三维条形图。
(2) 以三维杆图形式绘制曲线y=2sin(x)。
(3) 已知x=[2347,1827,2043,3025],绘制饼图。
(4) 用随机的顶点坐标值画出五个黄色三角形。
程序如下: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' )010202-202100.51例 绘制多峰函数的瀑布图和等高线图。
程序如下:subplot(1,2,1); [X,Y,Z]=peaks(30); waterfall(X,Y,Z)xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); subplot(1,2,2);contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数 xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');-55Z -a x i sZ -a x i s X -axis图形修饰处理 视点处理MATLAB 提供了设置视点的函数view ,其调用格式为: view(az,el)其中az 为方位角,el 为仰角,它们均以度为单位。
系统缺省的视点定义为方位角-37.5°,仰角30°。
例 从不同视点绘制多峰函数曲面。
程序如下:subplot(2,2,1);mesh(peaks);view(-37.5,30); %指定子图1的视点 title('azimuth=-37.5,elevation=30') subplot(2,2,2);mesh(peaks);view(0,90); %指定子图2的视点 title('azimuth=0,elevation=90') subplot(2,2,3);mesh(peaks);view(90,0); %指定子图3的视点title('azimuth=90,elevation=0') subplot(2,2,4);mesh(peaks);view(-7,-10); %指定子图4的视点 title('azimuth=-7,elevation=-10')50azimuth=-37.5,elevation=3020406001020304050azimuth=0,elevation=90204060-10-50510azimuth=90,elevation=0-10-50510azimuth=-7,elevation=-10色彩处理1.颜色的向量表示MATLAB 除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。
向量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,称为RGB 三元组。
2.色图色图(Color map)是MATLAB 系统引入的概念。
在MATLAB 中,每个图形窗口只能有一个色图。
色图是m×3 的数值矩阵,它的每一行是RGB 三元组。
色图矩阵可以人为地生成,也可以调用MATLAB 提供的函数来定义色图矩阵。
3.三维表面图形的着色三维表面图实际上就是在网格图的每一个网格片上涂上颜色。
surf 函数用缺省的着色方式对网格片着色。
除此之外,还可以用shading 命令来改变着色方式。
shading faceted 命令将每个网格片用其高度对应的颜色进行着色,但网格线仍保留着,其shading flat 命令将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。
shading interp 命令在网格片内采用颜色插值处理,得出的表面图显得最光滑。
颜色是黑色。
这是系统的缺省着色方式例 3种图形着色方式的效果展示。
程序如下:[x,y,z]=sphere(20);colormap(copper);subplot(1,3,1);surf(x,y,z);axis equalsubplot(1,3,2);surf(x,y,z);shading flat;axis equalsubplot(1,3,3);surf(x,y,z);shading interp;axis equal111光照处理MATLAB提供了灯光设置的函数,其调用格式为:light('Color',选项1,'Style',选项2,'Position',选项3) 光照处理后的球面。
程序如下:[x,y,z]=sphere(20);subplot(1,2,1);surf(x,y,z);axis equal;light('Posi',[0,1,1]);shading interp;hold on;plot3(0,1,1,'p');text(0,1,1,' light'); subplot(1,2,2);surf(x,y,z);axis equal;light('Posi',[1,0,1]);shading interp;hold on;plot3(1,0,1,’p’);text(1,0,1,’light’);plot3(1,0,1,'p');text(1,0,1,'light');11图形的裁剪处理例4-22 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。