Main Content

利用流带显示旋度

流带可以显示哪些信息

与流线类似,流带可以表明流的方向,但通过扭曲带状流线,流带还可以显示围绕流坐标轴的旋转。streamribbon 函数允许您为流带中的每个顶点指定扭曲角度(以弧度为单位)。

curl 函数结合使用时,streamribbon 可用于显示向量场的旋度角速度。下例演示了这一技术。

1.选择要绘制的数据子集

加载 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.计算旋度角速度和风速

计算旋度角速度和风速。

cav = curl(x,y,z,u,v,w);
wind_speed = sqrt(u.^2 + v.^2 + w.^2);

3.创建流带

  • 使用 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)
    

4.定义视图并添加光照

  • volumebounds 命令为设置 axis 和颜色范围提供了便捷的途径。

  • 添加 grid 并将 view 设置为三维(streamribbon 不会更改当前视图)。

  • camlight 在视点右侧创建光源,lighting 将光照方法设置为 Gouraud。

    axis(volumebounds(x,y,z,wind_speed))
    grid on
    view(3)
    camlight right;