patch函数的解释2
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')
结果如上图所示。
patch函数的解释2的更多相关文章
- patch函数的解释1
https://ww2.mathworks.cn/help/matlab/ref/patch.html?ue 语法 patch(X,Y,C) patch(X,Y,Z,C) patch('XData', ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- openssl之EVP系列之8---EVP_Digest系列函数具体解释
openssl之EVP系列之8---EVP_Digest系列函数具体解释 ---依据openssl doc/crypto/EVP_DigestInit.pod翻译和自己的理解写成 (作 ...
- scanf函数具体解释与缓冲区
1.基本信息 函数原型: int scanf( char *format, args, ...); 函数返回值: 读入并赋给args的数据个数.遇到文件结束返回EOF,出错返回0. 函数功能: sca ...
- 经常使用socket函数具体解释
经常使用socket函数具体解释 关于socket函数,每一个的意义和基本功能都知道,但每次使用都会去百度,參数究竟是什么,返回值代表什么意义.就是说用的少,也记得不够精确. 每次都查半天.常常烦恼于 ...
- openssl之EVP系列之5---EVP_Encrypt系列函数具体解释(二)
openssl之EVP系列之5---EVP_Encrypt系列函数详细解释(二) ---依据openssl doc/crypto/EVP_EncryptInit.pod和doc/ssleay.t ...
- vue2源码分析:patch函数
目录 1.patch函数的脉络 2.类vnode的设计 3.createPatch函数中的辅助函数和patch函数 4.源码运行展示(DEMO) 一.patch函数的脉络 首先梳理一下patch函数的 ...
- malloc函数具体解释
一.原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include <alloc ...
- CreateProcess函数具体解释
CreateProcess说明:WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程执行指定的可执行文件. 函数原型:BOOL CreateProcess( ...
随机推荐
- 单机安装Hadoop
单机安装hadoop ------------------------------------------------------------------ 操作系统:centos7 64 位 hado ...
- nginx简单使用配置
使用nginx首先要明确使用场景,这里是一台服务器实现多种类型访问:网站首页访问,GitLab访问,note(私人springboot项目),静态文件访问. 下面是一份配置文件 nginx.conf, ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
- 洛谷P1742 最小圆覆盖(计算几何)
题意 题目链接 Sol 暴力做法是\(O(n^3)\)枚举三个点然后check一下是否能包含所有点 考虑一种随机算法,首先把序列random_shuffle一下. 然后我们枚举一个点\(i\),并维护 ...
- Git应用—01初始化项目
1.环境变量GIT_HOME D:\GreenSoftware\PortableGit Path %GIT_HOME%\cmd; 2.初始化git config --global u ...
- SQLServer Management Studio登录框中的“服务器名”填写
SQL Server Management Studio登录框中的“服务器名”填写 by:授客 QQ:1033553122 打开MSSQL Management Studio,如图,登录框中怎么填写? ...
- 安卓开发_关于WebView使用链接时调用浏览器显示的问题
在我们的实际开发中,我们用到WebView就是为了在自己的APP中的某个部分来显示指定网页的效果. 但是在学习的过程中,我发现一个问题: 有的网页使用WebView控件显示出来以后,再点击网页中的某个 ...
- ocLazyLoad按顺序加载
$ocLazyLoad.load({ serie:true, files: [oneFile,twoFile] }) 使用serie:true 这是 传送门
- C#语言————选择结构
int[] num = new int[] {23,76,54,87,51,12 }; //冒泡排序 for (int i = 0; i < num.Length - 1; i++) { for ...
- Windows:添加、删除和修改静态路由
添加一条路由 route add 删除一条路由 route add -p #作用同上,只是这是一条永久路由,不会因为重启机器而丢失. 注意:如果有两条路由记录有着相同的“目的网络号”,则会将两条记录 ...