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');
已知空间中长方体网格的三维坐标(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图形绘制经典案例 (2)
- OpenGL3D图形绘制
- MATLAB平面几何图形绘制实例
- Matlab 读取数据并绘制图形
- 经典图形的绘制(matlab)
- 绘制图形与3D增强技巧(四)----多边形图元及其点画模式
- 本节将演示在3D空间中绘制图形的几个简单实例:
- matlab 绘制条状图形
- OpenGL ES绘制3D图形
- Matlab图形绘制经典案例 (1)
- 利用qwtplot3d绘制3维图形
- 手把手教你用PHP绘制3D图形
- MATLAB 三维图形的绘制
- (十)利用processing绘制3D图形
- matlab绘制概率分布图形
- QT与OpenGL之3D图形绘制
- MATLAB 3D 动画制作(一)- 3D 图形设计
- 绘制图形与3D增强技巧(五)----多边形图元的使用及其他
- matplotlib函数库使用Axes3D绘制3D图形
- Matlab图形绘制经典案例 (2)