任何图形对象基元都可以通过调用与该对象同名的函数来创建;也就是说,调用
figure、axes、line、text、image、patch、surface 和
light 等函数。这些基本图形对象会自动成为当前坐标轴对象的子对象,就像启用了
hold on 一样。同样地,坐标轴会自动成为当前图形对象的子对象,而图形则会成为根对象的子对象。
如果不需要这种自动加入功能,那么务必先调用 newplot 来准备新的图形和坐标轴以供绘图。
或者,更简单的方法是调用高级图形例程,它会同时创建图形并用低级图形对象填充它。
例如,不要调用 line,而应使用 plot;或者用 surf 代替
surface;或者用 fill 或 fill3 代替 patch。
() ¶(property, value, …) ¶(hpar, property, value, …) ¶(hax) ¶h = axes (…) ¶创建一个笛卡尔坐标轴对象并返回其句柄,或者将当前坐标轴设置为 hax。
不带任何参数调用,或者带上 property/value 对调用时, 会构造一个新的坐标轴。可选参数 hpar 是一个图形句柄,用于指定新坐标轴的父对象, 可以是图形、uipanel 或 uitab。
当使用单个坐标轴句柄参数 hax 调用时,该函数会将
hax 设为当前坐标轴(由 gca 返回)。同时,它还会将
包含 hax 的图形设为当前图形(由 gcf 返回)。
最后,它会重新排列父对象的 children 属性,使坐标轴
hax 在列表中出现在所有其他坐标轴句柄之前。这使得
hax 显示在任何其他坐标轴对象的顶部(Z 轴堆叠)。此外,
它还会重排与 hax 关联的任何图例或颜色条对象,使其同样可见。
编程说明:完整的属性列表请参见 坐标轴属性。
() ¶(x, y) ¶(x, y, z) ¶("xdata", x, "ydata", y) ¶("xdata", x, "ydata", y, "zdata", z) ¶(…, property, value) ¶(hax, …) ¶h = line (…) ¶根据 x 和 y(以及可选的 z)创建一个线条对象, 并将其插入当前坐标轴。
在标准调用形式中,数据 x、y 和 z 可以是
标量、向量或矩阵。当输入为矩阵时,line
会尝试调整标量和向量的方向,以便结果能够绘制。
这要求向量的某一维度与矩阵的行数或列数相匹配。
在底层调用形式(性能提高 50%)中,数据通过名称指定
(line ("xdata", x, …)),此时数据必须为
向量。如果未指定数据(line ()),则
x == y = [0, 1]。
可以为线条对象指定多个属性-值对,但它们 必须成对出现。
如果仅使用 property/value 对调用,任何未指定的 属性将采用根对象上指定的默认值。
如果第一个参数 hax 是坐标轴句柄,则将图形绘制到该坐标轴,
而不是由 gca 返回的当前坐标轴。
可选的返回值 h 是所创建线条对象的图形句柄 (或句柄向量)。
编程说明:完整的属性列表请参见 线条属性。
line 函数与 plot 的不同之处在于,线条对象
在插入当前坐标轴之前不会先清除图形。
() ¶(x, y, c) ¶(x, y, z, c) ¶("Faces", faces, "Vertices", verts, …) ¶(…, "prop", val, …) ¶(…, propstruct, …) ¶(hax, …) ¶h = patch (…) ¶在当前坐标轴中创建一个补片对象,其顶点位于 (x, y) 处,颜色为 c。
如果顶点是 M×N 矩阵,则每个多边形补片 有 M 个顶点,总共会创建 N 个多边形。如果某些多边形 不足 M 个顶点,请使用 NaN 表示"无顶点"。如果提供了 z 输入,则会创建三维补片。
颜色参数 c 可以有多种形式。要为所有多边形创建单一颜色的补片,
请使用字符串值(例如 "r" 表示红色)、标量值(该值按 clim 缩放
并索引到当前颜色映射中),或包含精确真彩色的三维 RGB 向量。
如果 c 是长度为 N 的向量,则第 i 个多边形的颜色通过
将条目 c(i) 按 clim 缩放后索引到当前颜色映射来确定。
更复杂的着色情况需要直接操作补片对象的属性/值对。
除了通过矩阵 x 和 y 指定多边形之外,还可以
提供一个唯一的顶点列表,再加上由这些顶点构成的多边形面列表。
在这种情况下,"Vertices" 矩阵为 N×2(二维补片)或
N×3(三维补片)。M×N 的 "Faces" 矩阵描述了
包含 N 个顶点的 M 个多边形——每行描述一个
多边形,每个列元素是 "Vertices" 矩阵中的一个索引,用于标识一个顶点。
补片对象也可以通过直接传递属性/值对
"Vertices"/verts、"Faces"/faces
作为输入来创建。
除了使用属性/值对之外,还可以通过传递一个具有相应字段名的 结构体 propstruct 来设置任何属性。
如果第一个参数 hax 是坐标轴句柄,则将图形绘制到该坐标轴,
而不是由 gca 返回的当前坐标轴。
可选的返回值 h 是所创建补片对象的图形句柄。
编程说明:
"edgecolor"、"facecolor"、
"faces"、"vertices" 和 "facevertexcdata"。
"cdata" 颜色定义与面-顶点定义的几何体搭配使用,
或将 "facevertexcdata" 颜色定义与 x-y-z 定义的几何体搭配使用时,
可能导致意外的补片颜色结果。
(x, y, z, c) ¶(x, y, z) ¶(z, c) ¶(z) ¶(…, prop, val, …) ¶(hax, …) ¶h = surface (…) ¶根据 meshgrid 生成的矩阵 x 和 y,
以及包含曲面 x 和 y 坐标对应值的矩阵 z,
创建一个曲面图形对象。
如果 x 和 y 是向量,则典型的顶点为
(x(j), y(i), z(i,j))。因此,z 的列对应
不同的 x 值,z 的行对应不同的 y 值。
如果只提供了单个输入 z,则 x 默认为
1:columns (z),y 默认为
1:rows (z)。
任何属性/值输入对都将赋值给曲面对象。
如果第一个参数 hax 是坐标轴句柄,则将图形绘制到该坐标轴,
而不是由 gca 返回的当前坐标轴。
可选的返回值 h 是所创建曲面对象的图形句柄。
编程说明:完整的属性列表请参见 曲面属性。
() ¶(…, "prop", val, …) ¶(hax, …) ¶h = light (…) ¶在当前坐标轴中或为指定坐标轴 hax 创建一个光源对象。
当坐标轴对象中存在光源对象,并且 patch 或 surface 对象的
"EdgeLighting" 或 "FaceLighting" 属性设置为
"none" 以外的值时,这些对象将以光照效果绘制。
光照属性支持的取值有:"none"(无光照效果)、
"flat"(对象呈现分面外观)和 "gouraud"
(顶点之间光照效果的线性插值)。若光照模式设置为
"flat",则使用 "FaceNormals" 属性进行光照计算;
对于 "gouraud",则使用 "VertexNormals" 属性。
每个坐标轴最多支持八个光源对象(具体取决于实现)。
光照仅在 OpenGL 图形工具包中支持(即 "fltk"
和 "qt")。
光源对象具有以下改变图形外观的属性:
"Color": 光源的颜色。可以通过以下方式传递:RGB 向量(例如 [1 0 0] 表示红色)或字符串(例如 "r"
表示红色)。默认颜色为白色([1 1 1])。
"Position": 光线发出的方向。指定为一个1×3 向量。默认方向为 [1 0 1]。
"Style": 此字符串定义光线是从无限远处的光源发出("infinite")还是从局部点光源发出("local")。
默认值为 "infinite"。
如果第一个参数 hax 是坐标轴句柄,则将光源对象添加到该坐标轴,
而不是由 gca 返回的当前坐标轴。
可选的返回值 h 是所创建光源对象的图形句柄。
编程说明:完整的属性列表请参见 光源属性。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4