我正在尝试绘制一个三维坐标系(X,Y,Z),然后我想在这个三维坐标系中用一些颜色遮蔽一个区域,例如阴影区域定义如下:
Z> Y> X
有人可以帮忙吗?
我做了以下但是似乎无法知道如何继续,
a=0:0.1:10;
b=0:0.1:10;
c=0:0.1:10;
[x,y,z]=meshgrid(a,b,c);
答案 0 :(得分:0)
好的,那么你需要能够绘制体积数据。您可以做的最好的事情是下载vol3d以实现这一目标。它是一个非常好的体素可视化器。
然后:
a=0:0.1:10;
b=0:0.1:10;
c=0:0.1:10;
[x,y,z]=meshgrid(a,b,c);
shaded_area=false(size(x));
% Your rules
shaded_area=y>x; % two ways ;).
shaded_area(z>y)=true;
% Plot it!
vol3d('Cdata',shaded_area);
然而,当你正在试图绘制体积布尔数据时,我建议你使用这几个好东西来获得更好的"更好的"可视化,不再。
vol3d('Cdata',smooth3(uint8(shaded_area),'gaussian'))
axis([0 length(a) 0 length(b) 0 length(c)])
view(122,14)
axis off
答案 1 :(得分:0)
根据您所说的阴影,这可以作为一个起点:
创建满足条件的点3D网格和逻辑3D数组:
[X,Y,Z] = meshgrid(1:100,1:100,1:100);
ShadeRegion=(Z > Y).*(Y> X);
然后使用内置函数isosurface
:
fv = isosurface(X,Y,Z,ShadeRegion,0.5);
然后,您可以在the manual中显示isosurfaces时应用该示例:
p=patch(fv);
set(p,'FaceColor','red','EdgeColor','none');
daspect([1,1,1])
view(3); axis tight
camlight
lighting gouraud
结果: