Matlab三维作图 matlab三维网线图

Matlab 三维作图1

画一个可透视的椭球


figure

a = 15;
b = 10;
c = 5;

Matlab三维作图 matlab三维网线图
k = 5;
n = 2^k-1;
theta = pi*(-n:2:n)/n;
phi = (pi/2)*(-n:2:n)'/n;
X = a*cos(phi)*cos(theta);
Y = b*cos(phi)*sin(theta);
Z = c*sin(phi)*ones(size(theta));
surf(X,Y,Z,'FaceColor','interp',...
'EdgeColor','none',...
'FaceLighting','phong')

axis tight
camlight left
alpha(.33) % 产生透视效果

这是在7.1.上画的图:


....................

建立空间等高线[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)
h = findobj('Type','patch');
set(h,'LineWidth',2)
title(' 空间等高线 ')

..................

§4.2 三维作图§4.2.1 mesh(Z)语句

mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数.

显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.

下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:

x=-8:.5:8;

y=x';

x=ones(size(y))*x;

y=y*ones(size(y))';

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

mesh(z) %% 试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?

各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.

图4.2.1三维消隐图

第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离).用mesh方法结果如上.

另外,上述命令系列中的前4行可用以下一条命令替代:

[x, y]=meshgrid(-8:0.5:8)

§4.2.2与mesh相关的几个函数

(1)meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能.下面来看一个meshc的例子:

[x,y]=meshgrid([-4:.5:4]);

z=sqrt(x.^2+y.^2);

meshc(z) %% 试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?

我们可以得到图形:

图4.2.2.1 meshc图

地面上的圆圈就是上面图形的等高线.

(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽.例如:

[x,y]=meshgrid([-4:.5:4]);

z=sqrt(x.^2+y.^2);

meshz(z) %% 试运行meshz(x,y,z),看看与meshz(z)有什么不同之处?

我们得到图形:

图4.2.2.2 meshz图

§4.2.3其它的几个三维绘图函数

(1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:

[x,y,z]=sphere(n)

此函数生成三个(n+1)×(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面.

[x,y,z]=sphere 此形式使用了默认值n=20

sphere(n) 只绘制球面图,不返回值.

运行下面程序:

sphere(30);

axis square;

我们得到球体图形:

图4.2.3.1 球面图

若只输入sphere画图,则是默认了n=20的情况.

(2) surf函数也是Matlab中常用的三维绘图函数.其调用格式如下:

surf(x,y,z,c)

输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面.Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色.若不输入c,则默认为c=z.

我们看下面的例子:

%绘制地球表面的气温分布示意图.

[a,b,c]=sphere(40);

t=abs(c); %求绝对值

surf(a,b,c,t);

axis equal

colormap('hot')

我们可以得到图形如下:

图4.2.3.2 等温线示意图

§4.2.4图形的控制与修饰

(1)坐标轴的控制函数axis,调用格式如下:

axis([xmin,xmax,ymin,ymax,zmin,zmax])

用此命令可以控制坐标轴的范围.

与axis相关的几条常用命令还有:

axis auto 自动模式,使得图形的坐标范围满足图中一切图元素

axis equal 严格控制各坐标的分度使其相等

axis square 使绘图区为正方形

axis on 恢复对坐标轴的一切设置

axis off 取消对坐标轴的一切设置

axis manual 以当前的坐标限制图形的绘制

(2)grid on 在图形中绘制坐标网格.

grid off 取消坐标网格.

(3)xlabel, ylabel, zlabel分别为x轴, y轴, z轴添加标注.title为图形添加标题.

以上函数的调用格式大同小异,我们以xlabel为例进行介绍:

xlabel('标注文本','属性1','属性值1','属性2','属性值2',…)

这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等.

例如:

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

R=sqrt(x.^2+y.^2);

z=-cos(R);

mesh(x,y,z)

xlabel('xin[-4,4]','fontweight','bold');

ylabel('yin[-4,4]','fontweight','bold');

zlabel('z=-cos(sqrt(x^2+y^2))','fontweight','bold');

title('旋转曲面','fontsize',15,'fontweight','bold','fontname','隶书');

图4.2.4.1添加标注

....................


......................

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/325345.html

更多阅读

matlab如何绘制三维曲面图 opengl 绘制三维曲面

matlab如何绘制三维曲面图——简介许多时候需要绘制三维曲面图,比如知道三维数据(x,y,z),如何绘制出三维图像?下面,小编以一个小例子演示基本操作,请看下文:matlab如何绘制三维曲面图——工具/原料Matlab 7.0及以上matlab如何绘制三维曲

美图日志:二〇一三年五月图

美图日志:二〇一三年五月(图)2013年5月1日,马尼拉,一名负责安保的警察走过堆满了盾牌和头盔的总统府前。当地工人联盟聚集在马尼拉的街道上,要求提高待遇、降低物价老秋:跟工人对话的是盾牌和头盔2013年5月2日,香港尖沙咀,一只巨型充气橡皮

Pooh竟然是这个意思!中产阶级的小熊维尼(图) poohlo 维尼乐

2004-02-24 14:26:39    一多年前的一天,碰到一个英国朋友艾兰,他说前些日子感冒发烧,辗转床榻,觉得非常难受;病中拿起他小时候最爱读的《小熊维尼》翻阅一过,忽然内心觉得莫大的快慰。小熊维尼的英文名字是Winnie-the-Pooh,维尼译的是

Matlab/Simulink中bode图的画法 matlab bode图

在Matlab中,大多时候,我们都是用M语言,输入系统的传递函数后,用bode函数绘制bode图对系统进行频率分析,这样做,本人觉得效率远不如Simulink建模高。如何在Matlab/Simulink中画bode图,以前也在网上查过些资料,没看到太多有用的参考。今天做助

转载 matlab三维绘图 matlab三维绘图实例

原文地址:matlab三维绘图作者:水墨鱼三维绘图的主要功能:绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图绘制三维曲面 图、柱面图和球面图绘制三维多面体并填充颜色(一)三维线图plot3——基本的三维图形指令调用格式:plot3(x,y,z)—

声明:《Matlab三维作图 matlab三维网线图》为网友墨天空分享!如侵犯到您的合法权益请联系我们删除