你可以创建任何图形对象基元通过调用与该对象同名的函数;换句话说,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关联的
注意:完整的属性文档详见 Axes Properties.
() ¶(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 Properties.
函数line和plot不同,后者在绘制之前会清除当前轴。
() ¶(x, y, c) ¶(x, y, z, c) ¶("Faces", faces, "Vertices", verts, …) ¶(…, "prop", val, …) ¶(…, propstruct, …) ¶(hax, …) ¶h = patch (…) ¶在当前的轴中创建补丁对象,其顶点位于位置 (x, y),颜色为c。
如果顶点是MxN的矩阵,那么每个多边形补丁有M个顶点,并且将创建N个多边形。如果某些多边形没有M个顶点,则使用NaN表示“无顶点”。如果存在z输入,则将创建3-D补丁。
颜色参数c可以采用多种形式。要创建具有单一颜色的多边形,请使用字符串值(例如,"r"表示红色),标量值,该值由clim缩放并索引到当前的颜色映射表中,或者使用具有真彩色的3元素RGB向量。
如果c是一个长度为N的向量,那么第i个多边形将具有颜色由缩放条目c(i)根据clim然后索引到当前的颜色映射表中确定。更复杂的着色情况需要直接操作补丁属性/值对。
除了指定多边形矩阵x和y之外,还可以提供唯一的顶点列表,然后是由这些顶点创建的多边形面的列表。在这种情况下,"Vertices"矩阵将是Nx2(2-D补丁)或Nx3(3-D补丁)。MxN的"Faces"矩阵描述了具有N个顶点的M个多边形——每一行描述一个多边形,每一列条目是对"Vertices"矩阵的索引以标识一个顶点。补丁对象可以通过直接传递属性/值对"Vertices"/verts,"Faces"/faces作为输入来创建。
除了用键/值对之外,还可以通过传递具有相应字段名称的结构propstruct来设置任何属性。
如果第一个参数hax是一个轴句柄,那么补丁将被插入到该轴中,而不是插入到由gca返回的当前轴中。
可选返回值h是创建的补丁对象的图形句柄。
注意:
"edgecolor", "facecolor",
"faces", "vertices", 和"facevertexcdata".
"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是创建的面对象的图形句柄。
注意:完整的属性文档详见 Surface Properties.
() ¶(…, "prop", val, …) ¶(hax, …) ¶h = light (…) ¶在当前轴或hax中创建一个光源对象。
当轴对象中存在光源对象,并且"EdgeLighting"或
"FaceLighting"属性的patch或surface对象设置为非
"none"值时,这些对象将以光照效果绘制。照明属性的支持值为
"none"(无光照效果),"flat"(对象的面状外观),和"gouraud"
(顶点之间的光照效果的线性插值)。如果照明模式设置为"flat",则使用
"FaceNormals"属性进行照明。对于"gouraud",使用
"VertexNormals"属性。
至多支持每个轴八个光源对象。(依赖于实现)
光源只支持OpenGL图形工具包(即"fltk"和"qt")。
一个光源对象具有以下属性,这些属性会改变绘图的外观。
"颜色":光源的颜色。可以通过以下代码传递:RGB向量 (e.g., [1 0 0] 代表红色) 或字符串 (e.g., "r"
代表红色). 默认颜色是白色 ([1 1 1]).
"位置": 光发出的方向。可以通过以下代码传递:1x3向量。默认的方向是[1 0 1].
"样式": 光如何发出。可以通过以下代码传递:光源在无限远的位置("infinite") 或从某个定点光源发出
("local")。默认是"infinite".
如果第一个参数hax是一个轴句柄,那么将光源对象添加到这个轴中,而不是由gca返回的当前轴中。
可选的返回值h是创建的光源对象的图形句柄。
注意: 完整的属性文档详见 Light Properties.
详见: lighting, material, patch, surface.
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2