1

我正在 MATLAB 中绘制一个 3D 对象,比如一个立方体。

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;

在情节中,如何删除内部对角线?该图应该只显示立方体的边缘。我正在寻找适用于任何多面体的通用解决方案。

4

1 回答 1

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

于 2013-02-10T04:24:00.773 回答