函数 mesh 生成网格曲面图。例如:
tx = ty = linspace (-8, 8, 41)';
[xx, yy] = meshgrid (tx, ty);
r = sqrt (xx .^ 2 + yy .^ 2) + eps;
tz = sin (r) ./ r;
mesh (tx, ty, tz);
xlabel ("tx");
ylabel ("ty");
zlabel ("tz");
title ("3-D Sombrero plot");
将生成如图 图 15.5 所示的熟悉的"阔边帽"图。注意使用函数 meshgrid 来创建 X 和 Y 坐标矩阵,用于绘制 Z 数据。ndgrid 函数与 meshgrid 类似,但适用于 N 维矩阵。
图 15.5:网格图。
meshc 函数与 mesh 类似,但还会为曲面绘制等高线图。
plot3 函数显示任意三维数据,而不要求数据构成曲面。例如:
t = 0:0.1:10*pi;
r = linspace (0, 1, numel (t));
z = linspace (0, 1, numel (t));
plot3 (r.*sin (t), r.*cos (t), z);
xlabel ("r.*sin (t)");
ylabel ("r.*cos (t)");
zlabel ("z");
title ("plot3 display of 3-D helix");
将显示如图 图 15.6 所示的三维螺旋线。
图 15.6:三维螺旋线。
最后,view 函数可以改变三维图的视角。
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = mesh (…) ¶绘制三维线框网格。
线框网格使用矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
网格的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定网格的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄。
另请参阅: ezmesh, meshc, meshz, trimesh, contour, surf, surface, meshgrid, hidden, shading, colormap, clim.
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = meshc (…) ¶绘制带有底层等高线的三维线框网格。
线框网格使用矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
网格的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定网格的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是一个 2 元素向量,包含所创建的曲面对象和所创建的等高线图的图形句柄。
另请参阅: ezmeshc, mesh, meshz, contour, surfc, surface, meshgrid, hidden, shading, colormap, clim.
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = meshz (…) ¶绘制带有周围幕布的三维线框网格。
线框网格使用矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
网格的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定网格的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄。
另请参阅: mesh, meshc, contour, surf, surface, waterfall, meshgrid, hidden, shading, colormap, clim.
控制网格隐藏线的移除。
在无参数调用时,隐藏线移除状态将切换。
当使用模式 "on" 或 "off" 调用时,将相应设置状态。
可选的输出参数 mode 是当前状态。
隐藏线移除决定了网格绘图后面哪些图形对象可见。默认情况下,网格是不透明的,网格后面的线条不可见。如果禁用了隐藏线移除,则可以通过网格的面(开口)看到网格后面的对象,尽管网格线仍然是不透明的。
另请参阅: mesh, meshc, meshz, ezmesh, ezmeshc, trimesh, waterfall.
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = surf (…) ¶绘制三维曲面网格。
曲面网格使用着色矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
曲面的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定曲面的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄。
另请参阅: ezsurf, surfc, surfl, mesh, surface, meshgrid, hidden, shading, lighting, colormap, clim.
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = surfc (…) ¶绘制带有底层等高线的三维曲面网格。
曲面网格使用着色矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
曲面的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定曲面的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是一个 2 元素向量,包含所创建的曲面对象和所创建的等高线图的图形句柄。
另请参阅: ezsurfc, surf, surfl, meshc, surface, meshgrid, contour, hidden, shading, colormap, clim.
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = surfl (…) ¶绘制带有基于光照着色的三维曲面网格。
曲面网格使用着色矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
光源的颜色和位置可以通过使用 light 函数进行更改。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定曲面的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄。
另请参阅: ezsurfl, surf, surfc, light, lighting, surface, meshgrid, hidden, shading, colormap, clim.
(y) ¶(x, y) ¶(x, y, width) ¶(hax, …) ¶h = ribbon (…) ¶绘制三维带状图。
带状图类似于 waterfall 图,但每列 y 会绘制一条具有特定宽度的条带。由 x 向量确定条带的位置。
如果只给出了一个参数,则 y 被视为矩阵,其列代表不同的数据集。在这种情况下,x 由 1:rows (y) 隐式定义。
可选的参数 width 指定每个条带的宽度(默认值为 0.75)。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄向量。
(x, y) ¶(x, y, z) ¶[xx, yy, zz] = meshgrid (x, y, z) ¶给定 x 和 y 的列向量,返回一个矩阵 xx 和 yy,使得 xx(i, j) = x(i) 且 yy(i, j) = y(j)。换句话说,它们在二维网格上为每个点生成了相应的 x 和 y 坐标。对于三维绘图,网格由 x、y 和 z 定义,生成了三个三维数组 xx、yy 和 zz。
有关更多信息,请参阅 ndgrid 示例。
另请参阅: ndgrid.
(azimuth, elevation) ¶(az, el) ¶(dim) ¶(hax, …) ¶[azimuth, elevation] = view () ¶查询或设置当前坐标轴的相机视线方位角和仰角。
azimuth 和 elevation 是球面坐标角。正 azimuth 值表示在 x-y 平面内从 y 轴向 x 轴旋转的角度。正 elevation 值表示在 z 正方向上从 x-y 平面向上旋转的角度。
如果给出了一个二维点 [azimuth, elevation],则设置视角。
如果给出了一个三维点 [x, y] 或 [x, y, z],则确定相机视线方向。
dim 字符串参数影响视角,如下所示:
"xy"二维:方位角 = 90°,仰角 = 90°。
"xz"方位角 = 0°,仰角 = 0°。
"yz"方位角 = 90°,仰角 = 0°。
"3d"三维:方位角 = -37.5°,仰角 = 30°。
如果第一个参数 hax 是坐标轴句柄,则对指定的坐标轴进行操作。
如果在无参数调用时将输出参数,则返回当前方位角和仰角。
(type) ¶(hax, type) ¶设置补丁或曲面图形对象的光照算法。
type 的有效参数是:
"flat"对图形对象面应用光照。
"gouraud"对图形对象的顶点应用光照,并线性插值面颜色。
"none"不应用光照。
如果第一个参数 hax 是坐标轴句柄,则对指定的坐标轴进行操作。
() ¶(hax) ¶(…, prop, val) ¶h = light (…) ¶创建一个光源对象。
光源对象用于光照计算。可以指定属性/值对作为参数。如果是第一个参数 hax 是坐标轴句柄,则将光源添加到该坐标轴。默认情况下,光源添加到由 gca 返回的当前坐标轴。可选的返回值 h 是光源对象的图形句柄。
(type) ¶(hax, type) ¶(..., prop, val) ¶设置光照的材质属性。
type 的有效参数是:
"shiny"对象的镜面反射指数较大。
"dull"对象的镜面反射指数较小。
"metal"对象的镜面反射指数和反射强度非常高。
"default"材质属性的默认设置。
此外,可以通过指定以下属性/值对来完全控制材质属性:"ambientstrength"、"diffusestrength"、"specularexponent"、"specularstrength"。更多帮助请参阅 Graphics Object Properties。
如果第一个参数 hax 是坐标轴句柄,则对指定的坐标轴进行操作。
(…) ¶(hax, …) ¶h = camlight (…) ¶在相机位置附近创建一个或移动一个光源。
如果光源不存在,则在相机位置的右侧和上方创建一个 light 对象。如果光源已存在,则将其移动到相机位置的右侧和上方(相对于相机)。
如果第一个参数 hax 是坐标轴句柄,则对该坐标轴进行操作。
可选的返回值 h 是光源对象的图形句柄。
(type) ¶(hax, type) ¶设置补丁或曲面图形对象的着色方式。
type 的有效参数是:
"flat"使用不可见边缘的单色补丁。
"faceted"使用黑色边缘的单色补丁。
"interp"对补丁顶点之间的颜色进行插值,补丁边缘不可见。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
另请参阅: fill, mesh, patch, pcolor, surf, surface, hidden, lighting.
(x, y, z) ¶(x, y, z, s) ¶(x, y, z, s, c) ¶(…, style) ¶(…, "filled") ¶(…, prop, val) ¶(hax, …) ¶h = scatter3 (…) ¶绘制三维散点图。
在每个由向量 x、y 和 z 中的坐标定义的点处绘制一个标记。
标记的大小由 s 确定,可以是标量,也可以是与 x、y 和 z 长度相同的向量。如果 s 未给出或为空矩阵,则使用默认值 8 点。
标记的颜色由 c 确定,可以是定义固定颜色的字符串;一个 3 元素向量,给出颜色的红色、绿色和蓝色分量;一个与 x 长度相同的向量,提供当前颜色图的缩放索引;或者一个 Nx3 矩阵,单独定义每个标记的 RGB 颜色。
可以通过 style 参数更改要使用的标记,该参数是以与 plot 命令相同的方式定义标记的字符串。如果未指定标记,则默认为 "o"(圆圈)。如果给出了参数 "filled",则填充标记。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是表示点的散点对象的图形句柄。
[x, y, z] = peaks (20); scatter3 (x(:), y(:), z(:), [], z(:));
编程说明:完整的属性列表请参见 Scatter Properties。
(x, y, z) ¶(z) ¶(…, c) ¶(…, prop, val, …) ¶(hax, …) ¶h = waterfall (…) ¶绘制三维瀑布图。
瀑布图类似于 meshz 图,但仅显示 z(x 值)行的网格线。
线框网格使用矩形绘制。矩形的顶点 [x, y] 通常是 meshgrid 在 x-y 平面上的二维矩形区域内的输出。z 确定每个顶点在平面上方的高度。如果只给出了一个 z 矩阵,则在网格 x = 1:columns (z), y = 1:rows (z) 上进行绘制。因此,z 的列对应不同的 x 值,z 的行对应不同的 y 值。
网格的颜色通过线性缩放 z 值以适应当前颜色图的范围来计算。使用 clim 和/或更改颜色图来控制外观。
(可选)可以通过提供颜色矩阵 c 来独立于 z 指定网格的颜色。
任何属性/值对都将直接传递给底层的曲面对象。完整的属性列表请参见 Surface Properties。
如果第一个参数 hax 是坐标轴句柄,则绘制到此坐标轴,而非 gca 返回的当前坐标轴。
可选的返回值 h 是所创建的曲面对象的图形句柄。
另请参阅: meshz, mesh, meshc, contour, surf, surface, ribbon, meshgrid, hidden, shading, colormap, clim.