已锁定最新绘图 matlab,《MATLAB图像处理375例》——2.2 三维绘图

本文详细介绍了MATLAB中三维图形的绘制方法,包括三维折线、曲线、网格曲面、阴影曲面的绘制,以及图形的修饰与标注。通过多个示例展示了如何使用plot3、mesh、surf等函数创建不同类型的三维图形,并提供了视角调整、坐标轴设置等技巧。
摘要由CSDN通过智能技术生成

本节书摘来自异步社区《MATLAB图像处理375例》一书中的第2章,第2.2节,作者:MATLAB技术联盟著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 三维绘图

MATLAB图像处理375例

在MATLAB中,三维绘图的基本流程包括以下9个步骤。

(1)数据准备。

(2)图形窗口和绘图区选择。

(3)绘图。

(4)设置视角。

(5)设置颜色表。

(6)设置光照效果。

(7)设置坐标轴刻度和比例。

(8)标注图形。

(9)保存、打印或导出。

下面我们将根据绘制三维图形的基本流程,分别介绍创建图形的各种函数。

2.2.1 三维折线及曲线的绘制

在MATLAB中,plot3命令的功能及使用方法与plot命令的功能及使用方法类似,区别在于前者绘制出的是三维图形。该函数的调用方法如下。

plot3(x,y,z)

plot3(x,y,z,option)

其中,选项参数option指明了所绘图中线条的线性、颜色以及各个数据点的表示记号。plot3命令使用的是以逐点连线的方法来绘制三维折线的,当各个数据点的间距较小时,我们也可利用它来绘制三维曲线。

【例2-34】利用plot3函数绘制一条三维螺旋线。

t=0:pi/50:8*pi;

x=sin(t);

y=cos(t);

z=t;

plot3(x,y,z)

运行结果如图2-35所示。

99099a1fb062bdd98e01595b77485917.png

2.2.2 三维图形坐标标记的函数

MATLAB也提供了3条用于三维图形坐标标记的函数,并提供了用于图形标题说明的语句。这些函数的调用方法如下。

(1)xlabel(str):将字符串str水平放置于x轴。

(2)ylabel(str):将字符串str水平放置于y轴。

(3)zlabel(str):将字符串str水平放置于z轴。

(4)title(str):将字符串str水平放置于图形的顶部。

【例2-35】利用函数为x=_sin(_t)、y=cos(t)的三维螺旋线图形添加标题说明。

t=0:pi/50:8*pi;

x=sin(t);

y=cos(t);

z=t;

plot3(x,y,z);

xlabel('sin(t) ');

ylabel('cos(t) ');

zlabel('t');

title('三维螺旋线');

运行结果如图2-36所示。

bb4025b6fb951f9fb76e0f50b9c39a27.png

2.2.3 三维网格曲面的绘制

三维网格曲面是由一些四边形相互连接在一起所构成的一种曲面,这些四边形的4条边所围成的颜色与图形窗口的背景色相同,并且无色调的变化,呈现的是一种线架图的形式。在MATLAB中,mesh函数用于绘制三维网格曲面图;hidden函数用于隐藏线的显示和关闭。这些函数的调用方法如下。

mesh(X,Y,Z,C)

mesh(X,Y,Z)

mesh(x,y,Z,C)

mesh(x,y,Z)

mesh(Z,C)

mesh(Z)

其中,在命令格式mesh(X,Y,Z,C )和mesh(X,Y,Z )中,参数X,Y,Z 都为矩阵值,并且X 矩阵的每一个行向量都是相同的,Y 矩阵的每一个列向量也都是相同的。参数C 表示网格曲面的颜色分布情况,若省略该参数则表示网格曲面的颜色分布与Z 方向上的高度值成正比;在命令格式(x,y,Z,C )和mesh(x,y,Z )中,参数x 和y 为长度分别是n 和m 的向量值,而参数Z 是维数为m×n 的矩阵;在命令格式[Z,C]和mesh(Z)中,若参数Z是维数为m×n的矩阵,则绘图时的栅格数据点的取法是x=1﹕n和y=1﹕m。

hidden on

表示去掉网格曲面的隐藏线;

【例2-36】在笛卡儿坐标系中绘制函数的网格曲面图。

x=-7:0.5:7;

y=x;

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

Q=sqrt(X.^2+Y.^2)+eps;

Z=cos(Q)./Q;

mesh(X,Y,Z)

grid on

axis([-10 10 -10 10 -1 1 ])

运行结果如图2-37所示。

4fdf275dc2744eabb79f353612cfd12d.png

MATLAB中还有两个mesh的派生函数:meshc函数用于在绘图的同时,在x-y平面上绘制函数的等值线;meshz函数则用于在网格图基础上在图形的底部外侧绘制平行z轴的边框线。

【例2-37】利用meshc和meshz绘制三维网格图。

close all

clear

[X,Y] = meshgrid(-2:.4:2);

Z = 2*X.^2-3*Y.^2;

subplot(2,2,1)

plot3(X,Y,Z)

subplot(2,2,2)

mesh(X,Y,Z)

subplot(2,2,3)

m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值