matlab中patch函式的用法

2021-07-24 14:33:44 字數 2770 閱讀 7442

本文是我自己在學習matlab是看到的寫得不錯的文章,原文出處

描述:

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)

顏色資料說明:

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座標

注意每個面和其他面之間共用兩個頂點。

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函式的用法

描述 patch是個底層的圖形函式,用來建立補片圖形物件。乙個補片物件是由其頂點座標確定的乙個或多個多邊形。使用者可以指定補片物件的顏色和燈光。patch x,y,c 新增已填充的二維補片到當前座標軸。x和y中的元素指定了多邊形的定點。如果x和y是矩陣,matlab將每一列生成乙個多邊形。c決定了補...

MATLAB中的length函式

在matlab中 size 獲取陣列的行數和列數 length 陣列長度 即行數或列數中的較大值 numel 元素總數。s size a 當只有乙個輸出引數時,返回乙個行向量,該行向量的第乙個元素時陣列的行數,第二個元素是陣列的列數。r,c size a 當有兩個輸出引數時,size函式將陣列的行數...

Matlab中的rectangle函式

matlab中的rectangle函式 樓外樓 rectangle函式功能 建立二維矩形物件。rectangle position x,y,w,h 從點 x,y 開始繪製乙個寬w高h的矩形,對座標軸資料單元指定值。注意,按指定的比例顯示矩形,需要設定座標軸資料寬高比來使得x和y軸有等長的單位。你可以...