视频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-24 06:39:37 责编:小OO
文档
三维图形

一. 三维曲线

 选项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对应列元素绘制三维曲线,曲线条数等于矩阵列数。

Example1.绘制三维曲线。

程序如下:

clf,

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');

grid on;

所的图形如下:

二. 三维曲面

1. 产生三维数据

   在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。

  语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。

2. 绘制三维曲面的函数

    surf函数和mesh函数        

example2. 绘制三维曲面图z=sin(x+sin(y))-x/10。

程序如下:

clf,

[x,y]=meshgrid(0:0.25:4*pi); 产生平面坐标区域内的网格坐标矩阵

z=sin(x+sin(y))-x./10;

surf(x,y,z);

axis([0 4*pi 0 4*pi -2.5 1]);

title('surf函数所产生的曲面');

figure;

mesh(x,y,z);

axis([0 4*pi 0 4*pi -2.5 1]);

title('mesh函数所产生的曲面');

Example3.绘制4种三维曲面图。

clf,

[x,y]=meshgrid(-10:0.8:10);

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

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)')

图像如下:

3. 标准三维曲面

    sphere函数的调用格式为:

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

    cylinder函数的调用格式为:

    [x,y,z]= cylinder(R,n)

    MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。

Example4 绘制标准三维曲面图形。

clear all;

t=0:pi/20:2*pi;

[x,y,z]= cylinder(2+sin(t),30);

subplot(2,2,1);

surf(x,y,z);

title('[x,y,z]= cylinder(2+sin(t),30)')

subplot(2,2,2);

[x,y,z]=sphere;%20X20

surf(x,y,z);

title('[x,y,z]=sphere')

subplot(2,1,2);

[x,y,z]=peaks(30); %30X30

surf(x,y,z);

title('[x,y,z]=peaks(30)')

图像如下:下载本文

显示全文
专题