《2022年matlab-三维曲面的自动绘制 .pdf》由会员分享,可在线阅读,更多相关《2022年matlab-三维曲面的自动绘制 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一、设计目的Matlab 有两类绘图命令, 一 类 是 直 接 对 图形 句柄 进 行 操 作 的低 层绘图命令,另一类是在低层命 令基 础上建 立起 来 的 高层 绘 图命 令。 高 层绘图 命令 简单 明了 、方便 高效 。利 用高 层 绘图函数,用户不需过多考虑绘图细节,只需给出一些基本参数就能得到所需图形。在三维曲面的绘制中,Matlab 提供了 meshgrid 函数、 mesh waterfall 、函数、 surf 函数、 Surfl 函数和 patch 函数。他们的使用方法基本相同。在Matlab 中,为了表现图形的显示效果,提 供 了 一 些 控 制 函 数 ,有视角的控制、
2、光度的控制、色彩的控制和透明度的控制等。在三维图形的最佳视觉效果中, Matlab 提供了两种方法:一是改变观看的角度(视角),二是旋转图形。视角由函数view 控制,旋转有两个指令: rotate和 rotate3d 。光照的控制主要有camlight指令、 lighting指令、 material 函数、 light函数、 lightangle函数。色彩控制包括颜色的向量表示、色图、三维表面图形的着色以及浓淡处理。图形的透明值用0和1之间的值表示,常用alpha 来说明。二、设计思路绘制所代表的三维曲面图, 先要在平面选定一矩形区域,假定矩形区域, 然后将在方向分成份,将在方向分成份,由各
3、划分点分别作平行于两坐标轴的直线,将区域 D 分成个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数求对应网格坐标的Z 矩阵。在 MATLAB 中,利用 meshgrid函数产生平面区域内的网格坐标矩阵。其格式为:x=a:d1:b;y=c:d2:d;X,Y= meshgrid(x,y) ;语句执行后,矩阵X 的每一行都是向量x,行数等于向量y 的元素的个数,矩阵 Y 的每一列都是向量y, 列数等于向量 x 的元素的个数。当 x=y 时, meshgrid函数可写成 meshgrid(x) 。当函数不能简单表示出来时,便只能用for 循环或 while 循环来计算 z 的
4、元素。 不过在很多情况下,可以按行或按列计算z,优势必须一个一个地计算z中的元素,这是用嵌套循环进行计算。三、设计程序及说明绘制三维曲面MATLAB 提供了 mesh函数和 surf 函数来绘制三维曲面图。 surf函数和 mesh函数的调用格式为:mesh(x,y,z,c) :画网格曲面,将数据点在空间中描出,并连成网格。surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。一般情况下, x,y,z 是维数相同的矩阵。 x,y 是网格坐标矩阵, z 是网格点上的高度矩阵, c 用于指定在不同高度下的颜色范围。1.1 绘制三维曲面图 z=sin(x+sin(y)-x/10。名师资料总
5、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 1 程序如下:x,y=meshgrid(0:0.25:4*pi); %在0,4pi0,4pi 区域生成网格坐标z=sin(x+sin(y)-x/10; mesh(x,y,z); axis(0 4*pi 0 4*pi -2.5 1); 图表一此外,还有带等高线的三维网格曲面函数meshc 和带底座的三维网格曲面函数meshz。其用法与 mesh类似,不同的是 meshc还在 xy 平面上绘制
6、曲面在z 轴方向的等高线, meshz还在 xy 平面上绘制曲面的底座。1.2 在 xy 平面内选择区域 -8,8-8,8,绘制函数 z= sinx2+y2x2 +y2 的 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); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
7、师精心整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 2 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))图表二标准三维曲面MATLAB提供了一些函数用于绘制标准三维曲面,还可以利用这些函数产生相应的绘图数据,常用于三维图形的演示。三维球面和柱面sphere函数和 cylinder 函数分别用与绘制三维球面和柱面。sphere函数的调用格式为:x,y,z=sphere(
8、n) 该函数将产生 (n+1)(n+1)矩阵 x、y、z,采用这三个矩阵可以绘制出圆心位于远点、 半径为 1 的单位球体。 若在该调用函数是不带输出参数,将直接绘制所需球面。 n 决定了球面的圆滑程度,其默认值为20。若 n 值取得较小,则将绘制出多面体表面图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 3 cylinder 函数的调用格式为:x,y,z=cylinder(R,n) 其中, R 是一个向量,存放柱面各个等间
9、隔高度上的半径,n 表示在圆柱圆周上有 n 个间隔点,缺省时表示有20 个间隔点。例如, cylinder(3)生成一个圆柱,cylinder(10,1)生成一个圆锥,而t=0:pi/100:4*pi;R=sin(t);cylinder(R,30) 生成一个正弦型柱面。另外, 生成矩阵的大小与 R 向量的长度及 n 有关。 其余与 sphere函数相同。2.1 球面的绘制。程序如下:x,y,z=sphere(30); surf(x,y,z); axis square; 运行结果如图所示图表三2.2 圆锥与圆柱的绘制。程序如下:subplot(1,2,1); cylinder(2); 名师资料总
10、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 12 页 - - - - - - - - - 4 subplot(1,2,2); cylinder(20,1); 运行结果如图所示图表四多峰函数曲面MATLAB 还有一个 peaks函数,称为多峰函数,常用语三为曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数:f(x,y)=3(1+x2)e- x 2 - (y+1)2 - 10(x5- x3- y5)e- x2- y2- 13 e- (x+1)2- y2 在矩形区域 -3,
11、3-3,3 的等分网格点上的函数值确定。例如: z=peaks(30); 将生成一个 30*30 矩阵 z,即分别沿 x 和 y 方向将区间 -3,3等分成 29 份,并计算这些网格点上的函数值。默认的等分数是48,即 p=peaks将生成一个 4949矩阵 p。也可以根据网格坐标矩阵x,y 重新计算函数值矩阵。例如:x,y=meshgrid(-5:0.1:5); z=peaks(x,y); 生成的数值距阵可以作为mesh、surf 等函数的参数而绘制出多峰函数曲面图。另外,若在调用 peaks函数时不带输出参数,则直接绘制出多峰函数曲面图。其他的三维曲面条形图、饼形图和填充图等特殊图像,还可
12、以以三维形式出现, 使用的函数分别是 bar3、pie3 和 fill3. 此外,瀑布图和三维曲面的等高线图也是常用图形之一。绘制瀑布图用 waterfall 函数,它的用法及图形效果与meshz函数相似,只是它的网格线是在 x 轴方向出现,具有瀑布效果。等高线图用contour3 绘制。4.1 绘制三位图形(1)绘制魔方阵的三位条形图。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 12 页 - - - - - - - - - 5 (2)以三维杆图形式绘制曲线y=2si
13、nx。(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) 运行结果如图所示图表五4.2 绘制多峰函数的瀑布图和等高线图。程序如下:subplot(1,2,1); X,Y,Z=pe
14、aks(30); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 12 页 - - - - - - - - - 6 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); 运行结果如图所示图表六四、设计体会通
15、过学习MATLAB和进行论文的写作,明白了MA TLAB 的功能是非常强大的。从中也认识到自己还有很多的不足,还须要进一步加强。以上其本上是针对MATLAB的程序设计进行论文,而实际上MATLAB的功能并不是局限于此,它还有很多功能,如在线性代数中的计算,数据处理与多项式计算,数值微分与常微分方程求解,符号计算,图形句柄,图形用户界面设计,MATLAB 应用接口等等。Matlab 功能十分强大,不仅有强大的运算功能,还有强大的绘图功能,也许我对它的了解只有一点点,可能还没有入门。虽然我学习Matlab 的时间还很短,但却让我了解到了它的强大的功能,我想,就算时间足够,老师也不可能把所有的东西都
16、讲解给我们, 因为一个软件的功能需要自己不断的探索,老师也不可能知道它全部的知识, 老师只是为我们指明方向, 最终的学习还要靠自己, 而且在摸索的路上,我们可能会发现更多学习的乐趣。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 12 页 - - - - - - - - - 7 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 12 页 - - - -
17、 - - - - - 8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 12 页 - - - - - - - - - 9 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 12 页 - - - - - - - - - 10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 12 页 - - - - - - - - - 11 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 12 页 - - - - - - - - -