您的位置:首页 > 编程语言 > MATLAB

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

2006-12-01 17:43 267 查看
Matlab中绘制度长方体3D图形

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

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

图形效果如下



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以下是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 图形 网格