matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html
matlab中patch函数的用法——emily
(2011-11-18 17:20:33)
patch
创建补片图形对象
句法:
patch(X,Y,C)
patch(X,Y,Z,C)
patch(FV)
patch(...'PropertyName',propertyvalue...)
patch('PropertyName',propertyvalue,...)
handle = patch(...)
描述:
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')
结果如上图所示。
。。。。。。
matlab中patch函数的用法的更多相关文章
- matlab中repmat函数的用法(堆叠矩阵)
matlab中repmat函数的用法 B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p...]) 这是一个处理大矩阵且内容有重复时使用 ...
- Matlab中imfilter()函数的用法
Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...
- matlab中norm函数的用法
格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释 NORM Matrix or vecto ...
- MATLAB中exist函数的用法
exist:exist主要有两种形式,一个参数和两个参数的,作用都是用于确定某值是否存在:1. b = exist( a) 若 a 存在,则 b = 1: 否则 b = 0:2. b = e ...
- [转]matlab中squeeze函数的用法,numel的用法
squeeze的作用是移除单一维. 如果矩阵哪一个维数是1,B=squeeze(A)就将这个维数移除. 考虑2-by-1-by-3 数组Y = rand(2,1,3). 这个数组有单一维 —就是每页仅 ...
- Matlab中num2str函数的用法
转载:https://blog.csdn.net/SMF0504/article/details/51836062 函数功能: 把数值转换成字符串, 转换后可以使用fprintf或disp函数进行输出 ...
- MATLAB中 feval 函数的用法
feval就是把已知的数据或符号带入到一个定义好的函数句柄中,你看看下面的例子 syms tf=@(x,y) x^2+y^2k1=feval(f,1,t)k2=f(1,t)k3=feval(f,1,1 ...
- matlab中meshgrid函数的用法
meshgrid用于从数组a和b产生网格.生成的网格矩阵A和B大小是相同的.它也可以是更高维的.这里的大小指的是,size()函数的大小,size()函数返回的是一个向量, 那么size(A) = s ...
- matlab中nargin函数的用法
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能. 通常可以用他来设定一些默认值,如下面的函数. 例子,函数test1的功能是输出a和b的和.如果只输入一个变量,则认为 ...
随机推荐
- 操作jQuery
==================================== $('img').each(function(){ this.alt='This is image['+n+'] with a ...
- centos使用yum安装软件的时候出现了undefined symbol: CRYPTO_set_locking_callback
1.问题 在CentOS下使用yum安装软件,结果出现了下面的错误提示: # yum installThere was a problem importing one of the Python mo ...
- python 反射器
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ @author: zengchunyun ""& ...
- [IOS]swift自定义uicollectionviewcell
刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollect ...
- winform 进程,线程
进程:一个程序就是一个进程,但是也有一个程序需要多个进程来支持的情况 进程要使用的类是:Process它在命名空间:System.Diagnostics; 静态方法Start(); 点击按钮打开一个程 ...
- 【5集iCore3_ADP演示视频】5-3 iCore3应用开发平台摸校准
iCore3双核心应用开发平台基于iCore3双核心板,包含ARM.FPGA.7寸液晶屏.双通道数字示波器.任意波发生器.电压表等模块,是一款专为电子爱好者设计的综合性电子学习系统. [视频简介]本视 ...
- mango框架中表分片与数据库分片(分表与分库)
表分片 表分片通常也被称为分表,散表. 当某张表的数据量很大时,sql执行效率都会变低,这时通常会把大表拆分成多个小表,以提高sql执行效率. 我们将这种大表拆分成多个小表的策略称之为表分片. 先来看 ...
- windows2013 iis 配置 xcache
本帖最后由 artsharp 于 2010-6-8 09:06 编辑XCache是一种新的php缓存器,经过测试,在Windows下效果比同类软件强很多.实际测试效果如下(非科学方法):原网页平均执行 ...
- Open Data Structure Templates
数据结构模板 Chen 2016/12/22 前言 本篇博客的模板,全部是我纯手打的,如果有发现错误,请在下方留言指正:).欢迎大家参考. 有一些地方还不是很完善,等过一阵子用C++实现和部分重构下. ...
- java并发容器类
本文主要介绍java并发容器相关实现类,collections节点下接口方法介绍. Queue Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是Blocking ...