Main Content

ストリーム リボンによるらせんの表示

表示できるストリーム リボン

ストリーム リボンは流線と同様の流れの方向を表しますが、リボン型の流れのラインをねじることによって、流れの軸に関する回転を表示することもできます。関数 streamribbon を使用して、ストリーム リボンの各頂点にねじり角度 (ラジアン) を指定することができます。

関数 curl と共に使用する際、streamribbon はベクトル場の回転角速度の表示に役立ちます。次の例で、この方法を説明します。

1. プロットするデータのサブセットの選択

subvolume を使用して、wind データセットの関心領域を読み込み、選択します。はじめにすべてのデータセットをプロットすると、関心領域を選択するのに役立ちます。

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 は、作成する surface オブジェクトのハンドルを出力します。これは、色を赤に設定する (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 と色の範囲を設定するための便利な方法を提供します。

  • 3 次元の viewgrid を付加します (streamribbon は現在の表示を変更しません)。

  • camlight は、視点の右側に配置されたライトを作成し、lighting はライティング法を Gouraud に設定します。

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