Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

fill3

创建三维填充补片

  • Filled 2-D star on 3-D axes

说明

示例

fill3(X,Y,Z,C) 在三维坐标区上将填充多边形区域绘制为 Patch 对象,其顶点位于由 XYZ 指定的 (x,y,z) 位置。

  • 要绘制一个区域,请将 XYZ 指定为向量。

  • 要绘制多个区域,请将 XYZ 指定为矩阵,其中每列对应一个多边形。

C 确定区域的填充颜色。

示例

fill3(X1,Y1,Z1,C1,...,Xn,Yn,Zn,Cn) 在相同的三维坐标区上绘制多个填充多边形区域。

fill3(___,Name,Value) 通过使用一个或多个名称-值参数设置属性来修改 Patch 对象。可以使用上述语法中的任何输入参数组合来指定补片。例如,fill3(X,Y,Z,C,'LineWidth',2) 指定一个围绕所有补片的两点边框。有关属性列表,请参阅Patch 属性

fill3(ax,___) 将在由 ax 指定的坐标区而不是当前坐标区 (gca) 中绘制多边形区域。

示例

p = fill3(___) 返回一个 Patch 对象或由 Patch 对象组成的向量。在绘制区域后,使用 p 来查询和修改属性。有关属性的完整列表,请参阅Patch 属性

示例

全部折叠

将向量 xyz 指定为三角形顶点的 (x,y,z) 坐标。然后用指定的填充颜色(红色)绘制三角形。

x = [0 0 0];
y = [0 2 1];
z = [0 0 2];
fill3(x,y,z,'r')

Figure contains an axes object. The axes object contains an object of type patch.

将向量 x1y1z1x2y2z2 定义为两个矩形的顶点的 (x,y,z) 坐标。将每个矩形的颜色指定为一个 RGB 三元组,其值指示颜色的红、绿和蓝分量的强度。在单个 fill3 调用中同时绘制两个矩形。

x1 = [0 0 1 1];
y1 = [3 3 2 2];
z1 = [0 3 2 1];
c1 = [0 0.447 0.741];
x2 = [2 2 3 3];
y2 = [1 1 0 0];
z2 = [1 2 3 0];
c2 = [0.850 0.325 0.098];
fill3(x1,y1,z1,c1,x2,y2,z2,c2)

Figure contains an axes object. The axes object contains 2 objects of type patch.

将矩阵 xyz 指定为三个相邻正方形的顶点坐标。将 c 指定为与 xyz 具有相同维数的矩阵。c 中的每个值都指定对应顶点的颜色图索引。fill3 函数根据顶点颜色对每个正方形的填充颜色进行插值。

x = [0 0 0; 0 0 2; 0 2 2; 0 2 0];
y = [2 0 2; 0 0 2; 0 0 0; 2 0 0];
z = [2 0 2; 2 2 2; 0 2 2; 0 0 2];
c = [2 2 2; 3 3 0; 2 2 2; 0 0 3];
fill3(x,y,z,c)

Figure contains an axes object. The axes object contains 3 objects of type patch.

用颜色图索引的向量 c 指定的填充颜色绘制两个三角形。将两个返回的补片存储在向量 p 中。

x = [0 1; 1.5 2.5; 3 4];
y = [4 4; 2.5 2.5; 1 1];
z = [0 0; 2 2; 0 0];
c = [1 0];
p = fill3(x,y,z,c);

Figure contains an axes object. The axes object contains 2 objects of type patch.

使用 p 修改第一个三角形。修改 p 的第一个元素的 FaceAlpha 属性,以使第一个三角形透明。

p(1).FaceAlpha = 0.5;

Figure contains an axes object. The axes object contains 2 objects of type patch.

输入参数

全部折叠

补片顶点的 x 坐标,指定为向量或矩阵。

补片数量描述示例

一个补片

XYZ 指定为相同长度的向量。向量可以有任何方向。

绘制一个三角形补片。

X = [0 0 4];
Y = [2 4 2];
Z = [1 1 1];
C = 1;
fill3(X,Y,Z,C)

两个或更多补片
(共享 XYZ

将共享坐标指定为向量。将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度的长度匹配。如果矩阵为方阵,则 MATLAB® 将绘制矩阵的列对向量的图。

绘制两个具有共享的 x 和 z 坐标的三角形补片。

X = [0 0 4];
Y = [0 -0; 2 -2; 0 0];
Z = [0 0 0];
C = [0 1];
fill3(X,Y,Z,C)

两个或更多补片
XYZ 是唯一的)

