matlab中patch函数的用法

简介: 描述:     patch是个底层的图形函数,用来创建补片图形对象。一个补片对象是由其顶点坐标确定的一个或多个多边形。用户可以指定补片对象的颜色和灯光。   patch(X,Y,C)     添加已填充的二维补片到当前坐标轴。

描述:

    patch是个底层的图形函数,用来创建补片图形对象。一个补片对象是由其顶点坐标确定的一个或多个多边形。用户可以指定补片对象的颜色和灯光。

 

patch(X,Y,C

    添加已填充的二维补片到当前坐标轴。X和Y中的元素指定了多边形的定点。如果X和Y是矩阵,MATLAB将每一列生成一个多边形。C决定了补片的颜色,它可以是单个的ColorSpec,每个表面一个颜色,或每个定点一个颜色。如果C是1*3的向量,它将被看成是RGB三元组,直接指定颜色。

 

patch(X,Y,Z,C

    创建三维坐标下的补片。

 

patch(FV

    使用结构体FV来创建补片。FV包含如下的结构域:vertices、faces以及facevertexdata(可选)。这些结构域对应补片对象的Vertices、Faces和FaceVerticxCData属性。

 

patch(‘PropertyName’,propertyvalue,...

    利用指定的属性/值参数对来指定补片对象的所有属性。除非用户显式的指定FaceColor和EdgeColor的值,否则,MATLAB会使用缺省的属性值。该调用格式允许用户使用Faces和Vertices属性值来定义补片。

 

handle=patch(...

    返回创建的补片对象的句柄。

 

注意:

    不像fill或area这样的高层创建函数,patch并不检查图形窗口的设置以及坐标轴的NextPlot属性,它仅仅将补片对象添加到当前坐标轴。

    如果坐标数据不能定义封闭的多边形,patch函数自动使多边形封闭。数据能定理凹面或交叉的多边形。然而,如果单个补片面的边缘相互交叉,得到的面可能不会完全填充。在这种情况下,最好将面分解为更小的多边形。

 

详细说明patch的属性:

    你可以注明这些属性为:属性名字和属性值成对形式、结构矩阵和细胞矩阵。

    其中有两个属性是用来说明颜色的:

    CData:用在说明X、Y、Z坐标时(XData、YData、ZData)

    FaceVertexCData:用在说明顶点或联接矩阵(Vertices和Faces)

 

    CData和FaceVertexCData属性接受这样的颜色数据:索引值、真彩色(RGB)值。(CData、FaceVertexCData)

   

    索引颜色数据可以表示整个色图的直接索引值或线性映射到整个色图的刻度值(caxis)。CDataMapping 决定了matlab如何翻译索引颜色数据

颜色数据说明:

patch的颜色说明如下:

    所有面用同一个颜色;

    一个面一个颜色,即平面着色;

    一个顶点一个颜色,即插值着色;

   

    下面的表格说明了matlab如何解释由CData、FaceVertexCData定义的颜色数据。

 

    [X,Y,Z]                    CData  

                     索引值            真彩色                  

      m*n             标量              1*1*3        所有面用同一个颜色,边缘用同一个颜色

      m*n            1*n(n>=4)        1*n*3        一个面一个颜色,边缘用一个颜色
      m*n              m*n             m*(n-3)     一个顶点一个颜色,面可以是平滑的一个颜色的或插                  值的,边缘也可以是平滑的或插值的。

     顶点         面             FaceVertexCData

                             索引值          真彩色

     m*n          k*3         标量            1*3

     m*n          k*3          k*1            k*3               同上

     m*n          k*3          m*1            m*3

 

 

举例:

    该例中使用两种不同的方法来创建一个补片对象:

    指定x、y和z坐标以及颜色数据(XData、YData和ZData以及CData属性)

    指定顶点,连接矩阵以及颜色矩阵(Vertices、Faces、FaceVertexCData以及FaceColor属性)

 

    1、指定x、y和z坐标

    x=[0 0;0 1;1 1];

    y=[1 1;2 2;2 1];

    z=[1 1;1 1;1 1];

    tcolor(1,1,1:3)=[1 1 1];

    tcolor(1,2,1:3)=[.7 .7 .7];

    patch(x,y,z,tcolor)

注意每个面和其他面之间共用两个顶点。

 

    2、指定定点和表面

    Vertices属性包含定义补片的每一个定点的坐标,Faces属性确定如何连接这些顶点来组成不判的每一个表面。在本例中,两个顶点位于同一个位置,因此需要指定六个顶点。每一样包含定点的x、y和z坐标。
    vert=[0 1 1;0 2 1;1 2 1;1 1 1];

    有两个表面,按照指定的顺序连接定点而成:

    fac=[1 2 3;1 3 4];

    指定表面的颜色,指定包含两个RGB颜色的2*3的矩阵;

    tcolor=[1 1 1;.7 .7 .7];

    用户必须设置FaceColor属性为flat,通过指定Faces、Vertices、FaceVertexCData以及FaceColor属性来创建

    补片对象:

    patch('Faces',fac,'Vertices',vert,'FaceVertexCData',tcolor,'FaceColor','flat')

    结果如上图所示。

 

相关文章
|
7月前
|
安全 算法框架/工具 Python
使用雅可比椭圆函数为Reissner平面有限应变梁提供封闭形式解(Matlab代码实现)
使用雅可比椭圆函数为Reissner平面有限应变梁提供封闭形式解(Matlab代码实现)
166 2
|
8月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
260 0
|
7月前
|
机器学习/深度学习 算法
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
【概率Copula分类器】实现d维阿基米德Copula相关的函数、HACs相关的函数研究(Matlab代码实现)
221 5
|
7月前
|
数据采集 新能源 调度
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
【Copula】基于二元Frank-Copula函数的风光出力场景生成方法【考虑风光出力的不确定性和相关性】(Matlab代码实现)
364 4
|
7月前
|
Serverless Python
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
490 4
|
7月前
|
存储 编解码 并行计算
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)
【快速傅里叶变换FFT、窗函数法、希尔伯特-黄变换、小波变换】电力系统同步相量计算研究(Matlab代码实现)
256 6
|
7月前
|
机器学习/深度学习 传感器 算法
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
268 1
|
8月前
|
算法 Java 计算机视觉
【图像去模糊】非盲去模糊实景图像处理,使用点扩散函数(PSF)快速去除实景图像中的模糊(Matlab代码实现)
【图像去模糊】非盲去模糊实景图像处理,使用点扩散函数(PSF)快速去除实景图像中的模糊(Matlab代码实现)
513 2
|
8月前
|
机器学习/深度学习 算法 数据挖掘
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
【配送路径规划】基于螳螂虾算法MShOA求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)研究(Matlab代码实现)
312 0
|
8月前
|
算法 Python
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
【配送路径规划】基于遗传算法求解带时间窗的电动汽车配送路径规划(目标函数:最小成本;约束条件:续驶里程、额定载重量、数量、起始点)研究(Matlab代码实现)
302 0

热门文章

最新文章

下一篇
开通oss服务