How do I plot a 3D cube in a 3D array?

Hi all,
I was wondering how I can plot a 3D-shape of a cube. I have tried https://in.mathworks.com/matlabcentral/fileexchange/15161-plotcube but this give me a 2D-array, and I cannot seem to get a 3D-array out of it. I have the following code:
array_width=101;%must be odd
outer_cube=create_cube(array_width);
figure; cube=isosurface(outer_cube,0);
patch(cube,'FaceColor',[0 0 .7],'EdgeColor',[0 0 1]);
view(45,45); axis equal; title('Simulation of solid cube');
function cube=create_cube(array_width)
a=(array_width-1)/2;
a=linspace(-a,a,array_width);
[X,Y,Z]=meshgrid(a);
cube=(X.*Y.*Z);
end
But, this give me the following figure:
Can somebody help me out please? Thanks!

回答(1 个)

4 个评论

array_width=101;%must be odd
[cube, faces]=create_cube(array_width);
figure
patch('Vertices',cube,'Faces',faces,'FaceColor',[0 0 .7],'EdgeColor',[0 0 1]);
view(3)
axis equal
title('Simulation of solid cube')
function [cube,faces]=create_cube(array_width)
a=(array_width-1)/2;
cube = unique(nchoosek([-a a -a a -a a],3),"rows");
faces = [1 2 4 3;
5 6 8 7;
1 2 6 5;
3 4 8 7;
1 3 7 5;
2 4 8 6];
end
Hi Cris, thank you for your ellaboration. But, this gives me a 8x3 cube, which is a 2D array, and I would like have a 3D-array. Any idea how to implement that?
I would look into slice. To work as I want, I had to adjust your function to return the X,Y,and Z data, too.
array_width=101;%must be odd
[X,Y,Z,outer_cube]=create_cube(array_width);
figure
s = slice(X,Y,Z,outer_cube,[-50 50],[-50 50],[-50 50]);
set(s,'EdgeColor','none')
function [X,Y,Z,cube]=create_cube(array_width)
a=(array_width-1)/2;
a=linspace(-a,a,array_width);
[X,Y,Z]=meshgrid(a);
cube=(X.*Y.*Z);
end
Here's another approach
array_width=101;%must be odd
[X,Y,Z,outer_cube]=create_cube(array_width);
figure
k=boundary([X(:),Y(:),Z(:)]);
trisurf(k,X(:),Y(:),Z(:),outer_cube,'EdgeColor','none')
function [X,Y,Z,cube]=create_cube(array_width)
a=(array_width-1)/2;
a=linspace(-a,a,array_width);
[X,Y,Z]=meshgrid(a);
cube=(X.*Y.*Z);
end

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Graphics Objects 的更多信息

产品

版本

R2020a

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by