赞
踩
-
- clc,clear
- v=csvread('vdata.txt'); % 数据 这里的数据矩阵为v(5*27*6),可以看成一本27页纸,每页绘制了5*6的网格,
- % 然后27页纸叠在一起。当你理解本图绘制后,数据可以随意制作
- % 读取文件,也可以读取一部分
- v=reshape(v,5,27,6); % 语法是 A = reshape(A,m,n); 或者 A = reshape(A,[m,n]);
- % 都是将A 的行列排列成m行n列。另外 reshape是按照列取数据的
- [x,y,z]=meshgrid(1:27,1:5,1:6); % 三维网格化
- h=figure(1);
- set(h,'name','取单切片')
- subplot(221)
- slice(x,y,z,v,[],[1],[]); % 切片函数 y=1
- shading interp % 平滑处理
- set(gca,'zdir','reverse'); % ‘’都是属性调整
- axis equal % 将横轴纵轴的定标系数设成相同值 ,即单位长度相同
- grid on
- subplot(222)
- slice(x,y,z,v,[],[2],[]); % 切片函数 y=2
- shading interp % 平滑处理
- colormap('jet') % 颜色属性
- set(gca,'zdir','reverse'); % ‘’都是属性调整
- axis equal
- grid on
- subplot(223)
- slice(x,y,z,v,[],[3],[]);
- shading interp
- set(gca,'zdir','reverse');
- axis equal
- grid on
- subplot(224)
- slice(x,y,z,v,[],[4],[]);
- shading interp
- set(gca,'zdir','reverse');
- axis equal
- grid on
-
- % 2.全空间立体切片
- h2=figure(2);
- set(h2,'name','全空间切片','MenuBar','none','ToolBar','none')
- slice(x,y,z,v,[1:2:27],[2 3 4],[2 3 4 5]) % x方向1-27,以2位单元,y方向 分成3分,z方向分成4分
- shading interp % 图像平滑
- colorbar % 颜色条
- colormap('jet') % 颜色属性
- set(gca,'zdir','reverse'); % 属性调整
- axis equal
- grid on
- box on % 显示坐标区轮廓 显示围绕当前坐标区的框轮廓
-
- % 3.立体包络图
- h3=figure(3);
- subplot(221);
- set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
- set(gcf,'InvertHardcopy','off')
- fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
- fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
- % isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
- p=patch(fv); % 创建一个或多个填充多边形
- set(p,'facecolor','b','edgecolor','none');
- patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
- % colorbar
- % colormap('jet')
- box on
- daspect([1,1,1]) % 坐标轴尺寸变化为1:1:1
- view(3) % 观看角度 三维视角
- set(gca,'zdir','reverse','color',[0.2,0.2,0.2]);
- camlight % 在照相机坐标系中创建或移动光源对象
- camproj perspective % 设置或查询投影类型
- lighting phong % 指定光照算法
- axis equal
- grid on
- % title(['最外层表面的值为: ' , num2str(fw)]);
-
- % 三维投影
- hold on
- subplot(222);
- set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
- set(gcf,'InvertHardcopy','off')
- fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
- fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
- %isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
- p=patch(fv); % 创建一个或多个填充多边形
- set(p,'facecolor','b','edgecolor','none');
- patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
- % colorbar
- % colormap('jet')
- box on
- daspect([1,1,1]) % 坐标轴尺寸变化为1:1:1
- view(90,0); %在yoz面上的投影
- set(gca,'zdir','reverse','color',[0.2,0.2,0.2]);
- camlight % 在照相机坐标系中创建或移动光源对象
- camproj perspective % 设置或查询投影类型
- lighting phong % 指定光照算法
- axis equal
- grid on
- % title(['最外层表面的值为: ' , num2str(fw)]);
-
- hold on
- subplot(223);
- set(h3,'name','定值包络立体图','MenuBar','none','ToolBar','none')
- set(gcf,'InvertHardcopy','off')
- fw=150; % fw是作主要可变参数,控制最外层包络面的值 %%此值为最外层包络面取值
- fv=isosurface(x,y,z,v,fw); % 从三维体数据中提取等值面数据
- %isovalue 中指定的等值面值处的体数据 V 计算等值面数据。等值面连接具有指定值的点,与等高线连接仰角相同的点的方式大致相同
- p=patch(fv); % 创建一个或多个填充多边形
- set(p,'facecolor','b','edgecolor','none');
- patch(isocaps(x,y,z,v, fw), 'FaceColor', 'interp', 'EdgeColor', 'none');% isocaps 计算等值面端帽几何图
- ....................................
-
D202
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。