本文是我自己在學習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軸有等長的單位。你可以...