2015-04-22 32 views
0

我想繪製一個3d對象的曲面網格的四邊形貼片..我有x,y,z這是4Xn其中4是四邊形的每個頂點,n是四邊形,c這是一個3Xn RGB矩陣。當使用patch(x, y, z,c);
我得到的錯誤在matlab中使用「補丁」功能時出錯

`Error using patch` 
`Size of C must match sizes of X Y [Z]` 

但這個工程的x,y,z這是3Xn的三角面片和c一個3XN RGB向量。請糾正我出錯的地方。

+1

請張貼代碼使用的是(或者你可以創建仍返回誤差最小的例子)。 – Tom

+0

嗨,這裏是鏈接到變量[Gdrive] 函數是'補丁(vertQuad.x,vertQuad.y,vertQuad .Z,CQUAD);」 – manoj

+0

我不認爲你包含cQuad數據 – Tom

回答

0

您不需要爲每個patch提供一個RGB值,您需要爲每個正在繪製的頂點給出patch值(由於數據的格式)。

cQuad=permute(repmat(cQuad,[1 1 4]),[3 2 1]); 

patch(vertQuad.x,vertQuad.y,vertQuad.z,cQuad) 

正常工作:

與您的數據和該行

左右。我要做的就是使用repmat重複顏色的4倍,然後才能在格式尺寸patch喜歡使用permute

+1

謝謝安德...這是明確提到的任何手冊或是它只是基於函數語法來理解。 – manoj

+0

@manoj補丁有時候可能有點棘手,因爲根據你給的輸入格式和你使用什麼顏色格式(索引,RGB,...),它可以做不同的事情。但有時候這有點令人困惑!我認爲Matlab的幫助應該更具體一些!在這種情況下,當我轉置矩陣時,錯誤被掛起,並且說'C應該是[MxN]或者[MxNx3]',所以我猜想它需要用於每個頂點。 –

+0

謝謝我現在得到它..和錯誤我離開了我無言..如果你不介意你可以從答案中刪除圖片.. – manoj