许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB三维图像绘制教程

MATLAB三维图像绘制教程

阅读数 10
点赞 0
article_banner

1.绘制三位曲线

(1)plot3函数

   1.基本用法:plot3(x,y,z);其中,参数x、y、z组成一组曲线的坐标。

例1 绘制一条空间曲线

x=[0.2,1.8,2.5];
y=[1.3,2.8,1.1];
z=[0.4,1.2,1.6];
plot3(x,y,z)
grid on
axis([0,3,1,3,0,2]);

例2 绘制螺旋线

t=linspace(0, 10*pi, 200);
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
subplot(1, 2, 1)
plot3(x, y, z)
grid on
subplot(1, 2, 2)
plot3(x(1:4:200), y(1:4:200), z(1:4:200))
grid on

2.plot3(x,y,z) 函数参数 变化形式

   plot3(X,Y,Z);

  • 当三个参数是同型矩阵时,以X,Y,Z对应列元素绘制曲线,曲线条数等于矩阵列数。
  • 参数X、Y、Z中有向量,也有矩阵时,向量的长度与矩阵相符。

        例3 在空间不同位置绘制5条正弦曲线。
    t=0:0.01:2*pi;
    t=t';
    x=[t, t, t, t, t];
    y=[sin(t), sin(t)+1, sin(t)+2, sin(t)+3, sin(t)+4];
    z=x;
    plot3(x,y,z)

这个例子也可以采用以下代码实现。

t=0:0.01:2*pi;
x=t;
y=[sin(t); sin(t)+1; sin(t)+2; sin(t)+3; sin(t)+4];
z=x;
plot3(x,y,z)

3.含多组输入参数的plot3函数

plot3(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)

每一组x、y、z向量构成一组数据点的坐标,绘制一条空间曲线。

例4 绘制三条不同长度的正弦曲线。

t1=0:0.01:1.5*pi;
t2=0:0.01:2*pi;
t3=0:0.01:3*pi;
plot3(t1,sin(t1),t1, t2,sin(t2)+1,t2, …
 t3,sin(t3)+2,t3)

4.含选项的plot3函数

plot3(x,y,z,选项)

例5 绘制空间曲线

t=0:pi/50:6*pi;
x=cos(t);
y=sin(t);
z=2*t;
plot3(x,y,z,'p')
xlabel('X'),ylabel('Y'),zlabel('Z');
grid on

(2)fplot3函数

fplot3(funx,funy,funz,tlims)

其中,funx,funy,funz,tlims代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims表示参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认值为[-5,5]。

   例6 绘制墨西哥帽顶曲线

xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12])

用红色点划线绘制墨西哥帽顶曲线。

xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt, yt, zt, [-12, 12], 'r-.')

2.绘制三维曲面

(1)平面网格 数据 的生成:用矩阵X、Y分别存储每一个小矩形顶点的x坐标和y坐标,矩阵X、Y就是该矩阵区域的 xy 平面网格坐标矩阵。
产生平面区域内的网络坐标矩阵有两种方法

   1.利用矩阵运算生成

   x = 2:6;

   y = (3:8)’;

   X = ones( size (y))x;
Y = y
ones(size(x));

   (2)利用 meshgrid 函数生成

[X,Y]=meshgrid(x,y);

其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。

   x = 2:6;

   y = (3:8)’;

   [X, Y] = meshgrid(x, y);

若根据每一个网格点上的x、y坐标求函数值z,则得到函数值矩阵Z。矩阵X、Y、Z中的各个列向量,对应于一条曲线数据点的坐标。

例1:绘制空间曲线

x = 2:6; 
y = (3:8)';
[X, Y] = meshgrid(x, y);
Z = randn(size(X));
plot3(X,Y,Z)
grid on;

(3)mesh函数和 surf 函数的调用格式:

mesh(x,y,z,c)
surf(x,y,z,c)

其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。c省略时,颜色的设定正比于图形的高度。

   例2 绘制三维曲面图z=xe^(- x^2- y^2)。

t = -2:0.2:2; 
[X, Y] = meshgrid(t);
Z = X .* exp(-X.^2 - Y.^2);
subplot(1,3,1)
mesh(X,Y,Z); 
subplot(1,3,2)
surf(X,Y,Z); 
subplot(1,3,3)
plot3(X,Y,Z); 
grid on

在这里插入图片描述

   其他调用格式:

   mesh(z,c)

   surf(z,c)

   当x、y省略时,z矩阵的第二维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。

(4)绘制三维曲面的函数

  • 带等高线的三维网格曲面函数meshc。
  • 带底座的三维网格曲面函数meshz。
  • 具有等高线的曲面函数surfc。
  • 具有光照效果的曲面函数surfl。

        例3 用4种方式绘制函数z=(x−1)^2+(y−2) ^2−1的曲面图。其中,x∈[0,2],y∈[1,3]。
[x,y]=meshgrid(0:0.1:2,1:0.1:3);
z=(x-1)^2+ (y-2)^2-1;
subplot(2,2,1);
meshc(x,y,z);title('meshc(x,y,z)')
subplot(2,2,2);
meshz(x,y,z);title('meshz(x,y,z)')
subplot(2,2,3);
surfc(x,y,z);title('surfc(x,y,z)')
subplot(2,2,4);
surfl(x,y,z); title('surfl(x,y,z)')

在这里插入图片描述

(5)标准三维曲面

   1.sphere函数

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

产生3个(n+1)阶的方阵,采用这3个矩阵可以绘制出圆心位于原点、半径为1的单位球体。

   2.cylinder函数

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

其中,参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认有20个间隔点。

例4 用cylinder函数分别绘制柱面、花瓶和圆锥面。

subplot(1,3,1);
[x,y,z]=cylinder;
surf(x,y,z);
subplot(1,3,2);
t=linspace(0,2*pi,40);
[x,y,z]= cylinder(2+cos(t),30);
surf(x,y,z);
subplot(1,3,3);
[x,y,z]= cylinder(0:0.2:2,30);
surf(x,y,z);

在这里插入图片描述

   例5 用cylinder函数绘制两个相互垂直且直径相等的圆柱面的相交图形。

[x,y,z]= cylinder(1,60);
z=[-1*z(2,:);z(2,:)];
surf(x,y,z)
hold on
surf(y,z,x)
axis equal

在这里插入图片描述

   (6)peak s函数

   peaks(n)/peaks(V)/peaks(x,y)/peaks

fmeah函数和fsurf函数

   用于绘制参数方程定义的曲面

fsurf(funx,funy,funz,uvlims);
fmesh(funx,funy,funz,uvlims);

其中,funx、funy、funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims为funx,funy和funz的自变量的取值范围,用4元向量[umin,umax,vmin,vmax]描述,默认为[-5,5,-5,5]。

   例6 绘制螺旋曲面。

funx = @(u,v) u.*sin(v);
funy = @(u,v) -u.*cos(v);
funz = @(u,v) v;
fsurf(funx,funy,funz,[-5 5 -5 -2])
hold on
fmesh(funx,funy,funz,[-5 5 -2 2])
hold off

在这里插入图片描述


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空