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的和.如果只输入一个变量,则认为 ...
随机推荐
- Codeforces Round #352 (Div. 2)
模拟 A - Summer Camp #include <bits/stdc++.h> int a[1100]; int b[100]; int len; void init() { in ...
- @寒冬winter 大神的css作业问题
块级元素 ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度缺省是它的容器的100%,除非设定一个宽度. ④它可以容纳内联元素和其他块元素 行内级元素 ①和其他元素都在一行 ...
- Redis的PHP操作手册(转)
String 类型操作 string是redis最基本的类型,而且string类型是二进制安全的.意思是redis的string可以包含任何数据.比如jpg图片或者序列化的对象 $redis-> ...
- UI设计中的48dp定律【转】
有朋友建议我偶尔写写技术类的文章,所以我打算开始穿插性的写一些偏技术方面的科普文章,尽量往小白能看懂的方向写,今天我来讲讲UI设计中的48dp定律. 那么先说说什么是dp ?其实对于一个非技术人员要把 ...
- jQuery简单易用的网页内容打印插件
简要教程 jQuery.print是一款简单易容且功能强大的网页内容打印jQuery插件.该网页打印插件可以打印指定区域的网页元素,可以指定跳过不打印某些元素,还可以打印整个页面内容.并且提供了丰富的 ...
- 将bean转换成键值列表
日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString. 工具类如下: public static String ...
- python-socket-SocketServer - Forking
在之前的文章中,客户端和服务端.一般情况下并非是一对一的关系.多对一,多个客户端连接一个服务端.并且服务端需要对每一个客户端进行信息处理. 在客户端不多的情况下,可以采取为每一个客户端创建一个进程对其 ...
- PHP 使用 password_hash() 给密码加密
PHP >= 5.5 时,可以使用 password_hash() 和 password_verify() 来对用户的密码进行加密和验证,例如在用户注册(加密存储)和登陆(验证): <?p ...
- eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN
eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...
- 关于iPhone设备不同显示尺寸适配的一些方法
关于iPhone设备不同显示尺寸适配的一些方法 ------关于适配的理解------ 1.什么是适配? 适配是对不同硬件和系统软件的适应,硬件包括屏幕显示,处理器,内存等等(目前主要是屏幕适配, ...