Matlab中绘制度长方体3D图形

Matlab中绘制度长方体3D图形

已知空间中长方体网格的三维坐标(x,y,z)及其对应的值Value,绘制出长方体的各个面,

各个面的颜色根据对应坐标的值设定。

图形效果如下

Matlab中绘制度长方体3D图形_第1张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以下是matlab中的代码

clear;
clc;
% colormap([0 0 0;1 1 1]);
caxis=[0 1];
nx=10;
ny=5;
nz=5;
value=ones(nx,ny,nz);

for k=1:nz
    for j=1:ny
        for i=1:nx
%             value(i,j,k)=i;
            value(i,j,k)=rand;
        end;
    end
end
x=1:nx;
y=1:ny;
z=1:nz;

close all;
% x=1 yz面
[Y,Z]=meshgrid(1:ny,1:nz);
X=ones(nz,ny);
C=X;
for k=1:nz
    for j=1:ny
        C(k,j)=value(1,j,k);
    end;
end
surf(X,Y,Z,C);
hold on;
% x=nx yz面
X=zeros(nz,ny)+nx;
C=X;
for k=1:nz
    for j=1:ny
        C(k,j)=value(nx-1,j,k);
    end;
end
% mesh(X,Y,Z);
surf(X,Y,Z,C);
hold on;
%
% y=1 xz面
[X,Z]=meshgrid(1:nx,1:nz);
Y=ones(nz,nx);
C=Y;
for k=1:nz
    for i=1:nx
        C(k,i)=value(i,1,k);
%           C(k,i)=rand;       
    end;
end
% mesh(X,Y,Z);
surf(X,Y,Z,C);
hold on;
% y=ny xz面
Y=zeros(nz,nx)+ny;
C=Y;
for k=1:nz
    for i=1:nx
        C(k,i)=value(i,ny-1,k);
    end;
end
% mesh(X,Y,Z);
surf(X,Y,Z,C);
hold on;

% z=1 xy面
[X,Y]=meshgrid(1:nx,1:ny);
Z=ones(ny,nx);
C=Z;
for j=1:ny
    for i=1:nx
        C(j,i)=value(i,j,1);
    end;
end
% mesh(X,Y,Z);
surf(X,Y,Z,C);
hold on;
% z=nz xy面
Z=zeros(ny,nx)+nz;
C=Z;
for j=1:ny
    for i=1:nx
        C(j,i)=value(i,j,nz-1);
    end;
end
% mesh(X,Y,Z);
surf(X,Y,Z,C);
% surf(X,Y,Z,C,'CDataMapping','direct');
hold on;
axis square
axis([0 nx+1 0 ny+1 0 nz+1]);
colorbar;
% colormap hot

xlabel('x');
ylabel('y');
zlabel('z');
 

你可能感兴趣的:(matlab,c,图形,网格)