XYZ 指定为大小相同的矩阵。MATLAB 绘制矩阵的对应列。

绘制两个具有唯一 x、y 和 z 坐标的三角形补片。

X = [0 5; 0 5; 4 9];
Y = [2 0; 4 2; 2 0];
Z = [0 1; 2 3; 1 2];
C = [0 1];
fill3(X,Y,Z,C)

如果数据没有定义闭合区域,则 fill3 会使区域闭合。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

补片顶点的 y 坐标,指定为向量或矩阵。

补片数量描述示例

一个补片

XYZ 指定为相同长度的向量。向量可以有任何方向。

绘制一个三角形补片。

X = [0 0 4];
Y = [2 4 2];
Z = [1 1 1];
C = 1;
fill3(X,Y,Z,C)

两个或更多补片
(共享 XYZ

将共享坐标指定为向量。将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度的长度匹配。如果矩阵为方阵,则 MATLAB 将绘制矩阵的列对向量的图。

绘制两个具有共享的 x 和 z 坐标的三角形补片。

X = [0 0 4];
Y = [0 -0; 2 -2; 0 0];
Z = [0 0 0];
C = [0 1];
fill3(X,Y,Z,C)

两个或更多补片
XYZ 是唯一的)

指定 XYZ 为大小相同的矩阵。MATLAB 绘制矩阵的对应列。

绘制两个具有唯一 x、y 和 z 坐标的三角形补片。

X = [0 5; 0 5; 4 9];
Y = [2 0; 4 2; 2 0];
Z = [0 1; 2 3; 1 2];
C = [0 1];
fill3(X,Y,Z,C)

如果数据没有定义闭合区域,则 fill3 会使区域闭合。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

补片顶点的 z 坐标,指定为向量或矩阵。

补片数量描述示例

一个补片

XYZ 指定为相同长度的向量。向量可以有任何方向。

绘制一个三角形补片。

X = [0 0 4];
Y = [2 4 2];
Z = [1 1 1];
C = 1;
fill3(X,Y,Z,C)

两个或更多补片
(共享 XYZ

将共享坐标指定为向量。将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度的长度匹配。如果矩阵为方阵,则 MATLAB 将绘制矩阵的列对向量的图。

绘制两个具有共享的 x 和 z 坐标的三角形补片。

X = [0 0 4];
Y = [0 -0; 2 -2; 0 0];
Z = [0 0 0];
C = [0 1];
fill3(X,Y,Z,C)

两个或更多补片
XYZ 是唯一的)

指定 XYZ 为大小相同的矩阵。MATLAB 绘制矩阵的对应列。

绘制两个具有唯一 x、y 和 z 坐标的三角形补片。

X = [0 5; 0 5; 4 9];
Y = [2 0; 4 2; 2 0];
Z = [0 1; 2 3; 1 2];
C = [0 1];
fill3(X,Y,Z,C)

如果数据没有定义闭合区域,则 fill3 会使区域闭合。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration

补片颜色,指定为颜色名称、RGB 三元组、颜色图索引向量或颜色图索引矩阵。

  • 颜色名称 - 颜色名称(如 'red')或短名称(如 'r')。

  • RGB 三元组 - 三元素行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。RGB 三元组对于创建自定义颜色很有用。

  • 由颜色图索引组成的向量 - 数值向量,其中每个元素对应一个区域。

  • 由颜色图索引组成的矩阵 - 与 XYZ 具有相同维数的数值矩阵。

指定颜色的方式取决于颜色方案以及是绘制一个多边形区域还是多个区域。下表说明了最常见的情况。

颜色方案指定颜色的方式示例
所有区域一种颜色

从下表中指定一种颜色名称或短名称,或指定一个 RGB 三元组。

创建矩阵 xyz。然后绘制用红色填充的区域。

x = [0.5 0; 0.5 0; 1 1];
y = [0 2; 2 6; 1 4];
z = [0 0; 0 0; 1 2];
fill3(x,y,z,'r')

3-D plot with two red triangles

每个区域一种颜色

指定一个由颜色图索引组成的 n×1 或 1×n 向量,其中 n 是多边形区域的数量。

创建矩阵 xyz 以及向量 c。然后绘制用指定的颜色图颜色填充的区域。

x = [0.5 0; 0.5 0; 1 1];
y = [0 2; 2 6; 1 4];
z = [0 0; 0 0; 1 2];
c = [1 0];
fill3(x,y,z,c)

3-D plot with one blue and one yellow triangle

对面进行插补着色

