patch函数的解释1
https://ww2.mathworks.cn/help/matlab/ref/patch.html?ue
语法
patch(X,Y,C)
patch(X,Y,Z,C)
patch('XData',X,'YData',Y)
patch('XData',X,'YData',Y,'ZData',Z)
patch('Faces',F,'Vertices',V)
patch(S)
patch(___,Name,Value)
patch(ax,___)
p = patch(___)
说明
patch(___,
创建多边形,并使用名称-值对组参数指定一个或多个补片属性。补片是包含所有已创建多边形的数据的对象。您可以使用上述语法中的任意输入参数组合指定补片属性。例如,Name,Value
)'LineWidth',2
将所有多边形的轮廓宽度设置为 2 磅。
patch(
将在由 ax
,___)ax
指定的坐标区中,而不是当前坐标区 (gca
) 中创建补片。选项 ax
可以位于前面的语法中的任何输入参数组合之前。
示例
指定坐标
通过指定每个顶点的 (x,y) 坐标创建一个多边形。然后,继续将两个多边形添加到图窗中。
创建一个红色正方形,顶点位于 (0,0)
、(1,0)
、(1,1)
和 (0,1)
。将 x
指定为顶点的 x 坐标,并将 y
指定为 y 坐标。patch
会自动将最后一个 (x,y) 坐标与第一个 (x,y) 坐标连接。
x = [0 1 1 0];
y = [0 0 1 1];
patch(x,y,'red')
通过将 x
和 y
指定为两列矩阵,创建两个多边形。每一列定义其中一个多边形的坐标。patch
将这些多边形添加到当前坐标区中,而不清除坐标区。
x2 = [2 5; 2 5; 8 8];
y2 = [4 0; 8 2; 4 0];
patch(x2,y2,'green')
指定面和顶点
通过指定每个唯一顶点的坐标和定义如何连接这些顶点的矩阵,创建一个多边形。然后,继续将两个多边形添加到图窗中。
创建一个红色正方形,四个角分别位于 (0,0)
、(1,0)
、(1,1)
和 (0,1)
。指定 v
以使每行定义一个顶点的 (x,y) 坐标。然后,将 f
指定为要连接的顶点。通过指定 FaceColor
属性来设置颜色。
v = [0 0; 1 0; 1 1; 0 1];
f = [1 2 3 4];
patch('Faces',f,'Vertices',v,'FaceColor','red')
通过将 f
指定为两行矩阵来创建两个多边形。每一行定义一个补片的面。
v2 = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f2 = [1 2 3;
4 5 6];
patch('Faces',f2,'Vertices',v2,'FaceColor','green')
不同多边形面颜色
创建两个多边形,并为每个多边形面使用不同颜色。使用颜色栏以显示颜色映入颜色图的方式。
使用矩阵 x
和 y
创建多边形。将 c
指定为一个具有两个元素的列向量(因为有两个多边形面),并添加颜色栏。
x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0; 1];
figure
patch(x,y,c)
colorbar
您也可以使用 f
和 v
得到相同的结果。当您创建多边形时,将 FaceVertexCData
设置为一个具有两个元素的列向量(因为有两个多边形面)。将 FaceColor
设置为 'flat'
。
v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 1];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','flat');
colorbar
插入的多边形面颜色
通过在每个多边形顶点上指定一种颜色在不同多边形面上进行颜色插值,并使用颜色栏显示颜色映入颜色图的方式。
使用矩阵 x
和 y
创建多边形。将 c
指定为一个矩阵,其大小与为每个顶点定义一种颜色的 x
和 y
相同,再添加一个颜色栏。
x = [2 5; 2 5; 8 8];
y = [4 0; 8 2; 4 0];
c = [0 3; 6 4; 4 6];
figure
patch(x,y,c)
colorbar
您也可以使用 f
和 v
得到相同的结果。当您创建多边形时,将 FaceVertexCData
设置为一个列向量,每个顶点对应一个值,并将 FaceColor
设置为 'interp'
。
v = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
f = [1 2 3; 4 5 6];
col = [0; 6; 4; 3; 4; 6];
figure
patch('Faces',f,'Vertices',v,'FaceVertexCData',col,'FaceColor','interp');
colorbar
多边形边,不含面
创建一个具有绿色边的多边形,且不显示面。然后,创建第二个多边形,其中每个边具有不同颜色。
v = [0 0; 1 0; 1 1];
f = [1 2 3];
figure
patch('Faces',f,'Vertices',v,...
'EdgeColor','green','FaceColor','none','LineWidth',2);
通过为每个顶点指定一种颜色并将 EdgeColor
设置为 'flat'
,对每条边使用不同颜色。
v = [2 0; 3 0; 3 1];
f = [1 2 3];
c = [1 0 0; % red
0 1 0; % green
0 0 1]; % blue
patch('Faces',f,'Vertices',v,'FaceVertexCData',c,...
'EdgeColor','flat','FaceColor','none','LineWidth',2);
使用结构体的多边形
使用一个结构体创建两个多边形。首先,创建一个结构体,其中的字段名称与补片属性名称相匹配。然后,使用该结构体创建多边形。
clear S
S.Vertices = [2 4; 2 8; 8 4; 5 0; 5 2; 8 0];
S.Faces = [1 2 3; 4 5 6];
S.FaceVertexCData = [0; 1];
S.FaceColor = 'flat';
S.EdgeColor = 'red';
S.LineWidth = 2;
figure
patch(S)
半透明的多边形
通过将 FaceAlpha
属性设置为 0
和 1
之间的值,创建两个半透明的多边形。
v1 = [2 4; 2 8; 8 4];
f1 = [1 2 3];
figure
patch('Faces',f1,'Vertices',v1,'FaceColor','red','FaceAlpha',.3); v2 = [2 4; 2 8; 8 8];
f2 = [1 2 3];
patch('Faces',f2,'Vertices',v2,'FaceColor','blue','FaceAlpha',.5);
创建多种颜色的线条
创建一个多种颜色的线条,其中每个顶点上都有标记。插入颜色,并使用颜色栏显示值映射到颜色图的方式。
创建数据。将 y
的最后一个条目设置为 NaN
,使 patch
创建一个线条,而非一个闭合多边形。使用 y
值为每个顶点定义一种颜色。c
中的值映射到颜色图中的颜色。
x = linspace(1,10,15);
y = sin(x);
y(end) = NaN;
c = y;
创建线条。在每个顶点上显示标记,并将 EdgeColor
设置为 'interp'
以在顶点之间插入颜色。添加颜色栏。
figure
patch(x,y,c,'EdgeColor','interp','Marker','o','MarkerFaceColor','flat');
colorbar;
输入参数
X
- 顶点的 x 坐标
向量 | 矩阵
顶点的 x 坐标,指定为下列形式之一:
向量 - 创建一个多边形。
矩阵 - 创建
n
个多边形,每个多边形包含m
个顶点,其中[m,n] = size(X)
。矩阵中的每一列对应于一个多边形。
如果数据未定义闭合的多边形,则 patch
将使多边形闭合。如果单个多边形的各条边彼此相交,则生成的多边形可能会得到部分填充。在这种情况下,最好是将补片对象划分成若干个较小的多边形。
如果您指定 X
,patch
函数会将补片对象的 XData
属性设置为相同的值。补片对象会自动计算面和顶点的数据,并将 Faces
和 Vertices
属性设置为适当的值。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Y
- 顶点的 y 坐标
向量 | 矩阵
顶点的 y 坐标,指定为下列形式之一:
向量 - 创建一个多边形。
矩阵 - 创建
n
个多边形,每个多边形包含m
个顶点,其中[m,n] = size(Y)
。矩阵中的每一列对应于一个多边形。
如果数据未定义闭合的多边形,则 patch
将使多边形闭合。如果单个多边形的各条边彼此相交,则生成的多边形可能会得到部分填充。在这种情况下,最好是将补片对象划分成若干个较小的多边形。
如果您指定 Y
,patch
函数会将补片对象的 YData
属性设置为相同的值。补片对象会自动计算面和顶点的数据,并将 Faces
和 Vertices
属性设置为适当的值。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
C
- 多边形的颜色
标量 | 向量 | 矩阵 | RGB 三元数 | 'r'
| 'g'
| 'b'
| ...
多边形的颜色,指定为标量、向量、矩阵或颜色名称。输入的格式确定所有多边形是具有相同的颜色、每个面一种颜色还是使用插入的面颜色。
所需的效果 | 使用以下格式之一: | 结果 |
---|---|---|
所有面一种颜色 |
有关示例,请参阅 指定坐标。 |
|
每个面一种颜色 |
有关示例,请参阅 不同多边形面颜色。 |
|
插入的面颜色 |
有关示例,请参阅 插入的多边形面颜色。 |
|
RGB 三元数是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1]
范围内,例如 [0.4 0.6 0.7]
。此外,还可以按名称指定一些常见的颜色。下表列出长和短颜色名称选项以及对应的 RGB 三元数值。
选项 | 说明 | 对应的 RGB 三元数 |
---|---|---|
'red' 或 'r' |
红色 | [1 0 0] |
'green' 或 'g' |
绿色 | [0 1 0] |
'blue' 或 'b' |
蓝色 | [0 0 1] |
'yellow' 或 'y' |
黄色 | [1 1 0] |
'magenta' 或 'm' |
品红色 | [1 0 1] |
'cyan' 或 'c' |
青蓝色 | [0 1 1] |
'white' 或 'w' |
白色 | [1 1 1] |
'black' 或 'k' |
黑色 | [0 0 0] |
V
- 多边形顶点
两列或三列矩阵
F
- 面定义
行向量 | 矩阵
面定义,指定为下列形式之一:
行向量 - 创建一个多边形。
矩阵 - 创建多个多边形,其中每一行对应于一个多边形。
例如,以下代码在 V
中定义三个顶点,并通过将顶点 1 连接到 2、2 连接到 3 和 3 连接到 1 来创建一个多边形。
V = [1 1; 2 1; 2 2];
F = [1 2 3 1];
patch('Faces',F,'Vertices',V)
如果您指定 F
,patch
函数会将补片对象的 Faces
属性设置为相同的值。补片对象会自动计算坐标数据,并将 XData
、YData
和 ZData
设置为适当的值。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
S
- 补片定义
结构体
补片定义,指定为一个结构体,其中包含对应于补片属性名称的字段和对应于补片属性值的字段值。
ax
- 坐标区对象
坐标区对象
坐标区对象。如果您不指定坐标区对象,则 patch
使用当前坐标区。
名称-值对组参数
patch(x,y,c,'FaceAlpha',.5,'LineStyle',':')
创建包含点线边的半透明多边形。此处所列的属性只是一部分补片属性。有关完整列表,请参阅 Patch 属性。
'FaceColor'
- 面颜色
[0 0 0]
(默认) | 'flat'
| 'interp'
| RGB 三元数 | 'r'
| 'g'
| 'b'
| ...
面颜色,指定为 'flat'
、'interp'
、RGB 三元数或表中列出的颜色选项之一。
'flat'
- 均匀设置面颜色。首先,将CData
或FaceVertexCData
指定为一个数组,其中一个面一个颜色,或者每个顶点对应一种颜色。如果您为每个顶点指定一种颜色,则指定的第一个顶点的颜色将确定面的颜色。'interp'
- 在每个面上插入颜色。首先,将CData
或FaceVertexCData
指定为一个数组,其中一个顶点对应一个值。通过在每个顶点上使用双线性插值确定面的颜色。
要对所有面使用同一种颜色,请指定 RGB 三元数或表中列出的颜色选项之一。RGB 三元数是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1]
范围内,例如 [0.4 0.6 0.7]
。此外,还可以按名称指定一些常见的颜色。下表列出长和短颜色名称选项以及对应的 RGB 三元数值。
选项 | 说明 | 对应的 RGB 三元数 |
---|---|---|
'red' 或 'r' |
红色 | [1 0 0] |
'green' 或 'g' |
绿色 | [0 1 0] |
'blue' 或 'b' |
蓝色 | [0 0 1] |
'yellow' 或 'y' |
黄色 | [1 1 0] |
'magenta' 或 'm' |
品红色 | [1 0 1] |
'cyan' 或 'c' |
青蓝色 | [0 1 1] |
'white' 或 'w' |
白色 | [1 1 1] |
'black' 或 'k' |
黑色 | [0 0 0] |
'none' |
无颜色 | 不适用 |
'FaceAlpha'
- 面透明度
1 (默认) | 范围 [0,1]
中的标量 | 'flat'
| 'interp'
面透明度,指定为下列值之一:
范围
[0,1]
中的标量 - 在所有面上使用统一的透明度。值为1
时完全不透明,值为0
时完全透明。此选项不会使用FaceVertexAlphaData
属性中的透明度值。'flat'
- 根据FaceVertexAlphaData
属性中的值,对每个面使用不同的透明度。首先,您必须将FaceVertexAlphaData
属性指定为向量,其中一个面或一个顶点对应一个透明度值。第一个顶点的透明度值确定整个面的透明度。'interp'
- 根据FaceVertexAlphaData
属性中的值,对每个面使用插值透明度。首先,您必须将FaceVertexAlphaData
属性指定为一个向量,其中一个顶点对应一个透明度值。通过对各顶点处透明度数值进行插值,每个面上的透明度会有所变化。
'EdgeColor'
- 边颜色
[0 0 0]
(默认) | 'none'
| 'flat'
| 'interp'
| RGB 三元数 | 'r'
| 'g'
| 'b'
| ...
边颜色,指定为下表中的值之一。默认边颜色是 RGB 三元数值为 [0 0 0]
的黑色。如果多个多边形共享一条边,则最先绘制的多边形将控制显示的边颜色。
值 | 说明 | 结果 |
---|---|---|
RGB 三元数或颜色名称 |
所有边使用一种颜色。如需更多详细信息,请参阅下表。 |
|
'flat' |
每条边使用不同颜色。使用顶点颜色设置该顶点之后的边的颜色。您必须先将 |
|
'interp' |
插入的边颜色。您必须先将 |
|
'none' |
不显示边。 |
不显示边。 |
RGB 三元数是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1]
范围内,例如 [0.4 0.6 0.7]
。此外,还可以按名称指定一些常见的颜色。下表列出长和短颜色名称选项以及对应的 RGB 三元数值。
选项 | 说明 | 对应的 RGB 三元数 |
---|---|---|
'red' 或 'r' |
红色 | [1 0 0] |
'green' 或 'g' |
绿色 | [0 1 0] |
'blue' 或 'b' |
蓝色 | [0 0 1] |
'yellow' 或 'y' |
黄色 | [1 1 0] |
'magenta' 或 'm' |
品红色 | [1 0 1] |
'cyan' 或 'c' |
青蓝色 | [0 1 1] |
'white' 或 'w' |
白色 | [1 1 1] |
'black' 或 'k' |
黑色 | [0 0 0] |
'LineStyle'
- 线型
'-'
(默认) | '--'
| ':'
| '-.'
| 'none'
线型,指定为下表中列出的线型之一。
线型 | 说明 | 表示的线条 |
---|---|---|
'-' |
实线 |
|
'--' |
虚线 |
|
':' |
点线 |
|
'-.' |
点划线 |
|
'none' |
无线条 | 无线条 |
输出参数
p
- 补片对象
标量
补片对象,以标量形式返回。每个补片对象可以由一个或多个多边形组成。使用 p
可在创建补片对象后查询或更改其属性。
在 R2006a 之前推出
patch函数的解释1的更多相关文章
- patch函数的解释2
patch 创建补片图形对象 句法: patch(X,Y,C) patch(X,Y,Z,C) patch(FV) patch(...'PropertyName',propertyvalue...) p ...
- 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( ...
随机推荐
- Java入门 第10天 ,理解数组
数组的特点: 1.内容的类型固定,不会int String 两个类型一起,要么是int类型 要么是String类型 或者其他类型. 2.长度是固定的,例:String [ ] myArray = ...
- Java集合之HashSet源码分析
概述 HashSet是基于HashMap来实现的, 底层采用HashMap的key来保存数据, 借此实现元素不重复, 因此HashSet的实现比较简单, 基本上的都是直接调用底层HashMap的相关方 ...
- vue自制switch滑块
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 前端学习 之 Bootstrap (一)
中文文档 一.前言 1.简介 Bootsrtap作为一个前端框架,开箱即用,封装了前段开发的大量底层细节,开放灵活,对响应式设计网页很好支持,组件丰富,社区活跃. 特点: 可重用性 一致性 灵活的栅栏 ...
- Jetbrains IDE 中 compass sass 设置
环境 Ubuntu 13.10 1. 安装ruby sudo apt-get install ruby 如果后面安装 compass 时遇到安装失败,提示:“[Ubuntu] ERROR: Faile ...
- 【读书笔记】iOS-MVC
用户的每一个动作都是以一个View的Action方式传递给Controller,然后,Controller再发送消息通知Model做出响应的逻辑处理,当Model层面上的业务逻辑处理有了结果之后,Mo ...
- mooc《数据结构》 习题1.8 二分查找
本题要求实现二分查找算法. 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Posi ...
- Angular2 富文本编辑器 ng2-ckeditor 的使用
本文介绍如何在 Angular 中使用 ng2-ckeditor 控件,示例代码基于 angular 6.0.2,node 8.11.2, ng2-ckeditor 4.9.2 环境 1. 安装 ...
- 自己搭建git 代码服务器
使用git服务器的工程师都需要生成一个ssh的公钥 ~/.ssh$ ssh-keygen Generating public/private rsa key pair. …………………… ……………… ...
- mysql初次启动相关配置
一.启动mysql服务 使用mysql之前,首先要启动mysql服务器端.使用命令mysqld.在命令行终端先进入mysql安装的目录直到bin目录,如图: 运行这个命令,可能会报错,提示找不到dat ...