没有合适的资源?快使用搜索试试~ 我知道了~
基于Matlab的三维图绘制基础知识内容,可以参考学习理解绘制,含有程序注释理解,方便新手的学习与借鉴。
资源推荐
资源详情
资源评论
. 三维绘图
一.绘制三维曲线的基本函数
最基本的三维图形函数为 plot3,它将二维绘图函数 plot 的有关功能扩展到三维空间,可以用来绘制
三维曲线。其调用格式为:
plot3(x1,y1,z1,选项 1,x2,y2,z2,选项 2,…)
其中每一组 x,y,z 组成一组曲线的坐标参数,选项的定义和 plot 的选项一样。当 x,y,z 是同维向
量时,则 x,y,z 对应元素构成一条三维曲线。当 x,y,z 是同维矩阵时,则以 x,y,z 对应列元素
绘制三维曲线,曲线条数等于矩阵的列数。
例 513 绘制空间曲线
该曲线对应的参数方程为
t=0:pi/50:2*pi;
x=8*cos(t);
y=4*sqrt(2)*sin(t);
z=-4*sqrt(2)*sin(t);
plot3(x,y,z,'p');
title('Line in 3-D Space');
text(0,0,0,'origin');
xlabel('X');ylabel('Y');zlabel('Z');grid;
二.三维曲面
1.平面网格坐标矩阵的生成
当绘制 z=f(x,y)所代表的三维曲面图时,先要在 xy 平面选定一矩形区域,假定矩形区域为 D=
[a,b]×[c,d],然后将[a,b]在 x 方向分成 m 份,将[c,d]在 y 方向分成 n 份,由各划分点做平行轴的直
线,把区域 D 分成 m×n 个小矩形。生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用
有关函数绘图。
产生平面区域内的网格坐标矩阵有两种方法:
利用矩阵运算生成。
x=a:dx:b;
y=(c:dy:d)’;
X=ones(size(y))*x;
Y=y*ones(size(x));
经过上述语句执行后,矩阵 X 的每一行都是向量 x,行数等于向量 y 的元素个数,矩阵 Y 的每一列都
是向量 y,列数等于向量 x 的元素个数。
利用 meshgrid 函数生成;
x=a:dx:b;
y=c:dy:d;
[X,Y]=meshgrid(x,y);
语句执行后,所得到的网格坐标矩阵和上法,相同,当 x=y 时,可以写成 meshgrid(x)
2.绘制三维曲面的函数
Matlab 提供了 mesh 函数和 surf 函数来绘制三维曲面图。mesh 函数用来绘制三维网格图,而 surf
用来绘制三维曲面图,各线条之间的补面用颜色填充。其调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情况下,x,y,z 是维数相同的矩阵,x,y 是网格坐标矩阵,z 是网格点上的高度矩阵,c 用于
指定在不同高度下的颜色范围。c 省略时,Matlab 认为 c=z,也即颜色的设定是正比于图形的高度的。
这样就可以得到层次分明的三维图形。当 x,y 省略时,把 z 矩阵的列下标当作 x 轴的坐标,把 z 矩
阵的行下标当作 y 轴的坐标,然后绘制三维图形。当 x,y 是向量时,要求 x 的长度必须等于 z 矩阵
的列,y 的长度必须等于必须等于 z 的行,x,y 向量元素的组合构成网格点的 x,y 坐标,z 坐标则取
自 z 矩阵,然后绘制三维曲线。
例 515 用三维曲面图表现函数 :
为了便于分析三维曲面的各种特征,下面画出 3 种不同形式的曲面。
%program 1
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
mesh(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('mesh'); pause;
%program 2
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
surf(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('surf'); pause;
%program 3
x=0:0.1:2*pi;
[x,y]=meshgrid(x);
z=sin(y).*cos(x);
plot3(x,y,z);
xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');
title('plot3-1');grid;
程序执行结果分别如上图所示。从图中可以发现,网格图(mesh)中线条有颜色,线条间补面无颜
色。曲面图(surf)的线条都是黑色的,线条间补面有颜色。进一步观察,曲面图补面颜色和网格图
线条颜色都是沿 z 轴变化的。用 plot3 绘制的三维曲面实际上由三维曲线组合而成。可以分析 plot(x’,
y’,z’)所绘制的曲面的特征。
例 516 绘制两个直径相等的圆管相交的图形。
m=30;
z=1.2*(0:m)/m;
r=ones(size(z));
theta=(0:m)/m*2*pi;
x1=r'*cos(theta);y1=r'*sin(theta);%生成第一个圆管的坐标矩阵
z1=z'*ones(1,m+1);
x=(-m:2:m)/m;
x2=x'*ones(1,m+1);y2=r'*cos(theta);%生成第一个圆管的坐标矩阵
剩余14页未读,继续阅读
资源评论
Luty~
- 粉丝: 8
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功