🔗 运行环境:Matlab
🚩 撰写作者:左手の明天
🥇 精选专栏:《python》
🔥 推荐专栏:《算法研究》
#### 防伪水印——左手の明天 ####
💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗
💗今天更新系列【Matlab函数分析】——mesh网格曲面图💗
📆 最近更新:2024 年 05 月 29 日,左手の明天的第 334 篇原创博客
📚 更新于专栏:matlab
#### 防伪水印——左手の明天 ####
1、函数语法
mesh(X,Y,Z)
创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。该函数将矩阵 Z
中的值绘制为由 X
和 Y
定义的 x-y 平面中的网格上方的高度。边颜色因 Z
指定的高度而异。
mesh(Z)
创建一个网格图,并将 Z
中元素的列索引和行索引用作 x 坐标和 y 坐标。
mesh(Z,C)
指定边的颜色。
mesh(ax,___)
将图形绘制到 ax
指定的坐标区中,而不是当前坐标区中。指定坐标区作为第一个输入参量。
mesh(___,Name,Value)
使用一个或多个名称-值对组参量指定曲面属性。例如,'FaceAlpha',0.5
创建半透明网格图。
2、输入参数
X
— x 坐标
x 坐标,指定为大小与 Z
相同的矩阵或长度为 n
的向量,其中 [m,n] = size(Z)
。如果未指定 X
和 Y
的值,mesh
将使用向量 (1:n)
和 (1:m)
。
示例: X = 1:10
示例: X = [1 2 3; 1 2 3; 1 2 3]
Y
— y 坐标
y 坐标,指定为大小与 Z
相同的矩阵或长度为 m
的向量,其中 [m,n] = size(Z)
。如果未指定 X
和 Y
的值,mesh
将使用向量 (1:n)
和 (1:m)
。
示例: Y = 1:10
示例: Y = [1 1 1; 2 2 2; 3 3 3]
Z
— z 坐标
z 坐标,指定为矩阵。Z
必须有至少两行两列。
Z
指定每个 x-y 坐标处网格图的高度。如果不指定颜色,则 Z
还用于指定网格边颜色。
示例: Z = [1 2 3; 4 5 6]
示例: Z = sin(x) + cos(y)
C
— 颜色数组
颜色数组,指定为由颜色图索引组成的 m
×n
矩阵或 RGB 三元组的 m
×n
×3
数组,其中 Z
为 m
×n
。
-
要使用颜色图颜色,请将
C
指定为矩阵。对于网格曲面上的每个网格点,C
指示颜色图中的一种颜色。 -
要使用真彩色,请将
C
指定为 RGB 三元组数组。
名称-值参数
EdgeColor
— 边缘线条颜色
[0 0 0]
(默认) | 'none'
| 'flat'
| 'interp'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
边线颜色,指定为下面列出的值之一。默认颜色 [0 0 0]
对应于黑边。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
-
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。 -
十六进制颜色代码是字符向量或字符串标量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
LineStyle
— 线型
"-"
(默认) | "--"
| ":"
| "-."
| "none"
线型,指定为下表中列出的选项之一。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 | |
"--" | 虚线 | |
":" | 点线 | |
"-." | 点划线 | |
"none" | 无线条 | 无线条 |
FaceColor
— 面颜色
'flat'
(默认) | 'interp'
| 'none'
| 'texturemap'
| RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
FaceAlpha
— 面透明度
1 (默认) | 范围 [0,1]
中的标量 | 'flat'
| 'interp'
| 'texturemap'
面透明度,指定为下列值之一:
-
范围
[0,1]
中的标量 - 在所有面上使用统一的透明度。值为1
时完全不透明,值为0
时完全透明。介于0
和1
之间的值表示半透明。 -
'flat'
- 对每个面使用不同的透明度。第一个顶点的透明度值确定整个面的透明度。 -
'interp'
- 根据AlphaData
属性中的值,对每个面使用插值透明度。通过基于各顶点处透明度数值进行插值,每个面上的透明度会渐变。 -
'texturemap'
- 变换AlphaData
中的数据,以便其符合曲面。
FaceLighting
— 光源对象对面的影响
'flat'
(默认) | 'gouraud'
| 'none'
光源对象对面的影响,指定为下列值之一:
-
'flat'
- 将光源均匀地应用于每个面上。使用此值可查看分面着色对象。 -
'gouraud'
- 改变各个面的光源。计算顶点处的光照,然后以在各个面中进行光照插值。使用此值可查看曲面。 -
'none'
- 不将来自光源对象的光源应用于各个面。
3、示例
创建网格图
创建三个相同大小的矩阵。然后将它们绘制为一个网格图。该绘图使用 Z
确定高度和颜色。
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
为网格图指定颜色图颜色
通过包含第四个矩阵输入 C
来指定网格图的颜色。网格图使用 Z
确定高度,使用 C
确定颜色。使用颜色图指定颜色,该颜色图使用单个数字表示色谱上的颜色。使用颜色图时,C
与 Z
大小相同。向图中添加颜色栏以显示 C
中的数据值如何对应于颜色图中的颜色。
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C)
colorbar
为网格图指定真彩色
通过包含第四个矩阵输入 CO
来指定网格图的颜色。网格图使用 Z
确定高度,使用 CO
确定颜色。使用真彩色指定颜色,真彩色使用三个数字(即三元组)表示所有可能的颜色。使用真彩色时,如果 Z
为 m
×n
,则 CO
为 m
×n
×3。数组的第一页指示每种颜色的红色分量;第二页指示绿色分量;第三页指示蓝色分量。
[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
mesh(X,Y,Z,CO)
修改网格图外观
指定值为 0.5
的 FaceAlpha
名称-值对组,以创建半透明网格曲面。要允许进一步修改,请将曲面对象赋给变量 s
。
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = mesh(X,Y,Z,'FaceAlpha','0.5')
s = Surface with properties: EdgeColor: 'flat' LineStyle: '-' FaceColor: [1 1 1] FaceLighting: 'none' FaceAlpha: 0.5000 XData: [21x21 double] YData: [21x21 double] ZData: [21x21 double] CData: [21x21 double] Use GET to show all properties
使用 s
可在创建曲面后访问和修改网格图的属性。例如,通过设置 FaceColor
属性,为网格图的面添加颜色。
s.FaceColor = 'flat';