Matlab科学计算可视化——基于wind的向量数据集合

标签:
宋体等值线图流线图科学计算向量场校园 |
云南财经大学实验报告
系
专
班
组
课程名称:
实验时间:
指导教师:
云南财经大学教务处制
填表说明
1.
2.
3.
4.
5.
6.
7.
8.
实验名称 |
Matlab科学计算可视化——基于wind的向量数据集合(它代表流过北美洲的气流)分析气流变化
|
实验目的 |
计算机技术的仿真,使大型数值计算得以实现。本实验选取了Matlab自带的wind向量数据集,利用Matlab提供的对标量数据和矢量数据进行可视化的函数,利用这些函数绘制等值线图、矢量图、等值面图、等帽盖图、剖面图、流线图、流锥图、流沙图、流带图、流管图、卷曲图等多种图形。 利用计算机生成的数据绘图,从而以一种很直观的方式表现了流过北美洲的气流变化情况,非常有利于信息提取和反馈决策。
|
实验内容(算法、程序、步骤和方法) |
一、概述
MATLAB提供了比较完备的科学计算可视化函数。利用这些函数,可以绘制二维/三维的矢量图、等值线图、剖面图以及流线图、流锥图、流管图、流带图和卷曲图等表现流动特征的图形;利用快照技术,可以实现动画。而且,在 本实验采用的数据来自Matlab自带的wind向量数据集合,它代表流过北美洲的气流。具体数据可以利用 二、实验器材(设备、元器件) 操作平台:Windows7 硬件设备:台式机 软件:MATLAB2009b云端版 三、实验所用数据、公式、函数
1、数据:x,y,z,u,v,w
2、公式:wind_speed=file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-17528.png
3、函数:contour(等值线图)、contourf(填充等值线图)、contour3(三维等值线图)、streamline(向量数据的流线图)、stream3(三维流线图)、stream2(二维流线图)、quiver(矢量图)、quiver(三维矢量图)、cur(向量场的卷曲和角速度)、coneplot(三维流锥图)、streamtube(三维流管图)、streamribbon(流带图)、streamparticles(流沙图)、streamslice(切片面板中叠加流线图)、slice(剖面图)、isosurface(等值面图) 四、试验内容(方法、程序、说明) 1、向量数据的流线图(剖面图、等值线图、流线图)
(1)确定坐标范围
(2)添加切片面板(剖面图)
生成图形如图1.1所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-10963.png 图1.1
(3)添加等值线到切片面板
生成图形如图1.2所示。
(4)定义流线
hlines set(hlines,'LineWidth',2,'Color','r') 生成图形如图1.3所示。
(5)定义视角
view(3)
daspect([2,2,1])
axis 生成图形如图1.4所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-2892.png 图1.2
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-947.png 图1.3 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-4026.png 图1.4
2、
与
(1)选择进行绘图的数据子集
load
lims
[x,y,z,u,v,w]
(2)计算卷曲角速度和气流流速
cav
wind_speed
(3)生成流带图
>>
>>
>>
>> 生成图形如图2.1所示。
(4)设置视角并添加光照
>>
>>
>>
>>
>> 生成图形如图2.2所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-989.png 图2.1 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-14076.png 图2.2
3、
输入参数包括体积、向量场组分和流管起点位置的坐标。
(1)装入数据,计算需要的数值。
load
xmin
xmax
ymin
alt
wind_speed
(2)绘切片面板
hslice
set(hslice,'FaceColor','interp','EdgeColor','none')
colormap 生成图形如图3.1所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-9849.png 图3.1
(3)添加等值线图到切片面板中
color_lim
cont_intervals
hcont
set(hcont,'EdgeColor',[.4 生成图形如图3.2所示。
(4)创建流管图 在通过设置表面属性控制流管的表面特性以前,流管为表面对象。这里将表面属性设置为高亮照射、红色表面。
[sx,sy,sz]
daspect([1,1,1])
htubes set(htubes,'EdgeColor','none','FaceColor','r','AmbientStrength',.5) 生成图形如图3.3所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-22306.png 图3.2 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-15031.png 图3.3
(5)定义视角,添加光照
view(-100,30)
axis(volumebounds(x,y,z,wind_speed))
set(gca,'Projection','perspective')
camlight 生成图形如图3.4所示。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-5753.png 图3.4
4、创建流动微粒快照
(1)指定绘图数据范围的起点
load
[sx
(2)创建流线图
verts
sl 生成图形如图4.1所示。
(3)定义视图
view(-10.5,18)
daspect([2
axis 生成图形如图4.2所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-31267.png 图4.1 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-2821.png 图4.2
(4)计算流动微粒顶点
iverts
set(gca,'drawmode','fast'); streamparticles(iverts,15,'Animate',10,'ParticleAlignment','on','MarkerEdgeColor','none','MarkerFaceColor','red','Marker','o'); 生成图形如图4.3所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-690.png 图4.3 5、带圆锥图的向量场(等帽盖图、流锥图)
(1)创建等表面
load
wind_speed
hiso
isonormals(x,y,z,wind_speed,hiso) set(hiso,'FaceColor','red','EdgeColor','none'); 生成图形如图5.1所示。
(2)添加等帽盖到等表面
hcap
colormap 生成图形如图5.2所示。
(3)创建第一个圆锥集
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-17118.png 图5.1 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-23085.png 图5.2
绘锥体并设置表面颜色为蓝色,不设置边缘颜色。
daspect([1,1,1]);
[f
h1
set(h1,'FaceColor','blue','EdgeColor','none'); 生成图形如图5.3所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-25721.png 图5.3
(4)创建第二个圆锥集
xrange
yrange
zrange
[cx,cy,cz]
h2
set(h2,'FaceColor','green','EdgeColor','none'); 生成图形如图5.4所示。 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-3546.png 图5.4
(5)定义视角,设置投影类型,添加光照
axis
box
camproj
camzoom(1.25) view(65,45)
camlight(-45,45)
set(gcf,'Renderer','zbuffer');
lighting
set(hcap,'AmbientStrength',.6) file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-19995.png 图5.5
6、
在这里利用
load
daspect([1
streamslice(x,y,z,u,v,w,[],[],[5])
axis
load
daspect([1
[verts
streamline([verts
spd
hold
slice(spd,10,10,10);
colormap(hot)
shading
view(30,50);
camlight; file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-22682.png 图 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-5643.png 图
7、
(1)装载数据
load
xmin
xmax
ymin
ymax
zmin
(2)创建圆锥体图
daspect([2,2,1])
xrange
yrange
zrange
[cx
hcones set(hcones,'FaceColor','red','EdgeColor','none')
绘制结果如图
(3)添加分片面板
hold
wind_speed
hsurfaces
set(hsurfaces,'FaceColor','interp','EdgeColor','none')
hold file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-19159.png 图 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-6471.png 图 (4)定义视图,添加光线 使用 光源会影响分片面板(表面)和圆锥体(阴影)。在相机右侧给光,给圆锥体和分片面板一个平滑、三维的表面。对于每个分片面板,增加
axis
camproj
camlight
set(hsurfaces,'AmbientStrength',.6) set(hcones,'DiffuseStrength',.8) file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-2801.png 图
8、
load
[sx
verts
sl
iverts
axis
camproj
set(gca,'DrawMode','fast')
box streamparticles(iverts,35,'animate',10,'ParticleAlignment','on')
load
daspect([1
[verts
sl
axis
set(sl,'Visible','off')
iverts
set(gca,'DrawMode','fast','Position',[0
set(gcf,'Color','black') streamparticles(iverts,200,'Animate',100,'FrameRate',40,'MarkerSize',10,'MarkerFaceColor','yellow') file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-29877.png 图 file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-14865.png 图
9、
load
[sx
daspect([1
streamribbon(x,y,z,u,v,w,sx,sy,sz);
axis
shading
view(3);
camlight; file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-25911.png 图
load
[sx
daspect([1
verts
cav
spd
streamribbon(verts,x,y,z,cav,spd);
axis
shading
view(3)
camlight; file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-10374.png 图
t
verts
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-11530.pngtwistangle
daspect([1
streamribbon(verts,twistangle);
axis
shading
view(3);
camlight;
图
%-----定义三维数组
xmin
ymin
zmin
x
y
z
[x
u
daspect([1
[cx
h
set(h,'color','k');
[sx
streamribbon(x,y,z,u,v,w,sx,sy,sz);
[sx
streamribbon(x,y,z,u,v,w,sx,sy,sz);
shading
view(-30,10)
camproj
camdolly(0,0,.5,'fixtarget')
camlight
10、
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-7704.png 图9.4
load
[sx
daspect([1
streamtube(x,y,z,u,v,w,sx,sy,sz);
%-----定义视图和光照。
view(3)
axis
shading
camlight; file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-20815.png 图
load
[sx
daspect([1
verts
div
streamtube(verts,x,y,z,-div); %-----定义视图和光照
view(3)
axis
shading
camlight; file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-24058.png 图
11、
load
cav
slice(x,y,z,cav,[90
shading
daspect([1
colormap
camlight
load
k
x
cav
pcolor(x,y,cav);
hold
quiver(x,y,u,v,'y')
hold
colormap file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml/wps_clip_image-22708.png 图 图 |
结论 (结果) |
|
小结(对本次实验的思考和建议) |
通过本次实验,我对Matlab有了更多的了解,知道它应用范围之广、作用之大。此高级语言可用于技术计算,此开发环境可对代码、文件和数据进行管理,交互式工具可以按迭代的方式探查、设计及求解问题,二维和三维图形函数可用于可视化数据,各种工具可用于构建自定义的图形用户界面,自带仿真系统。 友好的工作平台和编程环境,简单易用的程序语言,强大的科学计算机数据处理能力,出色的图形处理功能,应用广泛的模块集合工具箱, 更能有利的解决各种复杂的知识问题。
|
备注或说明(成功或失败的原因、实验后的心得体会) |
本实验完成了从各个视角来分析了流过北美洲的气流变化,使我们能更直观的了解气流变化情况。成功之因,借鉴于《Matlab图形图像》这本书,主要运用了本书‘科学计算可视化’这一章节,才能得以实现。不足的方面,未能准确的从矢量图和等值面图两个侧面来分析气流变化。 |
指导教师评分(包括对实验的预习、操作和结果的综合评分):
|
|
指导教师总评:
签名: |
B3小组组员名单
姓名 |
学号 |
柏厚云 |
200705001534 |
王伟民 |
200705001506 |
段丽波 |
200705001516 |
杨雁翔 |
200705001543 |
李江玲 |
200705001528 |
杨 |
200705001517 |
刘云雄 |
200705001538 |
吴明霞 |
200705001514 |