Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用面片函数去除3D MATLAB绘图中的内部边缘_Matlab_Plot - Fatal编程技术网

使用面片函数去除3D MATLAB绘图中的内部边缘

使用面片函数去除3D MATLAB绘图中的内部边缘,matlab,plot,Matlab,Plot,我正在用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

我正在用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;

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

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使用。

谢谢!这对立方体非常有效。一般多面体怎么样?