怎么做能让网站尽快收录,同城购物网站建设,建立网站需要多少钱怎么样,中小学校园网站建设1.使用向量数据显示流线图
MATLAB 向量数据集 wind 代表北美地区的气流。本示例结合使用了几种方法#xff1a; 利用流线跟踪风速 利用切片平面显示数据的横截面视图 利用切片平面上的等高线提高切片平面着色的可见性
1.1确定坐标的范围
加载数据并确定用来定位切片平面…1.使用向量数据显示流线图
MATLAB® 向量数据集 wind 代表北美地区的气流。本示例结合使用了几种方法 利用流线跟踪风速 利用切片平面显示数据的横截面视图 利用切片平面上的等高线提高切片平面着色的可见性
1.1确定坐标的范围
加载数据并确定用来定位切片平面和等高线图的最小值和最大值load、min、max。
load wind
xmin min(x(:));
xmax max(x(:));
ymax max(y(:));
zmin min(z(:));
1.2 添加切片平面以提供视觉环境
计算向量场的模代表风速以生成用于 slice 命令的标量数据。沿 x 轴在 xmin、100 和 xmax 处、沿 y 轴在 ymax 处以及沿 z 轴在 zmin 处创建切片平面。指定插补面着色以切片颜色指示风速但不绘制边sqrt、slice、FaceColor、EdgeColor。
wind_speed sqrt(u.^2 v.^2 w.^2);
hsurfaces slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hsurfaces,FaceColor,interp,EdgeColor,none)
colormap turbo
1.3 在切片平面上添加等高线
在切片平面上绘制浅灰色等高线以帮助量化颜色映射contourslice、EdgeColor、LineWidth。
hcont ...
contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);
set(hcont,EdgeColor,[0.7 0.7 0.7],LineWidth,0.5)
1.4 定义流线的起点
在本示例中所有流线都从 x 轴上的值 80 处开始在 y 方向上的范围为 20 到 50在 z 方向上的范围为 0 到 15。保存流线的句柄并设置线宽和颜色meshgrid、streamline、LineWidth、Color。
[sx,sy,sz] meshgrid(80,20:10:50,0:5:15);
hlines streamline(x,y,z,u,v,w,sx,sy,sz);
set(hlines,LineWidth,2,Color,r)
1.5 定义视图
设置视图扩展 z 轴以便于观察图形view、daspect、axis。
view(3)
daspect([2,2,1])
axis tight 2.利用流带显示旋度
2.1流带可以显示哪些信息
与流线类似流带可以表明流的方向但通过扭曲带状流线流带还可以显示围绕流坐标轴的旋转。streamribbon 函数允许您为流带中的每个顶点指定扭曲角度以弧度为单位。
与 curl 函数结合使用时streamribbon 可用于显示向量场的旋度角速度。下例演示了这一技术。
2.2选择要绘制的数据子集
加载 wind 数据集并使用 subvolume 选择关注区域。先绘制完整数据集可以帮助您选择关注区域。
load wind
lims [100.64 116.67 17.25 28.75 -0.02 6.86];
[x,y,z,u,v,w] subvolume(x,y,z,u,v,w,lims);
2.3计算旋度角速度和风速
计算旋度角速度和风速。
cav curl(x,y,z,u,v,w);
wind_speed sqrt(u.^2 v.^2 w.^2);
2.4创建流带 使用 meshgrid 为流带创建起点数组。有关指定起点数组的信息请参阅指定流线图的起点。 stream3 以 .5 为步长计算流线顶点。 streamribbon 按因子 2 缩放流带宽度以提高扭曲表明旋度角速度的可见性。 streamribbon 返回它创建的曲面对象的句柄然后使用它们将曲面颜色设置为红色 (FaceColor)、将曲面边的颜色设置为浅灰色 (EdgeColor)并稍微提高应用光照后反射的环境光的亮度 (AmbientStrength)。 [sx sy sz] meshgrid(110,20:5:30,1:5);
verts stream3(x,y,z,u,v,w,sx,sy,sz,.5);
h streamribbon(verts,x,y,z,cav,wind_speed,2);
set(h,FaceColor,r,...EdgeColor,[.7 .7 .7],...AmbientStrength,.6)
2.5定义视图并添加光照 volumebounds 命令为设置 axis 和颜色范围提供了便捷的途径。 添加 grid 并将 view 设置为三维streamribbon 不会更改当前视图。 camlight 在视点右侧创建光源lighting 将光照方法设置为 Gouraud。 axis(volumebounds(x,y,z,wind_speed))
grid on
view(3)
camlight right;
3.利用流管显示散度
3.1流管可以显示哪些信息
流管类似于流线只不过流管具有宽度为表示信息提供了另外一个维度。
默认情况下MATLAB® 图形通过流管的宽度显示向量场的散度。您还可以为每个流管顶点定义宽度从而将其他数据映射到宽度。
本示例使用以下方法 利用流管指示 wind 数据集中向量场的流向和散度 利用着色的切片平面指示叠加的风流的速度并利用等高线提高可见性
输入项包括三维体坐标、向量场分量以及流管的起点位置。
3.2加载数据并计算所需的值
加载数据并计算绘图所需的值。这些值包括 切片平面的位置最大 x 值、最小 y 值和海拔值 流管起点的最小 x 值 风速向量场的模 load wind
xmin min(x(:));
xmax max(x(:));
ymin min(y(:));
alt 7.356; % z value for slice and streamtube plane
wind_speed sqrt(u.^2 v.^2 w.^2);
3.3绘制切片平面
绘制切片平面 (slice) 并设置 surface 属性以创建平滑着色的切片。使用 hsv colormap 中的 16 种颜色。
hslice slice(x,y,z,wind_speed,xmax,ymin,alt);
set(hslice,FaceColor,interp,EdgeColor,none)
colormap hsv(16)
3.4在切片平面上添加等高线
在切片平面上添加等高线 (contourslice)。调整等高线间隔使线条与切片平面上的颜色边界匹配 调用 clim 以获取当前颜色范围。 在 R2022a 之前: 使用 caxis它具有与 clim 相同的语法和参量。 将 contourslice 使用的插值方法设置为 linear以便与 slice 使用的默认值匹配。 color_lim clim;
cont_intervals linspace(color_lim(1),color_lim(2),17);
hcont contourslice(x,y,z,wind_speed,xmax,ymin,...alt,cont_intervals,linear);
set(hcont,EdgeColor,[.4 .4 .4],LineWidth,1)
3.5创建流管
使用 meshgrid 创建流管起点数组起点从最小 x 值开始在 y 方向上的范围为 20 到 50并位于 z 方向上的单个平面中对应于其中一个切片平面。
流管 (streamtube) 绘制在指定的位置并放大为默认宽度的 1.25 倍以突出散度宽度的变化。向量 [1.25 30] 中的第二个元素指定流管周长上的点数默认值为 20。随着流管大小的增加您可能需要增加此值的大小以保持光滑的流管外观。
在调用 streamtube 之前设置数据纵横比 (daspect)。
流管是曲面对象因此您可以通过设置曲面属性来控制其外观。本示例通过设置曲面属性获得明亮的红色曲面。
[sx,sy,sz] meshgrid(xmin,20:3:50,alt);
daspect([1,1,1]) % set DAR before calling streamtube
htubes streamtube(x,y,z,u,v,w,sx,sy,sz,[1.25 30]);
set(htubes,EdgeColor,none,FaceColor,r,...AmbientStrength,.5)
3.6定义视图
定义视图并添加光照view、axis volumebounds、Projection、camlight。
view(-100,30)
axis(volumebounds(x,y,z,wind_speed))
set(gca,Projection,perspective)
camlight left