主要内容

多方面的补丁

示例 - 定义立方体

一个立方体由形成六个侧面的八个顶点定义。此插图显示了X-,,,,Y-, 和z- 定义一个立方体的顶点的坐标,其中侧面是一个单位。

如果指定X-,,,,Y-, 和z- 共性参数作为向量,它们作为单个多边形呈现​​,并以序列连接点。如果论点是矩阵,则MATLAB®每列绘制一个多边形,产生一个带有多个面的贴片。这些面孔不必连接,并且可以自我隔离。

另外,您可以指定每个唯一顶点的坐标以及连接它们以形成面的顺序。本节中的示例说明了这两种技术。

指定X,Y和Z坐标

六个面中的每一个都有四个顶点。因为您不需要关闭每个多边形(即,第一个和最后一个顶点不需要相同),所以您可以使用每个每个矩阵来定义此立方体X- ,,y-, 和z- 坐标。

矩阵的每一列指定不同的脸。虽然只有八个顶点,但您必须指定24个顶点来定义所有六个面。由于每个面都与其他四个面共享顶点,因此您可以通过仅定义每个顶点一次,然后指定连接这些顶点以形成每个面的顺序来更有效地定义补丁。补丁顶点面孔属性以这种方式定义补丁。

指定面孔和顶点

这些矩阵使用顶点面孔

当补丁包含大量面时,使用顶点/面技术可以节省大量的计算机存储器。这种技术需要正式修补函数语法,将值分配给顶点面孔属性明确。例如,

patch('vertices',vertex_matrix,'faces',faces_matrix)

由于高级语法不会自动分配面部或边缘颜色,因此您必须设置适当的属性,以生成带有默认白色脸部颜色和黑色边缘颜色以外的颜色的斑块。

平面颜色

平面颜色是指定每张颜色一种颜色的结果。例如,使用顶点/面部技术和facevertexcdata定义颜色的属性,此语句指定每张颜色的一种,并设置faceColor财产为平坦的

vert = [0 0 0; 1 0 0; 1 1 0; 0 1 0; 0 0 1; 1 0 1; 1 1 1; 0 1 1];FAC = [1 2 6 5; 2 3 7 6; 3 4 8 7; 4 1 5 8; 1 2 3 4; 5 6 7 8];补丁('vertices',vert,'faces',fac,...'facevertexcdata',hsv(6),'faceColor','flat')

调整轴:

查看(3)轴Vis3D

因为用facevertexcdata属性具有与MATLAB colormap相同的格式(即,RGB值的N-BY-3数组),此示例使用HSV菌落生成扁平阴影所需的六种颜色。

要将面部颜色映射到当前的colormap,请分配一个n-1数组facevertexcdata财产:

补丁('顶点',vert,'faces',fac,...'facevertexcdata',(1:6)','faceColor','flat')

调整轴:

查看(3)轴Vis3D

插值的脸色

插值面颜色是指每个脸部的顶点颜色定义了从一个顶点到另一个顶点的颜色过渡。要插入顶点之间的颜色,您必须为每个顶点指定颜色,并设置faceColor财产为Interp

patch('vertices',vert,'faces',fac,...'facevertexcdata',hsv(8),'faceColor','Interp')

调整轴:

查看(3)轴Vis3D

通过插值顶点颜色,每张脸都会产生一个立方体。

要使用X,Y,Z,C技术指定相同的着色,C必须是一个m-经过-n-by-3阵列,其中x,y和z的尺寸为m-经过-n

该图显示了facevertexcdataCDATA特性。

补丁数据与colormap的关系更详细地讨论着色技术。