2013-02-10 37 views
1

我在MATLAB中繪製一個3D對象,比方說一個立方體。使用補丁功能刪除3D MATLAB圖中的內部邊線

Node = [0 0 0; 1 0 0; 1 1 0; 0 1 0; 0 0 1; 1 0 1; 1 1 1; 0 1 1]; 
Elem = cell(1); Elem{1} = 1:8; 
figure 
for elm = 1:size(Elem,1)  
    X = Node(Elem{elm},:); K = convhulln(X); hold on;  
    patch('Faces',K,'Vertices',X,'FaceColor',rand(1,3),'FaceAlpha',1.0); 
end 
view(3); grid off; axis equal; cameramenu; axis off; 

在圖中,我該如何去除內部對角線?情節應該只顯示立方體的邊緣。我正在尋找適用於任何多面體的通用解決方案。

回答

2

K=convhulln(X);的輸出正在造成這種情況,因爲凸包將具有三角形面(這是默認設置)。 相反,如果你定義K是:

K= [1 2 3 4; ... 
    2 6 7 3; ... 
    4 3 7 8; ... 
    1 5 8 4; ... 
    1 2 6 5; ... 
    5 6 7 8]; 

你會得到它的權利。

另一種選擇是使用來自FEX的geom3D

+0

謝謝!這對於立方體很有用。一般多面體呢? – 2013-02-10 04:27:09

+0

看到我編輯的關於geom3D的答案 – bla 2013-02-10 04:29:45