指定一个由颜色图索引组成的 m×n 矩阵,其中 [m,n] = size(X)。为每个顶点指定一种颜色。

创建矩阵 xyzc。然后绘制用从顶点颜色 c 插值的填充颜色填充的区域。

x = [0.5 0; 0.5 0; 1 1];
y = [0 2; 2 6; 1 4];
z = [0 0; 0 0; 1 2];
c = [1 1; 1 0.5; 0 0];
fill3(x,y,z,c)

3-D plot with two triangles filled with a yellow, green, and blue gradient

常见颜色的颜色名称和 RGB 三元组

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 fill3 函数将在当前坐标区中进行绘制;或如果不存在 Axes 对象,则创建一个对象。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: fill3(x,y,z,c,'FaceAlpha',.5,'LineStyle',':') 创建包含点线边的半透明多边形。

注意

此处所列的属性只是一部分补片属性。有关完整列表,请参阅 Patch 属性

面颜色,指定为 'interp''flat'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。

要为每个面创建不同颜色,请将 CDataFaceVertexCData 属性指定为一个数组,其中每个面对应一种颜色,或者每个顶点对应一种颜色。颜色可以基于每个面的顶点颜色通过插值来计算,也可以是统一颜色。对于插补颜色,请将此属性指定为 'interp'。对于统一颜色,请将此属性指定为 'flat'。如果您指定 'flat' 并为每个顶点指定不同颜色,则您指定的第一个顶点的颜色将决定面颜色。

要为所有面指定单一颜色,请将此属性指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#FF8800''#ff8800''#F80''#f80' 是等效的。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

面透明度,指定为下列值之一:

  • 范围 [0,1] 中的标量 - 在所有面上使用统一的透明度。值为 1 时完全不透明,值为 0 时完全透明。此选项不会使用 FaceVertexAlphaData 属性中的透明度值。

  • 'flat' - 根据 FaceVertexAlphaData 属性中的值,对每个面使用不同的透明度。首先,您必须将 FaceVertexAlphaData 属性指定为向量,其中一个面或一个顶点对应一个透明度值。第一个顶点的透明度值确定整个面的透明度。

  • 'interp' - 根据 FaceVertexAlphaData 属性中的值,对每个面使用插值透明度。首先,您必须将 FaceVertexAlphaData 属性指定为一个向量,其中一个顶点对应一个透明度值。通过基于各顶点处透明度数值进行插值,每个面上的透明度会渐变。

边颜色,指定为下表中的值之一。默认边颜色为黑色,值为 [0 0 0]。如果多个多边形共用一条边,则最先绘制的多边形将控制显示的边颜色。

描述结果

RGB 三元组、十六进制颜色代码或颜色名称

所有边使用一种颜色。如需更多详细信息,请参阅下表。

Rectangular patch with red edges

'flat'

每条边使用不同颜色。使用顶点颜色设置该顶点之后的边的颜色。您必须先将 CDataFaceVertexCData 指定为一个数组,其中一个顶点对应一种颜色。边颜色取决于您指定顶点的顺序。

Rectangular patch with a medium green upper-right vertex, a medium green top edge, a yellow upper-left vertex, a yellow left edge, a dark blue lower-left vertex, a dark blue lower edge, a light blue lower-right vertex, and a light blue right edge

'interp'

插入的边颜色。您必须先将 CDataFaceVertexCData 指定为一个数组,其中一个顶点对应一种颜色。通过在两个边界顶点上进行线性插值来确定边颜色。

Rectangular patch with interpolated edge colors. The top two vertices are medium green and yellow, respectively. The bottom two vertices are dark blue and light blue, respectively. The color of each edge is a gradient of the colors at the bounding vertices.

'none'不显示边。

不显示边。

RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

线型,指定为下表中列出的选项之一。

线型描述表示的线条
"-"实线

Sample of solid line

"--"虚线

Sample of dashed line

":"点线

Sample of dotted line

"-."点划线

Sample of dash-dotted line, with alternating dashes and dots

"none"无线条无线条

输出参数

全部折叠

显示的多边形区域,以 Patch 对象或由 Patch 对象组成的向量形式返回。每个补片对应一个绘制区域。在绘制区域后,使用 p 查询或更改区域的属性。

替代功能

使用 patch 函数在三维坐标区上创建填充多边形。此函数提供了几个用于定义和配置填充区域的附加选项:

  • 通过指定一组面和顶点来创建多边形。

  • 在同一矩阵中指定多个 n 边形(n 可变)。

  • 使用自定义 RBG 值对面颜色进行插值。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

| | |